Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Organizao e Arquitetura
(para concursandos da REA de TI) TI
Captulo 1
Conceitos Bsicos Histrico Arquiteturas
professorbelfort@gmail.com
programadores e analistas
usurios
Usurios
Sistema Operacional
discos
fitas
impressoras
monitores
professorbelfort@gmail.com
Aplicativos
Utilitrios
Sistema Operacional
Linguagem de Mquina
Microprogramao
Circuitos Eletrnicos
professorbelfort@gmail.com
Histrico Histrico
Primeira gerao (1945 1955) No havia Sistemas Operacionais Vlvulas, painis de programao Segunda gerao (1955 1965) Perfuradoras de carto Transistores, sistemas em lote (job nico/inteiro) Terceira gerao (1965 1980) CIs e multiprogramao (jobs em lote) Sistemas de tempo compartilhado (time-sharing) Surgimento das LAN e primeiros SOR Quarta gerao (1980 presente) Computadores pessoais Primeiras linguagens concorrentes Incremento no uso de threads Suporte a multiprocessamento Padronizao de GUIs e APIs (compatibilizao)
professorbelfort@gmail.com
professorbelfort@gmail.com
professorbelfort@gmail.com
programa/ tarefa
UCP
programa/ tarefa
UCP
programa/ tarefa
Memria Principal
Dispositivos de E/ S
Memria Principal
Dispositivos de E/ S
programa/ tarefa
programa/ tarefa
programa/ tarefa
professorbelfort@gmail.com
Acoplamento
UCP Memria Principal UCP
Forte
Dispositivos de E/ S
Dispositivos de E/ S
Fraco
Memria Principal Dispositivos de E/ S Memria Principal Dispositivos de E/ S
professorbelfort@gmail.com
10
professorbelfort@gmail.com
Ambientes de SO
SO de computadores de grande porte SO de servidores (de rede) SO de multiprocessadores SO de computadores pessoais SO de tempo-real (compromisso com o tempo)
Crticos (compromisso rgido) No-crticos (compromisso elstico)
11
SO de misso crtica (no podem parar) SO de cartes inteligentes (smart cards) SO embarcados* *Sistema Embarcado (ou sistema embutido)
Sistema microprocessado dedicado Diferente de computadores de propsito geral, como o computador pessoal Computador encapsulado (dedicado ao dispositivo ou sistema que ele controla) Conjunto de tarefas predefinidas (fixas), geralmente com requisitos especficos Otimizao do projeto: baixar custos, aumentar eficincia, miniaturizao
professorbelfort@gmail.com
12
13
professorbelfort@gmail.com
14
Modo usurio
15
professorbelfort@gmail.com
Arquiteturas de SO
Forma de organizao e interao dos componentes Definio da complexidade do ncleo Principais arquiteturas Monoltica Em camadas Microncleo (cliente-servidor) Mquina Virtual Exokernel
16
professorbelfort@gmail.com
17
professorbelfort@gmail.com
18
professorbelfort@gmail.com
Arquitetura em camadas
19
professorbelfort@gmail.com
Arquitetura em camadas
Organiza as funes similares em camadas Uma camada comunica-se com as camadas vizinhas Uma camada presta servio camada de cima Facilita a construo, uso e manuteno do SO Requisio de servio pode atravessar vrias camadas invocando mtodos adicionais de passagem de parmetros degradando o desempenho
20
professorbelfort@gmail.com
21
Gerenciador de Memria
Gerenciador de Impresso
O GDI (Graphics Device Interface), um dos trs subsistemas principais do Microsoft Windows. um padro desse sistema operacional para representar objectos grficos e transmiti-los para dispositivos de sada, como monitores e impressoras.
professorbelfort@gmail.com
22
Funes do ncleo: reduzidas ao extremo (leve e simples) Servios disponibilizados como processos (modo usurio) Aplicao solicitante o cliente Processo demandado o servidor Funo do ncleo: Gerenciar comunicao Cliente/Servidor (IPC) Escalonamento, Interrupes, E/S Independncia entre componentes: Facilidade de desenvolvimento e manuteno Falha em um servio no prejudica os outros Alto grau de modularidade: portvel, extensvel e escalvel Implementao pura, na prtica difcil Baixo desempenho: se excessiva troca de modos Acesso ao hardware: exige acionamento do ncleo Soluo: combinao com arquitetura em camadas
professorbelfort@gmail.com
23
Ap1
Ap2
Apn
SO1
SO2
SOn
HV1
HV2
HVn
Hardware
professorbelfort@gmail.com
Exokernel
Arquitetura semelhante s Mquinas Virtuais Camada virtualizadora est no topo do ncleo Disponibilizadas diversas mquinas virtuais independentes Cada mquina: um subconjunto de recursos da mquina real Pode usar um Sistema Operacional diferente Vantagem: dispensa a camada externa de virtualizao
24
professorbelfort@gmail.com
Tipo de kernel
Linux: monoltico-modular Windows: microkernel-monoltico
25
professorbelfort@gmail.com
Linguagens
Geraes das linguagens 3 gerao - Linguagem de alto nvel Sequenciais Estruturadas Orientadas a objetos (classes, propriedade e mtodos) 2 gerao - Linguagem de montagem 1 gerao - Linguagem de mquina Linguagens de construo dos SO C C++ Assembly (p/ alguns drivers) Filosofia multiplataforma da linguagem Java (JVM)
26
professorbelfort@gmail.com
27
Linguagem de baixo nvel (Assembly) Montador (Assembler): cdigo-objeto no-executvel Ligao (linker) Integrao de vrias bibliotecas (mdulos pr-compilados) Gera uma grande unidade executvel Carregamento professorbelfort@gmail.com
28
Interface de Programao de Aplicativos Conjunto de rotinas e padres desenvolvido para cada SO Disponibiliza os servios do SO para os programadores Tornam transparentes os detalhes da programao Protegem sistema contra acessos indevidos das aplicaes Uso de API gera chamadas ao sistema e mudana de modo Cada API tem sua prpria sintaxe e documentao Padronizao de APIs Win32 POSIX
professorbelfort@gmail.com
29
professorbelfort@gmail.com
Captulo 2
Processos e Trheads
professorbelfort@gmail.com
Processo
Um processo um programa em execuo (est na RAM) Como processo, um programa pode Alocar recursos Compartilhar dados Trocar informaes e Sincronizar sua execuo SO cria um contexto de execuo para rodar um programa rea da RAM a ser usada Abertura de arquivos acessados Privilgios de segurana Quantum de tempo Prioridade (entre outros) Gerncia de processos: Funo bsica do SO Essncia da multiprogramao
31
professorbelfort@gmail.com
32
Registradores
registrador PC
Contexto de Software
Contexto de Hardware
registrador SP
privilgios
Espao de Endereamento
registrador de status
Espao na RAM
professorbelfort@gmail.com
33
b a
Incio
Estado de Espera
Estado de Pronto
Fatores internos e externos provocam mudanas de estado Sempre entra na fila de Prontos antes de executar novamente Criao e morte no so considerados professorbelfort@gmail.com
34
35
CPU-bound (ligado CPU) Maior parte do tempo em estado de execuo Ou seja: usando o processador I/O-bound (ligado E/S) Maior parte do tempo em estado de bloqueado Ou seja: fazendo E/S Pode: iniciar CPU-bound e tornar-se I/O-bound (e vice-versa) Mais eficiente: revezamento entre CPU-bound e I/O-bound
professorbelfort@gmail.com
Gerenciamento de processos
SO organiza os processos da fila de prontos Periodicamente o ESCALONADOR de processos: Escolhe um processo da fila para executar Critrio de escolha pode variar Alguns critrios usados para escalonamento Ordem de chegada dos processos Fatia de tempo demandada pelo processo Prioridade do processo Outros nomes para ESCALONADOR/ESCALONAMENTO: Despachante/despacho Dispatcher/dispatch Quando um processo solicita uma operao de E/S Ele interrompido e desviado para a fila de bloqueado Posteriormente, ele retornar para o fim da fila de pronto Ento, ser submetido ao critrio de escalonamento da fila Preempo: capacidade do SO de Interromper um processo a qualquer instante (a seu critrio) Retomar a execuo a partir do ponto de interrupo
36
professorbelfort@gmail.com
37
38
professorbelfort@gmail.com
39
professorbelfort@gmail.com
40
P rocesso A
P rocesso B
executando
Sobrecarga
Salva registradores do P rocesso B
executando
executando
professorbelfort@gmail.com
Gerenciamento de filas
SO gerencia filas de BCPs Fila de PRONTOS Fila de BLOQUEADOS No existe fila de processos em EXECUO
41
professorbelfort@gmail.com
42
Interrupes (geradas por eventos assncronos) So geradas por hardware (extra instruo corrente) Servem para comunicar a ocorrncia de um dado evento Fim de uma operao de E/S Trmino de fatia de tempo Excees (geradas por eventos sncronos) So geradas por software (instruo corrente) Servem para indicar a ocorrncia de um erro de execuo Diviso por zero ou um overflow Erro de hardware (Ex: perda da controladora de HD) Interrupo do usurio (Ctrl+C = abort) Sinal: usado para notificao de eventos (SOp processos) Podem ser consequncia de interrupes e excees Ex: alarmes do temporizador, cotas excedidas, sincronizao
HW SW
professorbelfort@gmail.com
43
Em cincia da computao, um sinal (signal em Ingls) uma forma limitada de comunicao entre processos utilizada em sistemas Unix e outros sistemas operacionais compatveis com o padro POSIX. Um sinal uma notificao assncrona enviada para um processos com o objetivo de notificar a ocorrncia de um evento. Quando um sinal enviado a um processo, o Sistema Operacional interrompe o seu fluxo normal de execuo. A execuo pode ser interrompida em qualquer operao que no seja atmica. Um processo pode registrar uma rotina de tratamento de sinal (signal handler em Ingls) para tratar um determinado sinal, se no for desejado que a rotina padro para este sinal seja executada. Determinadas combinaes de teclas, ao serem pressionadas no terminal de controle de um processo em execuo, fazem com que o sistema envie determinados sinais a este processo: Ctrl-C (DEL em verses antigas do Unix) envia um sinal INT (SIGINT); normalmente causa o trmino do processo. Ctrl-Z envia um sinal TSTP (SIGTSTP); normalmente causa a suspenso da execuo do processo. Ctrl-\ envia um sinal QUIT (SIGQUIT); normalmente causa o trmino da execuo do processo e a gerao de um core dump (log da memria). A chamada de sistema kill envia um sinal ao processo, se o usurio tiver permisso para tal. De maneira parecida, o comando kill do Unix permite que um "usurio" envie sinais a um processo. A chamada de sistema raise envia um sinal para o processo "corrente". As excees causadas por diviso por zero ou violao de segmento de memria geram sinais (SIGFPE e SIGSEGV, respectivamente, gerando um core dump).
professorbelfort@gmail.com
44
VETOR DE INTERRUPO: uma tabela, na RAM, que contm todas as rotinas de tratamento de interrupo (nmero da interrupo x endereo da rotina de tratamento).
professorbelfort@gmail.com
45
Em ambientes multiprogramao: processos se comunicam SO possui 2 mecanismos para comunicao interprocessos Sinais Troca de mensagens (com passagem de parmetros) Sinais: so interrupes de software Notificam a ocorrncia de um evento (from SO ou processos) No permitem a troca de dados entre processos Usados para comunicao/sincronizao de processos Leva paralizao do processo e rotina de tratamento Troca de mensagens Protocolos de confirmao e autenticao (troca de dados) Muito utilizado em sistemas distribudos (multiplataforma)
Troca de Mensagens um mecanismo de comunicao e sincronizao entre processos. O sistema operacional possui um subsistema de mensagem que suporta esse mecanismo sem que haja necessidade do uso de variveis compartilhadas. Para que haja a comunicao entre os processos, deve existir um canal de comunicao, podendo esse meio ser um buffer ou um link de uma rede de computadores. Os processos cooperativos podem fazer uso de um buffer para trocar mensagens atravs de duas rotinas: SEND (receptor, mensagem) e RECEIVE (transmissor, mensagem). A rotina SEND permite o envio de uma mensagem para um processo receptor, enquanto a rotina RECEIVE possibilita o recebimento de mensagem enviada por um processo transmissor.
professorbelfort@gmail.com
Pipe
46
sada do Processo B
professorbelfort@gmail.com
47
professorbelfort@gmail.com
48
Thread: fluxo de execuo (set de instrues) do processo Estrutura que permite execuo paralela de instrues Um processo pode gerar vrios threads (ou pool de threads) Alternativa criao de processos filhos (subprocesso) Conhecidos como processos leves porque compartilham: Espaos de endereamento Contextos de software Porm: cada thread tem seu prprio contexto de hardware Comunicao entre threads mais simples Criar threads gasta menos recursos do que subprocessos SO pode escalonar processos ou threads (para execuo)
Leia: http://msdn.microsoft.com/pt-br/library/3dasc8as.aspx
professorbelfort@gmail.com
Threads de um processo
49
professorbelfort@gmail.com
50
professorbelfort@gmail.com
51
Exprimir atividades de modo paralelo (como na vida real) Estruturar codificao do programa por tarefas ou mdulos Melhorar rendimento da UCP em sistemas multiprocessados Dispensar as rotinas de IPC*: pq compartilham contextos
52
Outra maneira de colocar uma determinada thread no estado de 'espera sincronizada' coloc-la para dormir. Uma thread adormecida permanece nesse estado por um perodo determinado de tempo (chamado de intervalo de adormecimento) no ponto em que ela retorna para o estado executvel. As threads dormem por um pequeno perodo quando no tem de realizar nenhuma tarefa.
professorbelfort@gmail.com
Tipos de thread
Threads podem ser implementadas de 3 modos distintos de usurio (muitos para um) de ncleo (um para um) hbridas (muitos para muitos ou m x n, onde mn) De usurio Usam bibliotecas carregadas em tempo de execuo So totalmente transparentes para o SO Escalonamento feito pela aplicao (modo usurio) De ncleo Suportadas diretamente pelo ncleo do SO Usam uma API para gerenciamento de threads Tm acesso ao hardware e s instrues privilegiadas Hbridas: combinam aspectos positivos dos tipos acima
53
professorbelfort@gmail.com
54
professorbelfort@gmail.com
55
professorbelfort@gmail.com
56
Visa combinar as vantagens dos modos anteriores Implementao complexa, sem padronizao: - portabilidade Para reduzir sobrecarga gerada pelas mudanas de modo: Usa reservatrio de threads threads Usa threads operrios rios Threads com baixo paralelismo: nico thread (modo ncleo)
professorbelfort@gmail.com
Captulo 3
Sincronizao e Comunicao entre Processos
professorbelfort@gmail.com
58
SO antigos: um processo em execuo por vez Multiprogramao monoprocessada: paralelismo virtual Vrios processos em execuo simultnea Apenas uma UCP: rpidas trocas de contexto entre processos Multiprogramao multiprocessada: paralelismo real n UCP em execuo n processos em execuo simultnea SO com suporte threads: Partes de um processo podem executar em paralelo Cada parte em uma UCP Surgem novos desafios para os programadores
professorbelfort@gmail.com
59
Desvantagens (dependendo da sequncia de execuo): Inconsistncia de valores (varivel em memria compartilhada) Bloqueios de recursos (dispositivos e dados) Adiamento indefinido (no execuo) Problemas intermitentes
professorbelfort@gmail.com
60
Program Expressao; Var X, Temp1, Temp2, Temp3: Real; Begin ParBegin Temp1:= SQRT(1024); Temp2:= 35.4 * 0.23; Temp3:= 302 / 7; ParEnd; X:= Temp1 + Temp2 + Temp3; WriteLn(O valor de x : , X); End.
professorbelfort@gmail.com
61
X corresponde ao saldo de uma conta bancria. Aps a execuo sequencial do Processo A (depsito = 1) e do Processo B (saque = 1), Espera-se que o saldo permanea o mesmo (R$ 2,00), pois Valores de depsito e saldo so iguais (R$ 1,00) Mas, no o que acontece!!! Por qu? Para simplificar: considere um sistema com uma nica UCP
62
Como evitar o problema de concorrncia mostrado? Garantindo a EXCLUSO MTUA (exclusividade de acesso) Negar acesso ao recurso (no caso, uma varivel) Por outro processo Ao mesmo tempo Deve afetar apenas processos concorrentes* que Dependem do mesmo recurso Em operaes de escrita Esse bloqueio deve ser o mnimo necessrio Em quais instrues deve-se garantir a excluso mtua? Resposta: na Regio Crtica!
63
RC: parte do processo que acessa o recurso compartilhado Soluo Serializao: Evitar que processos entrem em suas RC simultaneamente Impede problemas no compartilhamento de recursos Cabe ao programador Detectar as regies crticas no seu cdigo e Implementar as rotinas de proteo e excluso mtua Reconhecer a parte do cdigo que pode trazer problemas No uma tarefa fcil! Exige muitos testes e tempo Qual a RC no problema mostrado?
professorbelfort@gmail.com
64
*Test-and-Set: todo processo, antes de entrar na sua RC, executa: Se TAS = True: - processo aguarda! Se TAS = False: - TAS := True - processo executa regio crtica - TAS := False
professorbelfort@gmail.com
65
professorbelfort@gmail.com
66
Buffer no cheio
Buffer no vazio
67
Conceito proposto por E. W. Dijkstra (diquistra), em 1965 Mecanismo de sincronizao no estruturado e complexo Permite implementar, de forma simples: Excluso mtua e Sincronizao entre processos Um dos principais mecanismos utilizados Nos projetos de SO e nas aplicaes concorrentes Nas linguagens de programao (rotinas para semforos) Um semforo (S) : Uma varivel especial protegida pelo SO (no-negativa) Manipulada por duas instrues atmicas (indivisveis) Down (decremento) e Up (incremento) Se S=zero e Down: thread fica em espera (no ocupada) Instrues so implementadas no hardware do processador Semforo est associado a um recurso e pode ser binrio (ou Mutex): {0;1} contador: qq valor inteiro, no-negativo
professorbelfort@gmail.com
68
S=1
down
S=0
S=0
down
S=0
(no-ocupada)
professorbelfort@gmail.com
69
Cdigo testado vrias vezes apresenta erros intermitentes Problema: provavelmente, na concorrncia entre processos Semforos: uso complexo (difcil) Exige muito critrio do desenvolvedor Enganos: Podem levar a problemas intermitentes na execuo Dfcil reproduo (no chins) devido execuo concorrente Se um processo travar ou entrar em looping na RC? SO deve detectar a situao e encerrar o processo
professorbelfort@gmail.com
Monitores
70
Conceito proposto por Brinch Hansen, em 1972 Mecanismo de sincronizao de alto nvel Estruturado, No preemptivos Simplificam o desenvolvimento de aplicaes concorrentes Maioria das linguagens disponibiliza rotinas para seu uso Mdulo formado por procedimentos e variveis declarados Criado em tempo de compilao Implementa automticamente a excluso mtua
professorbelfort@gmail.com
Monitores
71
professorbelfort@gmail.com
Deadlock (impasse)
Ocorre quando um processo aguarda por: Um recurso que nunca estar disponvel ou Um evento que nunca ocorrer Causa provvel: Compartilhamento de recursos (perifricos, arquivos etc) Onde a excluso mtua necessria Coffman, Elpick e Shoshani, demonstraram, em 1971: Para ocorrer deadlock: 4 condies so essenciais (simult.)
72
professorbelfort@gmail.com
73
Excluso mtua Recurso est alocado a um nico processo ou Est disponvel Posse e espera por recurso Processo retm um recurso (posse) e Pode requisitar outro recurso (espera) No-preempo Processo obtm um recurso (e s ele pode liber-lo) SO no tem poder de liber-lo (quando necessrio) No-preemptveis: impressora, gravador de CD Preemptveis: memria RAM, disco rgido Espera circular (gera um grafo cclico de 2 ou mais processos) Processo A espera recurso 2 ora alocado ao Processo B e Processo B espera recurso 1 ora alocado ao Processo A
professorbelfort@gmail.com
Deadlock
74
Grafo cclico
professorbelfort@gmail.com
75
professorbelfort@gmail.com
76
professorbelfort@gmail.com
77
professorbelfort@gmail.com
Captulo 4
Gerenciamento de processos
professorbelfort@gmail.com
79
SO escolhe qual processo da fila de PRONTOS ir executar Despachante designa um processador a um dado processo Poltica de escalonamento (ou disciplina de escalonamento): Critrio do SO para escolher o processo que executar Nvel de ESCALONAMENTO Prazo de atuao Seleciona onde? Qual processo? GM* do SO
Alto (de admisso)
Longo HD Entra na RAM (prontos) Define
80
Maximizar: throughput (total de processos terminados na unidade de tempo) Minimizar: turnaround (tempo da criao at o trmino do processo) Maximizar: taxa de utilizao de CPU (tempo total de ocupao da CPU) Minimizar: tempo de resposta (tempo da criao at o inicio da execuo) Minimizar: tempo de espera (soma dos tempos na fila de prontos) Minimizar: tempo de resposta em processos interativos Maximizar: utilizao dos recursos (HW ou SW) Minimizar: a sobrecarga de gerenciamento do SO Favorecer: rotinas de maior prioridade e importncia Garantir: previsibilidade no atendimento
professorbelfort@gmail.com
Escalonamento
81
professorbelfort@gmail.com
82
professorbelfort@gmail.com
83
professorbelfort@gmail.com
84
professorbelfort@gmail.com
FIFO: First In First Out (First Come First Served) (First Served)
Critrio: ordem de chegada No-preemptivo (processo executa enquanto quiser) Vantagens Justo: atende pela ordem de chegada Impede adiamento indefinido Fcil de implementar Desvantagens Processos longos fazem os curtos esperarem muito No se mostra eficiente para processos interativos No considera a importncia de uma tarefa
85
professorbelfort@gmail.com
86
Critrio: tempo de execuo restante (burst): menor primeiro No-preemptivo Vantagens Favorece os processos mais curtos Aumenta o rendimento (throughput) Menor tempo mdio de espera Desvantagens Baseado em estimativas de tempo Maior varincia no tempo de espera (+ imprevisibilidade) No impede o adiamento indefinido
professorbelfort@gmail.com
87
Critrio: tempo de execuo restante (burst): menor primeiro Preemptivo (se chegar processo de menor burst) Verso preemptiva do SPF Vantagens Busca minimizar tempo de espera Desvantagens Baseado em estimativas de tempo Gera sobrecarga desnecessria nas troca de contexto Usado em SO antigos (para processamento em lote)
professorbelfort@gmail.com
88
T = quantum (time-slice ou fatia de tempo) Linux: 100 ms (varia de 10 a 200) Windows: 20 ms (varia se background x foreground)
professorbelfort@gmail.com
89
professorbelfort@gmail.com
90
professorbelfort@gmail.com
91
92
professorbelfort@gmail.com
(Prxima taxa de resposta mais alta) (Prxima taxa de resposta mais alta)
93
Critrio: valor da relao abaixo (maior primeiro): Tempo de espera na fila + Tempo de execuo restante Tempo de execuo restante No-preemptivo Busca corrigir algumas deficincias do SPF Vantagens Prioriza processos mais antigos (maior burst): aging Elimina o adiamento indefinido Desvantagens No leva em considerao a importncia dos processos
professorbelfort@gmail.com
94
professorbelfort@gmail.com
95
professorbelfort@gmail.com
96
Preemptivos SRT RR por Prioridades Filas Mltiplas Frao Justa Tempo Real
professorbelfort@gmail.com
Captulo 5
Gerenciamento de Memria (mtodos primitivos)
professorbelfort@gmail.com
98
professorbelfort@gmail.com
99
RAM: Sempre foi um recurso caro e escasso Programas eram pequenos: para caber inteiros na memria Gerenciador de memria eram muito sofisticados RAM: grande aumento de capacidade e reduo de custo SO monotarefa: gerenciador de memria eram simplificados SO multitarefa: gerenciador de memria so sofisticados Tm grande impacto no desempenho global do sistema Hoje: combinao de HW e SW para ganhar desempenho
professorbelfort@gmail.com
100
professorbelfort@gmail.com
101
Varia em cada SO, mas, de modo geral, objetiva: Manter na RAM o maior nmero de processos residentes Minimizar operaes de I/O em disco Maximar uso do processador (throughput) Carregar novos processos sem espao livre na RAM: swap Executar programas > RAM (overlay e memria virtual) Proteger reas do SO e reas dos processos na RAM Ser transparente para os programas Formas de alocao de memria desse captulo: No so mais usadas nos SO atuais Servem para compreender as tcnicas modernas Alm disso: aparecem nas questes dos concursos
professorbelfort@gmail.com
102
Gerenciador de memria: controla particionamento da RAM Quais partes esto alocadas para processos em execuo? Quais partes esto livres para novos processos?
professorbelfort@gmail.com
103
professorbelfort@gmail.com
104
Implementada nos primeiros SO monousurio/monotarefa RAM dividida em duas parties: SO (protegida) e programa Registrador de fronteira (ou de limite) estabelece a diviso Um processo em execuo por vez Menor ou igual ao bloco de programa Pode acessar toda a memria Overlay: uma forma de ultrapassar o limite de memria Vantagem: fcil implementao Desvantagem: mau aproveitamento da RAM
professorbelfort@gmail.com
105
professorbelfort@gmail.com
106
Permite executar um processo maior que a RAM disponvel Divide processo: um bloco principal e n blocos secundrios Bloco principal fica na RAM o tempo (chama os secundrios) Blocos secundrios So carregados na RAM, um de cada vez Independem uns dos outros Dependem do bloco principal para carga e execuo Troca de blocos gera sobrecarga no SO Programador decide sobre a diviso em blocos Blocos secundrios rea de overlay
professorbelfort@gmail.com
107
professorbelfort@gmail.com
108
professorbelfort@gmail.com
109
professorbelfort@gmail.com
110
Tambm conhecida como alocao por partio fixa Memria dividida em parties de tamanhos fixos Estabelecidas durante a inicializao do sistema Em cada partio se encaixa um processo Alterar tamanho das parties: s reinicializando o sistema Tabela de controle: para gerir os espaos alocados/livres Incialmente: processos usavam endereamento absoluto Referncias RAM eram relativas a endereos fsicos Processo s executava em uma partio especfica Era a alocao particionada esttica absoluta Posteriormente: processos usavam endereamento relativo Referncias RAM eram relativas ao incio do cdigo Processo podia executar em qualquer partio livre Era a alocao particionada esttica relocvel
professorbelfort@gmail.com
111
professorbelfort@gmail.com
112
Tambm conhecida como alocao por partio varivel RAM dividida em 2 parties: SO (protegida) e programas Busca eliminar desperdcios dos mtodos anteriores Processos carregados sequencialmente, sem espaos livres Processos encerrados: Deixam lacunas (espaos livres) entre os blocos a fragmentao externa (rea livre, no alocvel) Processo novo: Pode encaixar em qualquer lacuna Se a lacuna > processo permanece a fragmentao Como resolver o problema das lacunas? Compactao das lacunas (relocao ) Gera uma enorme sobrecarga no sistema Elimina a fragmentao externa Fuso das lacunas adjacentes (coalescncia) Gera menos sobrecarga no sistema Diminui a fragmentao externa
professorbelfort@gmail.com
Estratgias de alocao (alocao Particionada Dinmica) Estratgias alocao (alocao Particionada Dinmica)
Como alocar novos processos que vo chegando? Existem 3 estratgias bsicas para alocao das lacunas First-fit (primeiro encaixe) Best-fit (melhor encaixe) Worst-fit (pior encaixe) First-fit varre a TEL e encaixa na primeira lacuna possvel Baseado na ordem de endereamento TEL no fica ordenada pelos tamanhos das lacunas Best-fit varre a TEL toda. Encaixa na lacuna que gera Menor desperdcio de espao TEL fica ordenada por tamanho crescente Worst-fit varre a TEL toda. Encaixa na lacuna que gera Maior desperdcio de espao TEL fica ordenada por tamanho decrescente
113
professorbelfort@gmail.com
114
professorbelfort@gmail.com
Swapping (permuta)
115
Swapping (permuta)
Vrios processos em execuo simultnea: Consomem vrios recursos Tornam a execuo muito lenta (sistema degradado)
116
Swap out: Interrompe processo e armazena temporariamente em disco Sobra mais espao na RAM e a degradao geral diminui Escolhe processo com menor chance de execuo imediata Para evitar novo swapping em seguida Para dar preferncia a processos no estado de espera Swap in: Depois, processo interrompido trazido de volta Poder executar com um melhor desempenho necessrio um loader que implemente relocao dinmica Pois, o processo pode voltar para uma partio diferente
professorbelfort@gmail.com
117
professorbelfort@gmail.com
118
Compartilhamento de cdigo: vrios usurios/aplicativos Carga do cdigo na RAM feita apenas uma vez Cdigo deve ser executvel e somente leitura Implementada pelos programadores e suportada pelo SO SO detecta cdigo j carregado e o compartilha outra vez Cdigo executvel comum, mas dados so independentes Presente em utilitrios, compiladores, linkers, aplicativos ... Evita desperdcios quando: Vrios usurios invocam um mesmo programa Um usurio abre vrias instncias do mesmo programa
professorbelfort@gmail.com
Captulo 6
Memria Virtual
professorbelfort@gmail.com
120
Endereo de um bloco
professorbelfort@gmail.com
121
Endereo de um bloco
professorbelfort@gmail.com
professorbelfort@gmail.com
123
professorbelfort@gmail.com
124
uma memria fictcia (forma de visualizar RAM + HD) Combina a memria principal e parte da memria secundria D a iluso de uma memria grande, nica e sequencial Torna transparente para os programadores A quantidade de espao e A organizao fsica da memria Realidade: capacidade de endereamento do processador Expe ao aplicativo um espao contguo de 4 GB* Mesmo que no exista esta quantidade de memria RAM Compilador: gera cdigo baseado no espao virtual SO mapeia endereo virtual (EV) para endereo fsico (EF) MMU (Memory Management Unit): Hardware do processador que mapeia o EV para o EF Tem um cache chamado de TLB (Translation Lookaside Buffer)
4 GB = 232 B (32 = largura de barramento de endereos de alguns Pentium e outros)
professorbelfort@gmail.com
125
professorbelfort@gmail.com
126
Programador/aplicao v uma memria ideal Exclusiva, plana, contgua e praticamente ilimitada Localizao fsica das instrues e dados transparente O processador demanda o endereo virtual Processo no precisa estar em rea contgua na RAM gerada uma contiguidade artificial Processo no precisa estar inteiro na RAM Pode-se carregar apenas algumas partes Da, aloca-se/desaloca-se partes necessrias/desnecessrias Tcnicas utilizadas Paginao Segmentao
professorbelfort@gmail.com
127
Cada processo tem sua TP, mantida estaticamente na RAM As tabelas mapeiam blocos de dados: B. Virtual B. Real Tabelas so atualizadas pelo Gerenciador de Memria Um registrador da CPU indica a posio inicial da tabela Na troca de contexto: registrador aponta para nova posio Cada processo tem seu espao de endereamento virtual Como se possusse sua prpria memria (iniciando do zero)
professorbelfort@gmail.com
128
Como cada clula de memria ser referenciada? Arquiteturas atuais: Barramento de Endereos=32/36/40 vias Qual o tamanho de cada bloco de clulas? Maioria das arquiteturas usa blocos de 4KB Quanto maior o bloco: Menos entradas na tabela Menor espao utilizado na RAM pela TP Maior a fragmentao interna do bloco Para arquiteturas de endereos de 32 bits: Nmero de blocos = 232-n Nmero de clulas em cada bloco (deslocamentos) = 2n Na prtica, n=12 mostrou-se um valor razovel Nmero de blocos = 220 (1.048.576 blocos) Tamanho do bloco = 212 (4096 clulas de endereos) Memria enderevel = 220 * 212 = 232 B = 4 GB
professorbelfort@gmail.com
129
220 blocos * 212 endereos por bloco 1.048.576 blocos * 4096 endereos/bloco Cada endereo = 1 B de capacidade Logo: 1.048.576 * 4096 B = 232 B = = 4 GB (memria enderevel) TABELA DE BLOCOS (tamanho ocupado na RAM): 1.048.576 entradas de 4B cada = 4MB
professorbelfort@gmail.com
130
Espao de endereamento virtual e real: divididos em blocos Blocos virtuais so chamados de pginas (ou pages) Blocos reais so chamadas de quadros (ou frames) Blocos so todos de tamanho fixo e iguais: Windows = 4KB Processo aloca um nmero inteiros de pginas/quadros Fragmentao interna mdia por processo = pgina Mapeamento EV ER consta em uma Tabela de Pgina (TP) Cada processo tem a sua prpria TP (fica na RAM) Cada converso EV ER uma ETP (entrada na TP = linha) EV formado por dois campos: NPV (nmero de pgina virtual) e um Offset (deslocamento dentro da pgina) Cada ETP contm, ainda, outras informaes importantes: Bit de validade (indica se a pgina est carregada na RAM) Bit de modificao (indica se a pgina foi modificada) Bit de referncia (indica se a pgina foi referida) Bit de proteo (indica o tipo de acesso permitido pagina)
professorbelfort@gmail.com
131
EV
ER
professorbelfort@gmail.com
132
1023
133
10b para o Diretrio: ao todo so 210 ETD = 1024 ETD = 1024 TP 10b para cada TP: ao todo so 210 ETP = 1024 ETP por TP 12b para deslocamento dentro do bloco Total de ETP em todas as TP: 210 * 210 = 220 referncias a blocos virtuais Total (endereos virtuais) = 220 blocos virtuais * 212 deslocamentos por bloco Memria total enderevel = 232 endereos de 1B cada = 4GB
professorbelfort@gmail.com
Buffer de Traduo Lateral (TLB -- Translation Lookaside Buffer) Traduo (TLB Translation Lookaside Buffer)
Traduo EV ER feito pela MMU (Memory Manager Unit) um dispositivo (hardware) que integra a CPU TLB: cache associativo (hardware) que integra a MMU Armazena partes da TP do processo ativo Mapeia endereos de forma muito rpida Baseada no Principio da Localidade (como todo cache) Tem de 8 a 2048 entradas: elevado TLB hit% (acertos) Varre todas as entradas em uma leitura apenas Utiliza uma poltica aleatria para substituio de endereos
134
professorbelfort@gmail.com
Buffer de Traduo Lateral (TLB -- Translation Lookaside Buffer) Traduo (TLB Translation Lookaside Buffer)
135
BV = bit de validade
professorbelfort@gmail.com
Exerccio Exerccio
136
professorbelfort@gmail.com
137
Espao de endereamento virtual e real dividido em blocos Blocos virtuais e reais so chamados de segmentos Blocos tm tamanho varivel (em tempo de execuo) Segue a estrutura da aplicao: procedures, funtions... Facilita implementar estruturas de dados dinmicas mais lgico para os programadores e suas aplicaes Quantidade e tamanho dos segmentos so limitados Bloco virtual e seu correspondente real tm tamanho igual Processo bastante parecido com a paginao Mapeamento EV ER consta na Tabela de Segmentos (TS) Cada processo tem a sua prpria TS (fica na RAM) Cada converso EV ER uma ETS (entrada na TS = linha) EV formado por dois campos: NSV (nmero de segmento virtual) e um Offset (deslocamento dentro do segmento) Cada ETS contm, ainda, outras informaes importantes: Tamanho do segmento (j que so variveis)
professorbelfort@gmail.com
138
professorbelfort@gmail.com
139
PROTEO DE MEMRIA (o que significa isso?) Espaos de endereamento: Paginao: Espao linear nico (proteo a cargo do programador) Segmentao: Espaos distintos protegidos pelo processador/SO
(pag. 234 Tanenbaum > Sistemas Operacionais Modernos) professorbelfort@gmail.com
140
professorbelfort@gmail.com
141
professorbelfort@gmail.com
142
professorbelfort@gmail.com
143
Swapping tambm usada com pginas e segmentos Influi no nmero de processos que compartilham a memria Logo: aumenta/diminui o Grau de Multiprogramao Se ocorre trashing: muitos page faults/altas taxas de paginao Algumas pginas so descarregados (swap out) Mais tarde, essas pginas podem retornar (swap in) Para swap out quais pginas so escolhidas pelo SO? 1: De processos que esto em estado de espera 2: De processos que esto em estado de pronto Windows: arquivo de swap criado na partio do sistema Linux: arquivo de swap criado numa partio separada
professorbelfort@gmail.com
144
Pginas e segmentos podem ser compartilhados Mais simples na segmentao do que na paginao Basta ETP e ETS apontarem para mesmos frames (na RAM) Evitando carregamento redundante do mesmo cdigo Permite a comunicao e troca de dados entre eles Carece de sincronia entre processos (evitar inconsistncias) Bits nas ETP e ETS indicam as permisses de acesso SO deve fornecer mecanismos de segurana necessrios S processos autorizados acessam reas compartilhadas
professorbelfort@gmail.com
145
professorbelfort@gmail.com
146
professorbelfort@gmail.com
147
Se a RAM estiver cheia ao se carregar uma pgina do disco? Ser necessrio substituir uma pgina j carregada Qual pgina ser escolhida para ser substituda? Uma pgina que ser referenciada em seguida no bom Ela ser carregada novamente, gerando sobrecarga Uma pgina que demorar a ser referenciada o ideal Se ela foi modificada, preciso, antes, salv-la em disco Se ela no foi modificada, basta sobrescrev-la Substituir segmentos: + complexo (tamanhos diferentes) Substituio de blocos na RAM crtico no gerenciamento Existem vrias estratgias de substituio de pginas
professorbelfort@gmail.com
148
Substitui o frame a ser referenciado num futuro bem distante Invivel na prtica: referncias futuras so imprevisveis Aps execuo dos processos: um padro de comparao
professorbelfort@gmail.com
149
Substitui uma pgina qualquer Considera que pginas tm chances iguais de substituio Vantagem: Fcil de implementar Gera pouca sobrecarga Desvantagem: Baixa eficincia (pode substituir pginas logo referenciadas) Desconsidera o princpio da localidade Pela sua imprevisibilidade, raramente utilizada na prtica
professorbelfort@gmail.com
150
Substitui a pgina carregada h mais tempo Considera que a pgina teve sua chance e deve revezar Vantagem: Fcil de implementar Gera pouca sobrecarga Desvantagem: Baixa eficincia (pode substituir pginas logo referenciadas) Desconsidera o princpio da localidade usada, com adaptaes, em estratgias mais sofisticadas
professorbelfort@gmail.com
LRU (Least Recently Used): Menos Recentemente Usada Menos Recentemente Usada
Substitui pgina que est h + tempo sem ser referenciada Baseada no princpio da localidade temporal: Perfil recente da pgina um bom indicador do perfil futuro Lista de controle de pginas No topo: pgina recentemente referenciada No final: pgina h + tempo sem ser referenciada (candidata) Vantagem: Maior eficincia, comparada com RAND e FIFO Desvantagem Manuteno da lista de pginas gera sobrecarga Mnemnico: Descarta a pgina mais fria (usada h mais tempo) Mesmo que seja muito popular (usada muitas vezes)
151
professorbelfort@gmail.com
LFU (Least Frequently Used): Menos Frequentemente Usada 152 Menos Frequentemente Usada
Substitui a pgina que foi menos referenciada Baseada na intensidade de uso das pginas Vantagem: Maior eficincia, comparada com RAND e FIFO Desvantagem: Processos recm referenciados so prejudicados Logo, desconsidera o princpio da localidade Manuteno do contador de uso das pginas gera sobrecarga Mnemnico: Descarta a pgina menos popular (usada menos vezes) Mesmo que seja a mais quente (usada h menos tempo)
professorbelfort@gmail.com
153
Variante da LRU Baseada em dois parmetros associados pagina (bits): Bit de referncia (R) (1 ao carregar; periodicamente zerado) Bit de modificao (M) Cada par ordenado corresponde a (R,M) Substitui pginas na seguinte ordem: [(0,0);(0,1);(1,0);(1,1)] Vantagem: Maior eficincia, comparada LRU e LFU Considera mais de um fator Gera pouca sobrecarga Desvantagem: Baixa eficincia, comparada a algoritmos mais avanados Mnemnico: Descarta: pginas geladas, depois as frias, depois as mornas Repare que o bit R tem maior prioridade que o bit M
professorbelfort@gmail.com
Segunda Chance
154
Variante do FIFO Baseado no valor do bit de referncia da pgina (R) Consulta R da pgina mais antiga (a primeira da fila) Se R = 1, R := 0 e a pgina vai para o final da fila (tempo := 0) Se R = 0, a pgina ser substituda Elege a pgina mais antiga no referenciada Se todas as pginas foram referenciadas = FIFO puro Vantagem: Evita substituir uma pgina intensamente usada Desvantagem: Reordenao constante da lista, gera sobrecarga
professorbelfort@gmail.com
155
professorbelfort@gmail.com
156
Busca manter, na RAM, o Conjunto de Trabalho do processo Base: conceito de Localidade de Referncia:
Num instante T, um processo referencia uma frao pequena de suas pginas
Essa frao: Conjunto de Trabalho (Working Set) Desvantagem: Implementao bastante cara
professorbelfort@gmail.com
WSClock
Baseado nos mtodos: Conjunto de Trabalho (WS) e Relgio Vantagem: bom e eficiente Bastante usado na atualidade
157
professorbelfort@gmail.com
158
professorbelfort@gmail.com
159
NRU
professorbelfort@gmail.com
160
professorbelfort@gmail.com
161
professorbelfort@gmail.com
162
professorbelfort@gmail.com
Exerccio Exerccio
163
O esquema adotado para gerenciamento de memria de um determinado computador baseado na estratgia de Working Sets: W(t,I), com I = 3 e poltica de realocao de pgina do tipo LRU. Diante dessas condies, se um determinado processo apresentar a seguinte sequncia de referncias a pginas, na memria: 24, 15, 18, 23, 24, 18, 17, 18, 24, 17, 17, 15 o nmero de ocorrncias de page faults ser de: a)11 b) 9 c) 5 d)13 e) 7
24
15
18
23
24
18
17
18
24
17
17
15
professorbelfort@gmail.com
Captulo 7
Entrada e Sada (discos)
professorbelfort@gmail.com
165
professorbelfort@gmail.com
166
professorbelfort@gmail.com
167
168
Maioria dos SO busca otimizar os seguintes critrios Justia no atendimento Maximizar o rendimento Minimizar o tempo de resposta Minimizar a varincia do tempo de resposta (imprevisibilidade) Tempo mais significativo sempre foi o de busca Hoje, tempos de busca e de latncia se equivalem Tecnologia visa aprimorar: Otimizao do tempo de busca (atuador do cabeote) Otimizao do tempo de latncia (atuador de giro do disco)
professorbelfort@gmail.com
FCFS (First Come First Served) (primeiro a chegar atendido) (primeiro a chegar atendido)
Critrio: ordem de chegada (FIFO) Vantagens: Justo: atende pela ordem de chegada Impede adiamento indefinido Desvantagens Baixo rendimento Amplos movimentos do cabeote Passa por requisies existentes sem atend-las Elevados tempos de busca Recomendado apenas para cargas de trabalho leves
169
professorbelfort@gmail.com
Movimentos do FCFS
170
professorbelfort@gmail.com
SSTF (Shortest Seek Time First) (menor tempo de busca primeiro) (menor tempo de busca primeiro)
Critrio: pedidos mais prximos do cabeote primeiro Vantagem: Baixos tempos de busca Desvantagens: Injusto: atende mal as trilhas extremas Elevada varincia nos tempos de resposta (imprevisvel) Inadequado para sistemas interativos No impede o adiamento indefinido Manuteno da lista de mais prximos: gera sobrecarga
171
professorbelfort@gmail.com
Movimentos do SSTF
172
professorbelfort@gmail.com
173
Movimentos do Scan
174
Atende nos dois sentidos Vai aos batentes, mesmo quando no necessrio
professorbelfort@gmail.com
175
Critrio: semelhante ao Scan, porm: Atende pedidos apenas em uma direo (de fora pra dentro) No batente interno: vai direto para a borda, sem atendimentos Reinicia o ciclo Vantagens Elevados nveis de rendimento Limita a varincia nos tempos de resposta Reduz a discriminao dos cilindros extremos Desvantagens: No impede o adiamento indefinido (melhor que Scan e SSTF)
professorbelfort@gmail.com
176
professorbelfort@gmail.com
177
professorbelfort@gmail.com
178
Atende nos dois sentidos, congelando pedidos (em cada varredura) Vai aos batentes, mesmo quando no necessrio professorbelfort@gmail.com
179
professorbelfort@gmail.com
180
37, 80 37, 80
Atende nos dois sentidos, primeiros N pedidos da fila (em cada varredura) Vai aos batentes, mesmo quando no necessrio professorbelfort@gmail.com
181
Look Critrio: semelhante a Scan (duplo sentido), porm: No vai aos batentes, em cada direo, se no houver pedidos Elimina movimentos desnecessrios at os cilindros extremos Melhora o desempenho C-Look Critrio: semelhante ao C-Scan (sentido nico), porm: No vai aos batentes, em cada direo, se no houver pedidos Elimina movimentos desnecessrios at os cilindros extremos Melhora o desempenho
professorbelfort@gmail.com
182
Azul (Look): atende nos dois sentidos Verde (C-Look): atende em um sentido No vai aos batentes, quando no necessrio
professorbelfort@gmail.com
183
Write-back (escrita indireta): Dados so gravados no cache Depois, cache escrito para o disco, em lotes (requisio nica) Melhor desempenho Menos confivel Problemas de consistncia em caso de queda do sistema Write-through (escrita-direta): Dados so gravados no cache e no disco, simultaneamente Pior desempenho Mais confivel Sem problemas de consistncia em caso de queda do sistema
(Deitel > Sistemas Operacionais: 3. ed. pg 355)
professorbelfort@gmail.com
Captulo 8
Gerenciamento de Arquivos
professorbelfort@gmail.com
185
professorbelfort@gmail.com
Sistema de arquivos
186
Organiza os arquivos e gerencia o acesso aos dados Principais tarefas: Gerenciar arquivos e armazenamento auxiliar Especificar modo de acesso Assegurar a integridade Permitir ao usurio: criar, modificar e excluir arquivos Permitir ao aplicativo: tratar os dados adequadamente Inicializar transferncia de dados entre arquivos Referencia arquivo usando um caminho ou atalho (path) Ferramenta especfica para cpia de segurana de arquivos
professorbelfort@gmail.com
187
Metadados so informaes especiais sobre os arquivos Armazenadas em arquivos e diretrios especiais No podem ser modificadas diretamente pelos usurios SO mantm no disco: superbloco com metadados (tabela) Localizado no disco (armazenamento auxiliar) Ajuda a proteger a integridade do sistema de arquivos Possui cpias redundantes em outras partes do disco Informaes mais importantes do superbloco so: Tipo de sistema de arquivos e seu nmero de blocos Localizao dos blocos livres da partio e do diretrio raiz Data e hora da ltima modificao Informaes sobre integridade SO mantm na RAM: tabela para tratar cada arquivo aberto Contm detalhes dos atributos do arquivo SO: recebe da aplicao o descritor do arquivo (um ndice) Nmero que aponta para a tabela do arquivo aberto
professorbelfort@gmail.com
188
So: subdivises lgicas da partio do disco So: arquivos especiais do sistema com ponteiros para: Outros arquivos e seus metadados Outros diretrios (subdiretrios) e seus metadados Servem para organizar e facilitar a localizao de arquivos Possuem atributos como nome, tamanho, path... Antes: diretrio de nvel nico (no se mostrou muito til) Todos arquivos eram armazenados na raiz da unidade Nomes dos arquivos no podiam ser repetidos Depois: diretrio estruturado em hierarquia (vrios nveis) Utilizado at hoje pela maioria dos SO Permite repetir um nome de arquivo em diretrios diferentes Conceito bsicos de diretrios Diretrio raiz (/ ou \), diretrio corrente (atual) Caminho absoluto, caminho relativo (path) Ligao flexvel (simblica, atalho, alias) Ligao estrita (hard link = ponteiro, prov compartilhamento) Mapeamento de compartilhamentos
professorbelfort@gmail.com
189
professorbelfort@gmail.com
190
Permite montar (combinar), em um nico espao de nomes Vrios sistemas de arquivos heterogneos De vrias localizaes e tecnologias diferentes De forma transparente Exemplo: Unidades de: FD, CD, DVD, BR, parties de HD Ponto de montagem: Local onde comea uma hierarquia de diretrios Pode pertencer outra unidade ou partio Funciona como uma espcie de atalho Pode ser movido ou renomeado sem perdas Controlado por Tabelas de Montagem do SO Essas tabelas contm informaes de origem dos: Dispositivos anexados Sistemas de arquivos anexados Linux (Ext2): montagem no diretrio /mnt (normalmente) Windows (NTFS): montagem em qualquer diretrio
professorbelfort@gmail.com
191
professorbelfort@gmail.com
192
Mtodos de acesso a arquivos (dependem da alocao) Sequencial Aleatria (ou Direta) Sequencial indexada Particionada Sequencial: (fitas magntica) Registros fsicamente contguos Acesso sequencial (pela ordem fsica dos registros) Aleatria ou Direta (discos rgidos) Registros fsicamente dispersos Acesso de forma direta pelo nmero de registro Sequencial indexada (combinao dos dois anteriores) Acesso sequencial pela ordem das chaves ou Diretamente pelos ndices Particionada: Arquivo de subarquivos sequenciais (denominados membros) Usado para armazenar bibliotecas de programas
professorbelfort@gmail.com
193
professorbelfort@gmail.com
194
Mantm dados de arquivos em sees adjacentes no disco Localizao pelo endereo de incio e tamanho do arquivo Vantagem: Registros sucessivamente dispostos, lgica e fisicamente Desvantagem: Fragmentao externa devido aos arquivos apagados Possvel falta de espao ao criar ou expandir um arquivo Uso: CD/DVD (permite organizao antecipada dos dados) Nada impede que seja usada em HDs
professorbelfort@gmail.com
195
professorbelfort@gmail.com
196
Blocos do arquivo ficam aleatoriamente dispostos no disco Cada setor armazena um ponteiro para o prximo No ltimo setor, o ponteiro nulo Mais fcil achar espao livre para a gravao de dados A busca sequencial (em uma direo) Fragmentao torna as buscas mais lentas Usar blocos de setores contguos aumenta a eficincia Busca nas duas direes: lista duplamente encadeada Blocos grandes: Maior fragmentao interna Menos operaes com E/S Desvantagem: Desperdcio da rea de armazenamento com os ponteiros
professorbelfort@gmail.com
197
professorbelfort@gmail.com
198
Blocos do arquivo ficam aleatoriamente dispostos no disco Mantm uma Tabela de Alocao de Blocos (TAB) Tabela adicional mantida em disco contiguamente Usada em cache na RAM para acelerar acessos Um bloco aponta para o prximo bloco, at o ltimo Facilita aumentar ou reduzir o tamanho de um arquivo Localiza rapidamente blocos livres contguos (< fragmentao) Diminui acessos ao disco para pesquisa Busca sequencial com base na TAB Sistema FAT (do DOS) usava essa forma de alocao
professorbelfort@gmail.com
199
16
professorbelfort@gmail.com
200
Blocos do arquivo ficam aleatoriamente dispostos no disco i-Node (index node): estrutura de controle de cada arquivo Contm um ou mais blocos de ndices que apontam para: Blocos fsicos de dados do arquivo ou Outros blocos de ndices (que apontam para dados ou ndices) Blocos de ndices: So percorridos de modo sequencial nas buscas Bom desempenho de E/S Pouca sobrecarga no SO Podem estar na RAM para acelerar a pesquisa dos ndices Permitem acomodar arquivos de tamanhos variados Podem ter at 3 nveis hierrquicos (arquivos grandes) Quanto mais nveis, mais acessos ao disco Ext2 e NTFS implementam variaes dessa forma
professorbelfort@gmail.com
201
professorbelfort@gmail.com
I-node I-node
Calcule o tamanho desse arquivo: Bloco de ndices = 13 endereos
202
Tamanho total do arquivo 10*4KB = 40KB dado 1024 x 4KB = 4MB A2x dado 1024 x 1024 x 4KB = 4GB A2x A3x dado 1024 x 1024 x 1024 x 4KB = 4TB
2 IO
3 IO
4 IO
professorbelfort@gmail.com
203
professorbelfort@gmail.com
204
professorbelfort@gmail.com
205
Pode ser feito de 3 modos Matriz de controle de acesso Controle de acesso discricionrio Compartilhamento Matriz de controle de acesso (na prtica, no mais usada): Organiza usurios na coluna e arquivos na linha Interseo usurio x arquivo: bit=1 marca permisso de acesso Difcil gerir com muitos usurios, arquivos e modos de acesso Controle discricionrio: Metadado de cada objeto (um diretrio ou um arquivo) Especifica quem pode acessar e o tipo de acesso Deve ser configurada para cada objeto Compartilhamento: permite o acesso atravs da rede Mais prtico e seguro trabalhar com grupos em vez de usurios Grupo: coleo nomeada de usurios com mesmo perfil
professorbelfort@gmail.com
206
Discricionrio
professorbelfort@gmail.com
207
SO tem ferramentas para proteger os arquivos contra: Acessos indevidos e Violaes de integridade (intencionais ou no) Controle de acesso pode ser feito com: Autenticao e permisses (ACL: quem pode fazer o qu) qu Criptografia de arquivos Integridade pode ser protegida com: Discos em RAID Cpias de backup Sistemas de arquivos log-estruturados (operaes atmicas) Registram as transaes em arquivos de log (histrico) Pode reverter (roll back) ou terminar mais tarde (roll forward): Sombreamento de pginas (operaes atmicas) Grava as transaes em um novo bloco Validada a transao: descarta bloco antigo e habilita o novo Pode reverter se houver alguma falha
professorbelfort@gmail.com
208
blocos
professorbelfort@gmail.com
209
professorbelfort@gmail.com
210
ooooo b b b b OOOO
Crticas e sugestes: professorbelfort@gmail.com
professorbelfort@gmail.com
Leitura recomendada
professorbelfort@gmail.com
RAID
Proposto por Patterson, Gobson e Katz uma tcnica de gerenciamento de discos Projeto Inicial Redundant Arrays of Inexpensive Disks Mais tarde passou a chamar-se: Redundant Arrays of Independent Disks
212
professorbelfort@gmail.com
RAID
Combina diversos discos para: Melhorar desempenho e/ou Obter redundncia Desempenho (simultaneidade de acesso a vrios discos): Reduzir tempos de leitura e escrita Redundncia (duplicao dos dados em vrios discos): Ter acesso aos dados, mesmo se falhar um dos discos Usado em servidores de misso crtica No tem objetivo de substituir o backup
213
professorbelfort@gmail.com
RAID - funcionamento
214
RAID divide dados em conjuntos de tiras (blocos) Tiras dividem-se por diversos discos (strip set). Podem ser: Tiras de granulao fina Tiras de granulao grossa Fina: divide um arquivo em vrias tiras (em diversos discos) Reduz tempo de acesso e Aumenta taxas de transferncia (pelo acesso simultneo) Melhor para supercomputadores (acessam poucos registros) Grossa: aglomera os arquivos em uma tira (um disco) Atende vrias requisies simultneas em discos diferentes Melhor para servidores Web e de Banco de Dados
professorbelfort@gmail.com
RAID 0
215
Conhecido como faixas de disco sem paridade Distribui dados em vrias tiras em dois ou mais discos No prov redundncia: Se um disco falhar dados so perdidos Por isso, muitos no o consideram como RAID Vantagem: aumento de desempenho (pelo acesso paralelo) Servios de baixa responsabilidade e alto desempenho Exemplo: servidor proxy (cache de pginas web) Aproveitamento de disco de 100%
professorbelfort@gmail.com
216
professorbelfort@gmail.com
RAID 1
217
Conhecido como espelhamento Distribui dados em exatamente 2 discos, de forma repetida Prov redundncia: Se um disco falhar, dados so recuperveis Basta usar o outro disco Vantagem: redundncia e razovel desempenho (de leitura) Servio que exija redundncia e algum desempenho Exemplo: Arquivos do prprio SO Aproveitamento de disco de 50%
professorbelfort@gmail.com
218
professorbelfort@gmail.com
RAID 5
219
Conhecido como faixas de disco com paridade Distribui dados em vrias tiras em trs ou mais discos Cada grupo de tiras (cada disco) associado a uma paridade Prov redundncia: se um disco falhar, dados so recuperveis Basta usar paridade respectiva No aceita falhas em mais de um disco Prov um bom desempenho, pelos acessos paralelos Quanto mais discos, mais rpido o acesso Servio de responsabilidade e alto desempenho Exemplo: Servidor de Banco de Dados (de leitura: query) query Aproveitamento de disco de (n-1)/n% Onde n a quantidade de discos Exemplo 4 HDs de 200 GB cada = * 800 = 600 GB)
professorbelfort@gmail.com
220
professorbelfort@gmail.com
RAID 10 e RAID 01
Combinao do RAID 1 com o RAID 0 Desempenho de RAID 0 com redundncia do RAID 1 Bom para: ambientes de rede corporativa Exemplo: Grandes BD
221
RAID 10
RAID 01 professorbelfort@gmail.com
RAIDs 2, 3, 4 e 6
RAID 2, 3 e 4 Previstos no projeto inicial Menos evoludos do que o RAID 5 RAID 2: paridade Hamming* no nvel de bit (ECC) (n discos) discos RAID 3: paridade XOR no nvel de bit (disco exclusivo) exclusivo RAID 4: paridade XOR no nvel de bloco (disco exclusivo) exclusivo Raramente implementados na prtica RAID 6 Caso especial de RAID 5 No foi previsto no projeto inicial Paridade: Armazenada duas vezes Distribuda pelos discos de dados (discos no-dedicados) Torna admissvel parada de at 2 discos ao mesmo tempo Pouco implementado na prtica
*Cdigo de Hamming: vide Wikipedia (teoria e exerccios)
222
professorbelfort@gmail.com
223
professorbelfort@gmail.com
224
HD deve ser particionado e formatado para armazenar dados Particionamento Divide o HD em discos lgicos, estanques e independentes Visa organizar arquivos e otimizar o uso dos setores Um HD aceita at: 4 parties primrias ou 3 parties primrias e uma estendida (com n unid. lgicas) Formatao Cria o sistema de arquivos do SO: Tabelas de controle dos espaos livres e ocupados Unidades de alocao, setor de boot etc Habilita o SO a trabalhar com o disco DOS usava o comando: fdisk para particionar o disco format para formatar as parties Windows: usa o comando convert para converter partio FAT ou FAT32 para NTFS S possvel desfazer a converso se formatar o disco
professorbelfort@gmail.com
225
226
Mtodos de OTIMIZAO ROTACIONAL podem ser combinados com os mtodos de OTIMIZAO DE BUSCA.
professorbelfort@gmail.com
Movimentos do SLTF
227
professorbelfort@gmail.com
SPTF e SATF
SPTF (Tempo de Posicionamento mais curto primeiro) TPosicionamento = TBusca + TLatncia Chegar ao cilindro e ao setor primeiro
228
SATF (Tempo de Acesso mais curto primeiro) TAcesso = TPosicionamento + TTransferncia Chegar ao cilindro, ao setor e transmitir primeiro
professorbelfort@gmail.com
229
Respostas precisas exigem conhecimento das especificaes reais do disco: Tbusca, Tlatncia, etc
professorbelfort@gmail.com
Processamento Paralelo
professorbelfort@gmail.com
231
(alta velocidade)
(troca de mensagens)
(troca de mensagens)
Fortemente acoplados
Fortemente acoplados
(memria no compartilhada) (rede de altssimo desempenho)
Fracamente acoplados
(memria no compartilhada)
professorbelfort@gmail.com
232
Sistema de 2 ou + computadores chamados nodos ou ns Executa aplicaes e tarefas pesadas e/ou de misso crtica Usurios utilizam recursos do cluster de modo transparente Simula um computador de alta capacidade que no falha Atende os requisitos crticos de uma rede corporativa Desempenho/Tempo de resposta Confiabilidade/Disponibilidade /Tolerncia a falhas Balanceamento de carga/Adaptao ao ambiente
professorbelfort@gmail.com
233
Nodos: fisicamente prximos, no mesmo segmento IP de rede Cada nodo tem dois endereos IP e responde pelos dois O endereo de rede individual (conforme o segmento IP) O endereo de cluster compartilhado (depende do cluster) Clientes enviam pedidos para o nome ou IP atribudo ao cluster DNS resolve o nome do cluster para o respectivo IP do cluster Servio interno: decide que n ir atender a solicitao
professorbelfort@gmail.com
Tipos de cluster
Baseados em hardware e/ou software (do SO ou de 3s) Existem basicamente 3 tipos de cluster Cluster de alta disponibilidade (High Availability) Cluster de alto desempenho Cluster de balanceamento de carga (Load Balancing) Alta disponibilidade Aplicativos e servios a prova de falhas (failover automtico) Alto Desempenho Tarefas de grande volume computacional Em pouco tempo e com baixo custo Balanceamento de carga Distribui os pedidos de clientes entre diversas mquinas
234
professorbelfort@gmail.com
235
Depende de HW especfico e das aplicaes cluster aware* Um n ativo de cada vez (failover automtico) Cliente reenvia pedido se necessrio Discos so compartilhados entre os vrios nodos Servio que roda na rede define quem ser o n ativo Sinais heart beat (batida cardaca) checa integridade do n ativo Usado em: Sistemas de misso crtica Correio eletrnico Banco de Dados Servidor de Arquivos, entre outros
236
professorbelfort@gmail.com
237
professorbelfort@gmail.com
238
Distribui pedidos dos clientes por diversos ns Busca equilibrar as cargas de trabalho entre ns Alocao: Base: funo hash (parmetros: caractersticas dos clientes) Aponta para apenas um dos ns Todos os ns ficam ativos ao mesmo tempo Falhas: ns restantes assumem as solicitaes dos clientes Cliente reenvia pedidos se necessrio Pode: adicionar ou remover ns, de acordo com a demanda Normalmente: Usado em servios Web De grande volume e com custo de parada alto
professorbelfort@gmail.com
239
240
Composto por um n mestre e vrios ns escravos Objetivo: Tarefa de grande volume computacional Em pouco tempo e com baixo custo Funcionamento: Mestre: divide a carga de trabalho em partes Escravos: assumem a execuo das partes Mestre: Supervisiona e gerencia os escravos Todos os ns ficam ativos ao mesmo tempo Pode: adicionar ou remover ns, de acordo com a demanda Cluster Beowulf: HW padro e heterogneo (de baixo custo) SW opensource (Linux)
241
professorbelfort@gmail.com
242
professorbelfort@gmail.com
Cluster no Windows
243
professorbelfort@gmail.com
244
A diferena existente entre a computao distribuda e computao em grade de d pelo fato de que a computao distribuda um conceito que vem dos anos 80 e 90, e consiste na possibilidade de resolver um determinado problema computacional atravs da utilizao de diferentes recursos distribudos geograficamente. A computao distribuda passa a ser uma Computao em Grade no momento em que existe uma infra-estrutura fsica e uma infra-estrutura lgica (software) que permita coordenar os trabalhos que vo ser processados e garantir a sua qualidade de servio. O Grid um caso particular da computao distribuda, uma vez que os Grids so orientados essencialmente para aplicaes que precisam de uma grande capacidade de clculos, ou enormes quantidades de dados transmitidos de um lado para o outro, ou as duas. O nome Grid foi idealizado baseado nas malhas de interligao dos sistemas de energia eltrica (power-grids), em que um usurio utiliza a eletricidade sem ao menos saber em que local ele foi gerada, sendo totalmente transparente aos seus usurios.
professorbelfort@gmail.com
245
A computao em grid envolve a utilizao de recursos dispersos em diferentes domnios. Estes recursos podem ser processamento, capacidade de armazenamento, softwares instalados em determinados pontos ou equipamentos especficos a serem compartilhados. Cada domnio pode possuir regras prprias de segurana em relao ao acesso a seus recursos. Este conjunto de recursos utilizados em conjunto para uma determinada finalidade cria uma organizao virtual (virtual organization) que ultrapassa os limites dos domnios pr-existentes. Esta organizao virtual pressupe o estabelecimento de regras de segurana diferentes das existentes nos domnios individuais. Um fator complicador que deve ser levado em considerao a dinmica na criao das organizaes virtuais, muitas vezes criadas por curtos perodos de tempo, o que dificulta o estabelecimento de relaes fixas de confiana entre os domnios. A organizao real caracteriza-se por ser um domnio permanente com regras e recursos bem definidos. O controle de segurana definido por uma autoridade local. O segundo tipo de organizao a organizao virtual, com carter temporrio, normalmente criada para atender uma necessidade de processamento especfica e com regras de segurana no definidas. A figura mostra que as organizaes virtuais englobam recursos de vrios domnios. Estes recursos podem pertencer simultaneamente a vrias organizaes virtuais.
http://arquivosweb.lncc.br/pdfs/relatorio-30-03.pdf professorbelfort@gmail.com
246
professorbelfort@gmail.com
247
Utilizaremos a referncia do Prof Buyya. Se acontece o compartilhamento de recursos gerenciados por um nico sistema global sincronizado e centralizado, ento um cluster. Em um cluster, todos os ns trabalham cooperativamente em um objetivo comum e o objetivo a alocao de recursos executada por um gerente centralizado e global. Em grid, cada n, possu seu prprio gerente recursos e poltica de alocao". A tnica aqui o nvel de unicidade de: Gerenciamento Objetivos
professorbelfort@gmail.com
Leitura adicional
professorbelfort@gmail.com
Escalonamento Windows
249
O escalonador do Windows NT preemptivo com prioridades, onde as prioridades so organizadas em duas classes: tempo real e varivel. Cada classe possui 16 nveis de prioridades, sendo que as threads de tempo real tm precedncia sobre as threads da classe varivel. Todas as threads prontas para executar so mantidas em estruturas de filas de acordo com as prioridades em cada uma das classes. Cada fila atendida por uma poltica de Round-Robin. A atribuio de prioridades diferente para cada uma das classes. As threads da classe de tempo real possuem prioridade fixa determinada no momento da criao, enquanto que as threads da classe varivel tem prioridades dinmicas. Assim quando uma thread da classe varivel criada, recebe uma prioridade e inserida sempre na fila dessa prioridade, j uma thread da classe varivel pode migrar entre as filas de prioridades. Na classe varivel, a prioridade das threads formada por dois parmetros, um vinculado a prpria thread e o outro vinculado ao processo a que ela pertence. Um objeto processo recebe na sua criao, uma prioridade que varia de zero a quinze e cada thread recebe uma prioridade variando de duas unidades para cima ou para baixo da prioridade do processo. O critrio usado para variar a prioridade de uma thread o tempo de uso do processador. Se a thread interrompida por usar todo oquantum de tempo que lhe foi atribudo, o escalonador do Windows 2000 reduz sua prioridade, caso contrrio sua prioridade aumentada. O sistema de memria virtual do Windows NT baseado em um espao linear de 32 bits, o que fornece at 4 GB de memria virtual. Normalmente, esse espao dividido igualmente entre o processo usurio (parte inferior) e o sistema operacional (parte superior), mas h a opo de se atribuir 3 GB ao processo usurio e 1 GB ao sistema operacional. Tambm prevista a extenso VLM (Very Large Memory) para os processadores de arquitetura de 64 bits, que permitem a alocao de at 28 GB de memria suplementar. J a alocao de memria realizada em duas fases. Primeiro, o processo reserva um certo nmero de pginas da memria virtual sem necessariamente utiliz-las. Em seguida, media que o processo necessita de memria, essas pginas pr-alocadas so mapeadas a reas efetivas de armazenamento (commit). As pginas podem ter trs estados diferentes: livre (pginas no utilizadas pelo processo), reservadas (alocadas a algum processo, porm no mapeadas em disco fsico) e dedicadas (j mapeadas).
professorbelfort@gmail.com
Escalonamento Windows
250
A traduo de um endereo virtual em endereo fsico se baseia em uma tabela de paginao em dois nveis. Assim, o endereo virtual de 32 bits formado por trs componentes: ndice de diretrio de pginas, ndice de tabelas de pginas e ndice de byte (deslocamento dentro da pgina). O endereo de pginas acessado para determinar qual a tabela de pginas correspondente ao endereo virtual. A entrada da tabela, por sua vez, possui informaes referentes ao endereo da pgina a ser acessada. Finalmente, o ndice de byte somado ao endereo inicial da pgina em memria correspondendo ao endereo fsico. Para um sistema de gerencia de memria baseado em paginao, necessrio determinar quando e como buscar pginas do disco (swap) para a memria. O algoritmo de paginao baseado por demanda com clustering. Nesse esquema, quando ocorre uma falta de pgina, o gerenciador de memria carrega a pgina que faltava e algumas ao redor. Uma das vantagens do clustering a minimizao do nmero de acessos ao disco provocados pela paginao de um processo. Alm disso, a carga de pginas em avano diminui o nmero de leituras individualizadas, e aumenta a probabilidade de um processo paginado acessar a memria diretamente. A poltica para a substituio de pginas na memria depende da arquitetura e do processador da mquina. Para arquiteturas do tipo multiprocessador, a estratgia baseada em FIFO. Para arquiteturas monoprocessadas, o algoritmo de seleo da pgina LRU, implementado atravs do algoritmo do relgio (clock). Para representar o nmero de pginas presentes em memria para um processo, usado o Working Set. Existem um valor mnimo e um valor mximo definidos a partir do tamanho, e o Working Set ajustado a depender da quantidade de memria existente e da necessidade dos processos.
professorbelfort@gmail.com
Escalonamento Linux
251
O problema bsico de escalonamento em sistemas operacionais como satisfazer simultaneamente objetivos conflitantes: tempo de resposta rpido, bom throughput para processos background, evitar postergao indefinida, conciliar processos de alta prioridade com de baixa prioridade, etc. O conjunto de regras utilizado para determinar como, quando e qual processo dever ser executado conhecido como poltica de escalonamento. Nesta seo, ns estudaremos como o Linux implementa seu escalonador e qual a poltica empregada para determinar quais processos recebem o processador. Tradicionalmente, os processos so divididos em trs grandes classes: processos interativos, processos batch e processos tempo real. Em cada classe, os processos podem ser ainda subdivididos em I/O bound ou CPU bound de acordo com a proporo de tempo que ficam esperando por operaes de entrada e sada ou utilizando o processador. O escalonador do Linux no distingue processos interativos de processos batch, diferenciando-os apenas dos processos tempo real. Como todos os outros escalonadores UNIX, o escalonador Linux privilegia os processos I/O bound em relao aos CPU bound de forma a oferecer um melhor tempo de resposta s aplicaes interativas. O escalonador do Linux baseado em time-sharing, ou seja, o tempo do processador dividido em fatias de tempo (quantum) as quais so alocadas aos processos. Se, durante a execuo de um processo, o quantum esgotado, um novo processo selecionado para execuo, provocando ento uma troca de contexto. Esse procedimento completamente transparente ao processo e baseia-se em interrupes de tempo. Esse comportamento confere ao Linux um escalonamento do tipo preemptivo. O algoritmo de escalonamento do Linux divide o tempo de processamento em pocas (epochs). Cada processo, no momento de sua criao, recebe um quantum calculado no incio de uma poca. Diferentes processos podem possuir diferentes valores de quantum. O valor do quantum corresponde durao da poca, e essa, por sua vez, um mltiplo de 10 ms inferior a 100 ms.
professorbelfort@gmail.com
Escalonamento Linux
252
Outra caracterstica do escalonador Linux a existncia de prioridades dinmicas. O escalonador do Linux monitora o comportamento de um processo e ajusta dinamicamente sua prioridade, visando a equalizar o uso do processador entre os processos. Processos que recentemente ocuparam o processador durante um perodo de tempo considerado longo tm sua prioridade reduzida. De forma anloga, aqueles que esto h muito tempo sem executar recebem um aumento na sua prioridade, sendo ento beneficiados em novas operaes de escalonamento. Na realidade, o sistema Linux trabalha com dois tipos de prioridades: esttica e dinmica. As prioridades estticas so utilizadas exclusivamente por processos de tempo real correspondendo a valores na faixa de 1-99. Nesse caso, a prioridade do processo tempo real definida pelo usurio e no modificada pelo escalonador. Somente usurios com privilgios especiais tm a capacidade de criar e definir processos tempo real. O esquema de prioridades dinmicas aplicado aos processos interativos e batch. Aqui, a prioridade calculada, considerando-se a prioridade base do processo e a quantidade de tempo restante em seu quantum. O escalonador do Linux executa os processos de prioridade dinmica apenas quando no h processos de tempo real. Em outros termos, os processos de prioridade esttica recebem uma prioridade maior que os processos de prioridade dinmica. Para selecionar um processo para execuo, o escalonador do Linux prev trs polticas diferentes : SCHED_FIFO: Essa poltica valida apenas para os processos de tempo real. Na SCHED_FIFO criao, o descritor do processo inserido no final da fila correspondente sua prioridade. Nessa poltica, quando um processo alocado ao processador, ele executa at que uma de trs situaes ocorra: (i) um processo de tempo real de prioridade superior torna-se apto a executar; (ii) o processo libera espontaneamente o processador para processos de prioridade igual sua; (iii) o processo termina, ou bloqueia-se, em uma operao de entrada e sada ou de sincronizao.
professorbelfort@gmail.com
Escalonamento Linux
253
SCHED_RR: Na criao, o descritor do processo inserido no final da fila SCHED_RR correspondente sua prioridade. Quando um processo alocado ao processador, ele executa at que uma de quatro situaes ocorra: (i) seu perodo de execuo (quantum) tenha se esgotado nesse caso o processo inserido no final de sua fila de prioridade; (ii) um processo de prioridade superior torna-se apto a executar; (iii) o processo libera espontaneamente o processador para processos de prioridade igual a sua; (iv) o processo termina, ou bloqueia-se, em uma operao de entrada e sada ou de sincronizao. Essa poltica tambm s vlida para processos de tempo real. SCHED_OTHER: Corresponde a um esquema de filas multinvel de prioridades SCHED_OTHER dinmicas com timesharing. Os processos interativos e batch recaem nessa categoria. A criao de processos em Linux, como em todos os sistemas UNIX, baseada em uma operao do tipo fork-exec, ou seja, um processo cria uma cpia sua (fork) e em seguida substitui o seu cdigo por um outro (exec). No momento da criao, o processo pai (o que fez o fork) cede metade de seu quantum restante ao processo filho. Esse procedimento , na verdade, uma espcie de proteo que o sistema faz para evitar que um usurio, a partir de um processo pai, crie um processo filho que execute o mesmo cdigo do pai. Sem essa proteo, a cada criao o filho receberia um novo quantum integral. Da mesma forma, o ncleo Linux previne-se contra o fato de um mesmo usurio lanar vrios processos em background, ou executar diferentes sesses shell. O escalonador do Linux executado a partir de duas formas diferentes. A primeira a forma direta atravs de uma chamada explcita rotina que implementa o escalonador. Essa a maneira utilizada pelo ncleo do Linux quando, por exemplo, detecta que um processo dever ser bloqueado em decorrncia de uma operao de entrada e sada ou de sincronizao. A segunda forma, denominada de lazy, tambm conseqncia do procedimento de escalonamento, ocorrendo tipicamente em uma de trs situaes.
professorbelfort@gmail.com
Escalonamento Linux
254
A primeira dessas situaes a rotina de tratamento de interrupo de tempo que atualiza os temporizadores e realiza a contabilizao de tempo por processo. Essa rotina, ao detectar que um processo esgotou seu quantum de execuo aciona o escalonador para que seja efetuada uma troca de processo. A segunda situao ocorre quando um processo de mais alta prioridade desbloqueado pela ocorrncia do evento que esperava. A parte do cdigo que efetua o desbloqueio, isto , trata os eventos de sincronizao e de entrada e sada, consulta a prioridade do processo atualmente em execuo e compara-a com a do processo que ser desbloqueado. Se o processo a ser desbloqueado possuir uma prioridade mais alta, o escalonador acionado, e ocorre uma troca de processo. A terceira, e ltima forma de execuo lazy, quando um processo explicitamente invoca o escalonador atravs de uma chamada de sistema do tipo yield. Essa chamada de sistema permite a um processo passar sua vez de execuo a outro processo, e, para isso, parece claro, necessrio executar o escalonador.
professorbelfort@gmail.com
FIFO com buffer de pginas (mtodo de substituio de ppginas na memria) pginas (mtodo de substituio de ginas na memria)
Combina duas listas de referncias a pginas: Uma lista de pginas ativas (LPA) e Uma lista de pginas inativas (LPI) Pginas mais recentes ficam no incio da LPA Pginas menos recentes ficam no final da LPI Vantagem: Pginas recm referenciadas no so substitudas Pela simplicidade, esse mtodo adotado no Linux Considera o princpio da localidade
255
Pgina referida pela 1 vez Pgina referida pela 2 vez Pgina referida pela 3 vez
incio da LPI, bit de referncia = 1 LPA, bit de referncia = 0 topo da LPA, bit de referncia = 1 professorbelfort@gmail.com
256
Rollback/commit em transferncias bancrias (explique) Semforos: binrios x contadores (diferencie) Escalonamento: alto x mdio x baixo (diferencie) SRT: processo preemptado: onde encaixa-se na fila? Fork: finalidades do uso (Carissimi x Berenger) (explique) Monoprocessado: gera concorrncia Multiprocessado : gera paralelismo Impedimento de deadlock (citar as 4 estratgias) Substituio de pginas (explique) Windows: FIFO ou LRU (depende arquitetura do processador) Linux: FIFO com buffer de pginas HD: tipos de cache diferencie: write .......... X write .......... Modularidade afeta: (explique) Extensibilidade: facilidade de modificao Portabilidade: facilidade de adaptao Qual a relao entre Working Set e Page Faults?
professorbelfort@gmail.com
257
= W (fixo) N = nmero de referncias memria M = nmero de pginas distintas Poltica de realocao local Em qualquer situao: PF (page fault) N M N PFmin = Nmero mnimo de PF (melhor caso) PFmx = Nmero mximo de PF (pior caso) Melhor caso: ; N 1; M = 1 sempre a mesma pgina PFmin = M Pior caso: = 1; N = M pginas so todas diferentes PFmx = N Para W 1 independe de PFmin = Nmero mnimo de PF (melhor caso) =M PFmx = Nmero mximo de PF (pior caso) =N
professorbelfort@gmail.com
professorbelfort@gmail.com