Sei sulla pagina 1di 258

Sistemas Operacionais

Organizao e Arquitetura
(para concursandos da REA de TI) TI

Prof. Marcus Belfort Braslia/DF


professorbelfort@gmail.com

Captulo 1
Conceitos Bsicos Histrico Arquiteturas

professorbelfort@gmail.com

Funes bsicas: gerenciar recursos Funes bsicas:


Facilitao de acesso (abstrair detalhes do hardware) Compartilhamento organizado e protegido

programadores e analistas

usurios

programas, sistemas e aplicativos

Usurios

Sistema Operacional

memria Hardware UCP

discos

fitas

impressoras

monitores

professorbelfort@gmail.com

Funes bsicas: computador em camadas Funes bsicas:

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

Taxonomia de hardware [Flynn 1972] [Flynn


SISD (Single Instruction stream over a Single Data stream)
uma Sequncia de Instrues, uma Sequncia de Dados (apenas uma UC) Computadores sequenciais convencionais

SIMD (Single Instruction stream over a Multiple Data stream)


uma Sequncia de Instrues, Mltiplas Sequncias de Dados (apenas uma UC) Processador matricial (cada UP com sua memria e dados prprios) Processador vetorial (cada core com vrios pipelines ou vrias ALUs)

MISD (Multiple Instruction stream over a Single Data stream)


Mltiplas Sequncias de Instrues, uma Sequncia de Dados (vrias UC) (no existem computadores construdos que se enquadrem nesta categoria.

MIMD (Multiple Instruction stream over a Multiple Data stream)


Mltiplas Sequncias de Instrues, Mltiplas Sequncias de Dados (vrias UC) Sistemas multiprocessadores Sistemas multicomputadores

professorbelfort@gmail.com

Sistemas Operacionais: tipos de processamento

professorbelfort@gmail.com

Monoprogramao x Multiprogramao Monoprogramao Multiprogramao

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

link de comunicao UCP UCP

Fraco
Memria Principal Dispositivos de E/ S Memria Principal Dispositivos de E/ S

professorbelfort@gmail.com

Classificao dos SO Classificao


Quanto ao nmero de aplicativos Monoprogramao (monotarefa) Multiprogramao (multitarefa) Quanto ao nmero de usurios Monousurio Multiusurio Quanto quantidade de processadores Monoprocessado Multiprocessado (simtrico e assimtrico) Quanto ao compartilhamento da memria Fortemente acoplados Fracamente acoplados Quanto ao tipo de trabalho Lote (batch) Tempo compartilhado (time-sharing) Tempo real

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

Sistemas fechados x Sistemas abertos


Windows Cdigo proprietrio (fechado) GUI - cada vez mais oferecendo CLI Pago (licenciamento) Linux Cdigo disponibilizado livremente (aberto) CLI - cada vez mais oferecendo GUI Gratuito

12

GUI (Graphical User Interface) CLI (Command Line Interface)


professorbelfort@gmail.com

Atributos desejveis em um SO desejveis


Desempenho (eficincia x eficcia) Baixo custo Segurana Controle de acesso Criptografia Rastreabilidade Redundncias Robustez (estabilidade em condies extremas) Escalabilidade Extensibilidade Portabilidade Usabilidade Padronizao Manutenibilidade

13

professorbelfort@gmail.com

Estrutura lgica de um SO lgica


Usurio Aplicao Shell
(interpretador de comandos) (no faz parte do kernel)

14

Modo usurio

System Calls (APIs)


Sistema Operacional

Ncleo* (kernel) Drivers Hardware


* PRINCIPAIS ROTINAS DO KERNEL Escalonador de processo Gerenciador de memria Gerenciador de E/S Gerenciador do sistema de arquivos Gerenciador de comunicao interprocessos (IPC)
professorbelfort@gmail.com

Modos de operao operao


Processo pode executar em dois modos Modo usurio Modo ncleo Modo usurio: s so executadas as instrues que No precisam de privilgios No controlam o HW diretamente Modo ncleo: so executadas as instrues que Permitem acesso s rotinas do kernel (privilegiadas) Permitem acesso direto ao hardware (Mecanismo de proteo e controle do SO) Chaveamento de modo (troca entre modos) implementada no nvel de hardware (set de flags pelo SO) Consome recursos do processador (pra a execuo) <> de Troca de contexto (escalonamento de processos)

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

Arquitetura monoltica monoltica

17

professorbelfort@gmail.com

Arquitetura monoltica monoltica


Mais antiga e mais comum Componentes do ncleo contidos em bloco nico Todas as funes interagem livremente entre si Simples e de bom desempenho (DOS e primeiros UNIX) Difcil de isolar fontes de problemas e erros

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

Arquitetura de microncleo (cliente-servidor) microncleo (cliente-servidor)

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

Arquitetura de microncleo (cliente-servidor) microncleo (cliente-servidor)

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

Mquina Virtual Mquina


Camada intermediria entre o SO e o hardware Diversas mquinas virtuais independentes (VM) Cpia virtual do hardware completa Sistemas Operacionais diferentes Isolamento total entre mquinas (e respectivas falhas)
VM 1 VM 2 VM n

23

Ap1

Ap2

Apn

SO1

SO2

SOn

HV1

HV2

HVn

Gerncia de Mquinas Virtuais

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

Criao do programa Criao


Linguagem de alto nvel (3 e 4 geraes) Compilador Anlise Lxica Anlise Sinttica Anlise Semntica Cdigo intermedirio Otimizao: cdigo-objeto no-executvel Ligao (linker) Integrao de vrias bibliotecas (mdulos pr-compilados) Gera uma grande unidade executvel Carregamento

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

API (Application Programming Interface) (Application

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

Mecanismos de proteo de um SI proteo


Processador Modos: usurio x kernel (real x protegido) Instruo privilegiada Memria Registrador de limite superior Registrador de limite inferior Execuo Interrupo e exceo Temporizador Disco Permisso Criptografia Rede Autenticao Firewall Princpio do privilgio mnimo UAC (Windows Vista) su (Unix)

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

Contextos de um processo (3 partes) Recursos alocados


PID owner (UID) prioridade de execuo data/ hora de criao tempo de processador quotas
Programa

32

nome registradores gerais

Registradores

registrador PC

Contexto de Software

Contexto de Hardware

registrador SP

privilgios
Espao de Endereamento

registrador de status

endereos de memria principal alocados

Espao na RAM
professorbelfort@gmail.com

Ciclo de vida do processo (diagrama de estados)


Estado de Execuo

33

(b) Iniciado pelo prprio processo

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

Processos: Foreground x Background


Roda em primeiro plano Interativo (online)

34

Roda em segundo plano No-Interativo (em lote)


professorbelfort@gmail.com

Processos: I/O-bound x CPU-bound I/O-bound CPU-bound

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

Bloco de controle do processo (PCB)


Ao criar um processo, o SO cria um BCP (PCB) uma tabela com informaes relativas ao processo Reside na RAM enquanto o processo existe Acesso exclusivo do SO
Ponteiros Estado do processo Nome do processo Prioridade do processo Registradores Limites de memria Lista de arquivos abertos Pai Filhos ......

37

Bloco de Controle do Processo (ou Descritor do Processo) professorbelfort@gmail.com

Bloco de controle de processos

38

professorbelfort@gmail.com

Chaveamento de contexto (alternncia de processos)


SO ao interromper um processo Armazena no BCP as informaes de contexto (hardware) Permite continuar, mais tarde, exatamente de onde parou SO tambm responde a interrupes Sinais enviados pelo hardware atravs do barramento Verificadas aps execuo de cada instruo (atomicidade) Requerem uma rotina de tratamento apropriada Interrompem o processo em execuo

39

professorbelfort@gmail.com

Chaveamento de contexto (alternncia de processos)


Sistema Operacional

40

P rocesso A

P rocesso B

executando

Salva registradores do P rocesso A

Carrega registradores do P rocesso B

Sobrecarga
Salva registradores do P rocesso B

executando

Carrega registradores do P rocesso A

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

Interrupo, Exceo e Sinal Interrupo, Exceo

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

Sinal (cincia da computao): leitura recomendada computao):

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

Atendimento interrupo interrupo

44

Para alguns autores: interrupo de hardware e interrupo de software (trap)

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

Comunicao entre processos (IPC) Comunicao

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 A entrada do Processo A entrada do Processo B


Processo A Processo B

sada do Processo B

ls | more Comunicao entre processos

professorbelfort@gmail.com

Threads (processos leves)


Primeiros SO multiprogramados: um processo de cada vez SO multiprocessados: Execuo simultnea de processos Em processadores distintos Antes (mesmo com multiprocessamento): Em cada processo, somente uma instruo por vez Linguagens no tinham estruturas de paralelismo (C e C++) Hoje: SO e linguagens de programao evoluram Suportam: execuo simultnea em um mesmo processo Estruturas de execuo paralela: threads (processos leves) Suporte s tecnologias multithreading: SO modernos (Windows e Linux) Linguagens de ltima gerao (Java e C#)

47

professorbelfort@gmail.com

Threads (processos leves)

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

Aplicaes tpicas de threads Aplicaes tpicas


Servidor WEB Cada solicitao de cliente: ativa uma thread (operria) Processo pai Atende s novas solicitaes que chegam Despacham threads operrias para execuo Servidor de BD Cada query de usurio: ativa uma thread (operria) Processo pai: igual ao exemplo anterior Processador de texto Uma rotina bsica de captura de teclas (principal) Com menor prioridade, pode implementar threads para: Formatar o texto Fazer reviso ortogrfica Fazer reviso gramatical Salvar automaticamente o texto (a cada 15 minutos) Paralelismo: visa aumentar o desempenho (processo e SO)

50

professorbelfort@gmail.com

Motivaes para usar threads Motivaes

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

*IPC: Inter-Process Comunication http://pt.wikipedia.org/wiki/Comunicao_entre_processos


professorbelfort@gmail.com

Ciclo de vida de uma thread (diagrama de estados)


SO podem escalonar threads e processos Java: pode detalhar ainda mais os estados e o ciclo Cancelar e associar: h diferenas entre threads e processos

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

Threads de usurio (no suportadas pelo ncleo) usurio ncleo)


Aplicativo: independe do suporte pelo SO: + portabilidade Programadores decidem a rotina de escalonamento No h mudana de modo e a sobrecarga menor No executam instrues privilegiadas (modo usurio) No podem ser despachadas para outras UCP E/S bloqueante de uma thread paralisa outras threads

54

professorbelfort@gmail.com

Threads de ncleo (suportadas pelo ncleo) ncleo ncleo)


Podem executar instrues privilegiadas (modo ncleo) Podem ser despachadas para outras UCP Ideal para escalonamento por prioridades (SO tempo real) E/S bloqueante de uma thread no paralisa outras threads Aplicativos dependem do suporte pelo SO: - portabilidade H mudana de modo e a sobrecarga maior Gerenciar muitas threads: consumo intenso de recursos

55

professorbelfort@gmail.com

Threads hbridos hbridos

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

Execuo simultnea de processos Execuo

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

Programao concorrente Programao


Processos em execuo simultnea (paralela ou no) Concorrendo por recursos compartilhados Vale tambm threads e subprocessos Tornaram os SO e programas muito mais complexos Vantagens: Maior eficincia em sistemas multiprocessados Menor tempo de resposta nos programas interativos Transio mais suave e harmnica entre processos Melhores solues para problemas inerentemente paralelos Otimizao do escalonamento baseado em prioridade

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

Programao concorrente (paralelismo) Programao

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

Programao concorrente:condies de disputa Programao concorrente:condies

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

Recurso compartilhado = varivel em memria compartilhada professorbelfort@gmail.com

Excluso mtua mtua

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!

*Processos nessa situao esto em: condies de disputa (race condition)


professorbelfort@gmail.com

Regio Crtica (ou Seo Crtica) Crtica Seo 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

Solues para regio crtica Solues crtica


Solues de hardware Desabilitar interrupes (mascaramento) Instruo test-and-set (atomicidade): varivel global na RAM Solues de software Algoritmo de Dekker Algoritmo de Peterson Algoritmo de Lamport

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

Algoritmo de Peterson (espera ocupada)

65

professorbelfort@gmail.com

Sincronizao pelo SO Sincronizao


Problemas da concorrncia: sanados com a sincronizao Mecanismos de sincronizao do SO Variveis compartilhadas na memria principal ou Troca de mensagens entre processos (protocolos)

66

Buffer no cheio

Buffer no vazio

Sincronizao: Produtor x Consumidor


professorbelfort@gmail.com

Semforos (S) Semforos

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

Semforos (S) Semforos

68

S=1: recurso livre S=0: recurso ocupado

S=1

down

S=0

S=0

down

S=0

Semforo binrio = Mutex = {0,1}

(no-ocupada)
professorbelfort@gmail.com

Problema com uso de semforos semforos

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

Condies necessrias para deadlock (simultneas) Condies necessrias

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

Solues para deadlock Solues


Preveno Negar qualquer uma das 4 condies necessrias Anulao Dinmica Alocar recursos criteriosamente Algoritmo do banqueiro (de Dijkstra) Deteco e recuperao: muito caro Deixar ocorrer, detecta e elimina: Reverter o estado do processo (rollback) Tomar o recurso de um dos processos (preempo) Encerrar um dos processos envolvidos Ignorar (Algoritmo do Avestruz) Muitos SO modernos ignoram o deadlock (evento raro) Windows Unix like (Linux) Assim: assume-se a possibilidade de reiniciar o sistema

75

professorbelfort@gmail.com

Algoritmo do Banqueiro (de Dijkstra) Dijkstra)


Determina se processo pode executar de forma segura: Processo declara todos recursos que vai usar A execuo permitida se: Soma dos recursos requisitados < recursos disponveis Recursos requisitados = Recursos declarados pelos processos j executando + Recursos declarados pelo novo processo Caractersticas: Conservativo: Pode recusar processos que no causem deadlock Mas seguro, pois impede sua ocorrncia Aplica-se a mltiplas instncias de recursos

76

professorbelfort@gmail.com

Adiamento indefinido (starvation = inanio) (starvation inanio)


uma situao, tambm, conhecida como: Postergao indefinida Espera indefinida Inanio ou Starvation Processo nunca consegue: Executar sua regio crtica, ou seja Acessar o recurso compartilhado Por que isso ocorre? Quando o recurso desejado liberado SO sempre escalona outro processo para o recurso Eliminao: tcnica de envelhecimento: aging Elevando a prioridade do processo gradativamente Enquanto ele espera por um recurso

77

professorbelfort@gmail.com

Captulo 4
Gerenciamento de processos

professorbelfort@gmail.com

Polticas de escalonamento (agendamento) Polticas (agendamento)

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

Intermedirio (de memria)


Mdio Memria Sofrer SWAP (out/in) Reduz/Aumenta

Baixo (de CPU)


Curto PRONTOS Ir executar xxx

*GM: Grau de Multiprogramao


Leia tambm: http://pt.wikipedia.org/wiki/Escalonamento
professorbelfort@gmail.com

Polticas de escalonamento (agendamento) Polticas (agendamento)


Forte influncia no desempenho global do SO Deve garantir: justia, previsibilidade e escalabilidade Deve considerar o comportamento de um processo Processos CPU-Bound x I/O-Bound Processos Em Lote x Interativo Objetivos do escalonamento (em relao aos processos)

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

Polticas de escalonamento (agendamento) Polticas (agendamento)


Poder ser classificada como Preemptiva No-preemptiva No-preemptiva (cooperativo) SO no pode interromper um processo Processo executa at concluir (ou parar voluntariamente) Preemptiva: SO pode interromper um processo a qualquer instante Para executar outro processo (chaveamento de contexto) H vantagens e desvantagens em ambas

82

professorbelfort@gmail.com

Polticas de escalonamento com prioridades Polticas


Permite quantificar a importncia relativa dos processos Mecanismos de prioridades so de dois tipos: Prioridade esttica Prioridade dinmica Prioridade esttica: No varia ao longo da execuo do processo Fcil de implementar Prioridade dinmica (mais inteligente) Varia ao longo da execuo do processo Permite uma maior responsividade mudanas no ambiente Exemplos: Tcnica de aging, algoritmo HRRN Inverso de prioridade: SO aumenta a prioridade de um processo menos importante Diminuir sobrecarga ou liberar recursos para outro processo

83

professorbelfort@gmail.com

Polticas de escalonamento: critrios Polticas critrios


Tentam implementar justia na escolha dos processos Primeiros SO eram colaborativos: ineficientes! Exemplo: Windows 95 (multitarefa cooperativa) Processo rodava o tempo que desejava Regra geral: 1: Processo que chega vai para o final da fila pronto 2: Fila rearranjada conforme o critrio de escalonamento Atualmente, na prtica, algoritmos usados nos SO: Combinam dois ou mais critrios e so adaptativos Variam dinamicamente conforme os estados dos processos

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

SPF: Shortest Process First (Shortest Job First) (Shortest First)

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

SRT: Shortest Remaining Time

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

RR: Round Robin (alternncia circular)


Critrio: ordem de chegada (como no FIFO) Preemptivo (por quantum de tempo) Vantagens Efetivo com processos interativos Impede adiamento indefinido Desvantagens Mais complexo que FIFO Adiciona sobrecarga no chaveamento de contexto

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

por Prioridades (Filas de Prioridades)


Critrio: maior prioridade primeiro Preemptivo (por tempo e/ou prioridade de execuo) Prioridade por ser fixa ou dinmica Agrupa processos em filas de prioridades decrescentes Filas mais altas so executadas primeiro (na totalidade) Em cada fila, aplica-se RR (Round Robin)

89

professorbelfort@gmail.com

Filas Mltiplas (multinvel com feedback) Mltiplas (multinvel


Critrio: Filas de prioridade distintas e quantum crescente Preemptivo (em cada fila usa RR ou outro critrio) Filas mais altas so executadas primeiro (na totalidade) Processos mudam de fila: pelo uso do quantum Se esgota, desce (menor prioridade) Se no esgota, sobe (maior prioridade) ou mantm a fila Vantagens Mais justo e inteligente que os algoritmos bsicos Prioriza processos interativos e rpidos (ou IO-Bound) Aumenta o quantum dos processos CPU-Bound Desvantagens Complexidade de implementao

90

professorbelfort@gmail.com

Frao Justa (Fair-share) Frao (Fair-share)


Critrio: escalonamento de dois nveis Filas organizadas por grupos de usurios (ou de processos) Cada grupo recebe um quantum diferente (fixo) Preemptivo (em cada fila usa RR, com prioridade) Prioridade do processo, em cada fila = maior valor de: Tempo de uso recente* + Tempo total de uso* Tempo total de uso* Processo no muda de fila, mas muda de posio na fila Vantagens Mais justo e inteligente: prioriza processos mais importantes Priorizao Processos CPU-BOUND Mais recentemente executados Desvantagens Complexidade de implementao

91

*Tempos da frmula acima so relativos ao uso do processador


professorbelfort@gmail.com

Frao Justa (Fair-share) Frao (Fair-share)

92

RR, com prioridade

professorbelfort@gmail.com

HRRN: Highest Response Rate Next

(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

Outras polticas de escalonamento polticas


Escalonamento Garantido Cumpre promessas feitas a usurios (% alocao de CPU) Escalonamento por Loteria SO distribui tokens (fichas) numerados entre os processos Escalonador sorteia um nmero aleatrio Processos com mais tokens tm mais chance de escolha Vantagens Altamente responsivo (ao nmero de tokens distribudos) Ideal para processos cooperativos (doao de tokens)

94

professorbelfort@gmail.com

Escalonamento de Tempo Real


Ocorre em SO de tempo real Prioriza os processos em detrimento do prprio SO Busca produzir resultados em tempos determinados Divide-se em 2 tipos Crtico: prazos devem ser rigorosamente cumpridos tico No-crtico: descumprimentos de prazo so tolerados tico

95

professorbelfort@gmail.com

Resumo: Polticas de Escalonamento Polticas

96

No-preemptivos FIFO (FCFS) SPF (SJF) HRRN

Preemptivos SRT RR por Prioridades Filas Mltiplas Frao Justa Tempo Real
professorbelfort@gmail.com

Captulo 5
Gerenciamento de Memria (mtodos primitivos)

professorbelfort@gmail.com

Memria primria x Memria secundria Memria primria Memria secundria


Memria real: conhecida por vrios outros termos Memria principal Memria fsica Memria primria Memria RAM Para ser executado, um programa tem que estar na RAM Executar a partir do disco seria muito lento (inaceitvel) Diferena entre tempos de acesso de 1/1.000.000 RAM = 10 ns = 10-9 seg Disco= 10 ms = 10-3 seg

98

professorbelfort@gmail.com

Gerenciador de memria memria

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

Estratgias de gerenciamento de memria Estratgias memria


Se novos processos so alocados na RAM, considera-se: Estratgias de busca QUANDO carregar um novo processo na RAM? Demanda antecipada: ser ou no considerada Estratgias de posicionamento ONDE carregar um novo processo na RAM? Primeiro, melhor ou pior encaixe Estratgias de substituio QUAIS processos devero ser substitudos Qualquer um, o mais antigo, o mais ocioso, o mais usado Considere: Agora: programa todo carregado na RAM em espao contguo Depois: essas limitaes sero relaxadas (memria virtual)

100

professorbelfort@gmail.com

Poltica de gerenciamento de memria Poltica memria

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

Formas de alocao (particionamento da RAM) alocao (particionamento


Alocao contgua simples (monoprogramao) Usa toda a memria livre como um bloco nico Alocao particionada (multiprogramao) Esttica (ou de parties fixas) fixas Vrios blocos de tamanhos predefinidos Pode ser: Absoluta Relocvel Dinmica (ou de parties variveis) veis No usa o conceito de blocos Aloca processos de forma adjacente

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

Alocao contgua simples (monoprogramao) Alocao contgua (monoprogramao)

103

professorbelfort@gmail.com

Alocao contgua simples (monoprogramao) Alocao contgua (monoprogramao)

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

Overlay (sobreposio) (sobreposio)

105

professorbelfort@gmail.com

Overlay (sobreposio) (sobreposio)

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

Alocao Particionada Esttica Alocao Esttica

107

professorbelfort@gmail.com

Alocao Particionada Esttica Absoluta Alocao Esttica

108

professorbelfort@gmail.com

Alocao Particionada Esttica Relocvel Alocao Esttica Relocvel

109

professorbelfort@gmail.com

Alocao Particionada Esttica Alocao Esttica

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

Alocao Particionada Dinmica Alocao

111

professorbelfort@gmail.com

Alocao Particionada Dinmica Alocao

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

TEL: Tabela de Espaos Livres TEL: Tabela de Espaos Livres

professorbelfort@gmail.com

Fragmentao: interna x externa Fragmentao:


Mtodos analisados geram efeitos indesejveis Fragmentao interna Fragmentao externa Fragmentao causa desperdcios de memria Fragmentao interna ocorre na alocao esttica Espaos livres que sobram em cada bloco Ao se encaixar um novo processo Fragmentao externa ocorre na alocao dinmica Espaos livres que surgem Ao se encerrar os processos Tcnicas de gerenciamento de Memria Virtual Ajudam a diminuir esses efeitos Exemplo: MV por paginao e MV por segmentao

114

professorbelfort@gmail.com

Swapping (permuta)

115

Programa F escalonado para execuo


professorbelfort@gmail.com

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

Reentrncia (cdigo reentrante) (cdigo

117

professorbelfort@gmail.com

Reentrncia (cdigo reentrante) (cdigo

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

Memria Virtual (paginao): mapeamento EV ER Memria (paginao):

120

Endereo de um bloco

Endereo do endereo de um bloco

professorbelfort@gmail.com

Memria Virtual (paginao): mapeamento EV ER Memria (paginao):

121

Endereo de um bloco

Endereo do endereo de um bloco

professorbelfort@gmail.com

Memria Virtual (paginao): mapeamento EV ER Memria (paginao):


Qual o tamanho da MV (Memria Virtual)? 0B Qual a capacidade de endereamento da MV? 32B Qual o tamanho da TP (Tabela de Pginas)? 8*5b = 40b = 5B Quantas vias tem o REM (Barramento de Endereos)? 5 Quantos blocos existem na MV? 25-n Quantos deslocamentos existem dentro do bloco? 2n Quantos endereos o processador pode gerar? 25-n * 2n = 25 Se bloco cresce, o que acontece com a TP? Diminui Ateno: processo aloca um nmero inteiro de pginas!

professorbelfort@gmail.com

Memria Virtual Memria

123

professorbelfort@gmail.com

Memria Virtual Memria

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

Mapeamento: Memria Virtual para a Memria Fsica Memria Memria Fsica

125

professorbelfort@gmail.com

Mapeamento: consequncias da virtualizao virtualizao

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

Tabela de mapeamento (Tabela de Pginas = TP) Pginas

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

Mapeamento: forma de endereamento endereamento

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

Mapeamento: forma de endereamento (REM = 32b) endereamento

129

Endereo do incio de cada bloco na RAM

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

Memria virtual por Paginao Memria Paginao

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

Memria virtual por Paginao: mapeamento Memria Paginao:

131

EV

ER
professorbelfort@gmail.com

Tabela de Pginas multinveis (ou hierrquica) Pginas multinveis hierrquica)


10 ETD 10 ETP 12 Offset Cada ETD aponta para uma TP Cada ETP aponta para um frame (MR)

132

End incio da TP 0 End incio da TP 1

1023

Cada TP: 10b = 210 ETP

10b = 210 ETD


ETD ETP Offset EV00000000000000000000000000000101 ER00000000000001100100000000000101

ETD: Entrada na Tabela de Diretrios

ETP: Entrada na Tabela de Pginas


professorbelfort@gmail.com

Tabela de Pginas multinveis (ou hierrquica) Pginas multinveis hierrquica)


Limitaes do mapeamento direto: alto consumo de RAM A TP deve estar toda carregada na RAM De forma contgua e sequencial por nmero de pgina TP multinveis permitem armazenar apenas: Partes da TP de um processo Em pores no contguas da RAM Outras partes sero carregadas por demanda (swap) Vantagem: economia de memria RAM Ficam residentes apenas as ETP necessrias (em uso) Desvantagem: traduo mais lenta a cada nvel adicionado Pois existe um leitura adicional RAM Composio

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

Memria virtual por Segmentao Memria Segmentao

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

Memria virtual por Segmentao: mapeamento Memria Segmentao:

138

professorbelfort@gmail.com

Paginao x Segmentao Paginao Segmentao

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

Paginao x Segmentao Paginao Segmentao

140

professorbelfort@gmail.com

Memria virtual por segmentao paginada Memria segmentao


Espao de endereamento dividido em segmentos Cada segmento dividido em pginas Visa unir vantagens das duas tcnicas: Simplicidade arquitetnica da paginao Facilidades de controle de acesso da segmentao Na viso do programador, o processo continua sendo: Mapeado em segmentos de tamanhos diferentes Em funo das subrotinas e estruturas de dados do programa Na viso do SO, cada segmento : Um conjunto de pginas de tamanho igual Mapeadas por uma tabela de pginas associada ao segmento Logo: segmentos no precisam estar contguos na memria Mapeamento EV ER feito em duas etapas: EV formado por um NSV mapeado em uma ETS Resultado mapeado em uma ETP (para achar o frame) Os principais SO modernos implementam essa tcnica Famlia x86: segmentao obrigatria, paginao opcional

141

professorbelfort@gmail.com

Mapeamento em duas etapas

142

professorbelfort@gmail.com

Swapping em memria virtual memria

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

Compartilhamento (e proteo) proteo)

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

Princpio da localidade Princpio


Base para as estratgias de gerenciamento de memria Localidade temporal: se uma pgina foi usada, Grande chance de ser usada novamente a seguir Localidade espacial: se uma pgina foi usada, Grande chance de suas vizinhas serem usadas a seguir (ajuda a orientar a busca antecipada) Fatores contribuintes: laos, procedimentos, funes...

145

professorbelfort@gmail.com

Modos de paginao (2 modos) paginao


Carga por demanda Pgina carregada na RAM quando referenciada No h desperdcio de espao na RAM Ideal para sistemas antigos (RAM cara e escassa) Carga antecipada Pgina carregada na RAM quando referenciada Pginas adjacentes so carregadas tambm Melhora o desempenho da aplicao Ideal para sistemas atuais (RAM farta, CPUs rpidas)

146

professorbelfort@gmail.com

Substituio de pginas Substituio pginas

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

OPT (tima) (tima)

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

RAND (Aleatria) (Aleatria)

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

FIFO (First In First Out)

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

NRU (Not Recently Used): No Recentemente Usada No Recentemente Usada

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

Relgio (ou FIFO circular) Relgio


Organiza as pginas em um buffer circular Um ponteiro (giro horrio), aponta uma pgina de cada vez Cada pgina tem um bit de referncia ( =1 na hora da carga) Se bit da pgina apontada = 1: coloca bit = 0 Aponta para prxima pgina Se bit da pgina apontada = 0: substitui a pgina Vantagem: Simples para implementar Reduz as atualizaes de informaes sobre as pginas

155

professorbelfort@gmail.com

Conjunto de Trabalho (Working Set)

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

Pgina longnqua (baseada na teoria dos grafos) Pgina longnqua


Mais prxima do algoritmo OPT e a mais complicada Monta um grafo com todas as pginas carregadas Substitui a pgina mais distante no referenciada Vantagem: Desempenho quase timo (OPT) Desvantagem: Difcil de implementar Excesso de clculos gera sobrecarga e atrasos na execuo No implementada nos SO de mercado

158

professorbelfort@gmail.com

Resumo dos algoritmos de substituio de pginas (Tanenbaum)

159

NRU

LRU LFU LRU

professorbelfort@gmail.com

Polticas de alocao e de substituio do SO Polticas alocao substituio


Alocao de pginas Fixa: Nmero mximo de pginas por um processo fixo Pode ser til ou no dependendo do processo Varivel: Nmero mximo de pginas por um processo varivel Funo da sua taxa de paginao e ocupao na RAM Quantidade de page fault na unidade de tempo Substituio de pginas Global (atende apenas a alocao varivel) Substitui pginas de qualquer processo Tende a ignorar prioridades dos processos Local (atende as alocaes fixa e varivel) Substitui apenas pginas do mesmo processo Ajusta alocao de memria pela importncia do processo

160

professorbelfort@gmail.com

Working Set (Conjunto de Trabalho)


Muitos page faults e altas taxas de paginao = thrashing SO: mais trabalho de gerenciamento do que trabalho til Working Set: Grupo de pginas que deve ser mantido na RAM Para que um processo execute de forma eficiente Conceito de Working Set (WS) Baseado nos estudos de Denning Segue o princpio da localidade no tempo/espao WS=(t,w): funo do tempo (t) e da janela (w) t: o WS de um processo varia de um instante para outro w: quantidade de pginas num dado momento (janela) Nvel de paginao aceitvel << 50% de pginas na RAM No precisa estar todo carregado para poder executar bem

161

professorbelfort@gmail.com

Working Set e paginao paginao

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

Discos rgidos: estrutura rgidos:

165

professorbelfort@gmail.com

Disco rgido de cabeote mvel: trilhas e setores rgido cabeote mvel:

166

professorbelfort@gmail.com

Discos rgidos: tempos de atuao rgidos: atuao


Tempos de acesso: RAM: uniforme em qualquer endereo HD: depende da posio do cabeote de leitura/escrita HD: na operao de leitura/gravao, o cabeote: 1 Posiciona-se na trilha desejada (cilindro) 2 Aguarda setor desejado passar por ele (giro do disco) Assim:

167

Tresposta = Tbusca + Tlatncia + Ttransmisso


Onde: Tbusca: tempo de posicionamento na trilha (cilindro) Tlatncia: tempo de posicionamento do setor Ttransmisso: tempo de transmisso dos dados
professorbelfort@gmail.com

Discos rgidos: escalonamento rgidos:

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

Fila de requisies: {33, 72, 47, 8, 99, 74, 52, 75}

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

Fila de requisies: {33, 72, 47, 8, 99, 74, 52, 75}

professorbelfort@gmail.com

Scan (Varredura) ou Algoritmo do Elevador


Critrio: pedidos mais prximos do cabeote primeiro Tem um sentido preferencial (de fora pra dentro) Nesse sentido: atende todos os pedidos at o batente e Direo oposta: atende todos os pedidos at o batente Reinicia o ciclo Vantagem: Baixos tempos de busca Rendimento semelhante ao SSTF Desvantagens: Injusto: atende mal as trilhas extremas Elevada varincia nos tempos de resposta (imprevisvel) Inadequado para sistemas interativos No impede o adiamento indefinido

173

Adiamento indefinido: novas requisies so atendidas antes das antigas.


professorbelfort@gmail.com

Movimentos do Scan

174

Fila de requisies: {33, 72, 47, 8, 99, 74, 52, 75}

Atende nos dois sentidos Vai aos batentes, mesmo quando no necessrio

professorbelfort@gmail.com

C-Scan (Varredura Circular) C-Scan

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

Movimentos do C-Scan C-Scan

176

Fila de requisies: {33, 72, 47, 8, 99, 74, 52, 75}

Atende apenas em um sentido Vai aos batentes, mesmo quando no necessrio

professorbelfort@gmail.com

FScan (varredura congelada)


Critrio: semelhante ao Scan (atende nas duas direes) Porm: Fila de pedidos congelada no incio de cada varredura Novos pedidos so listados e atendidos na prxima varredura Vantagens Impede o adiamento indefinido Alto rendimento Tempo mdio de resposta aceitvel Menor varincia nos tempos de resposta

177

professorbelfort@gmail.com

Movimentos do Fscan (Freezing Scan)

178

Fila de requisies: {33, 72, 47, 8, 99, 74, 52, 75}

Atende nos dois sentidos, congelando pedidos (em cada varredura) Vai aos batentes, mesmo quando no necessrio professorbelfort@gmail.com

Scan N-fases N-fases


Critrio: semelhante ao FScan: Atende pedidos nas duas direes (como o Scan) Atende as primeiras N requisies da fila (em cada sentido) N poder ser ajustado: Se N=1, degenera para FCFS N muito alto, degenera para Scan Vantagens: Impede o adiamento indefinido Alto rendimento Tempo mdio de resposta aceitvel Menor varincia nos tempos de resposta

179

professorbelfort@gmail.com

Movimentos do Scan N-fases N-fases

180
37, 80 37, 80

Fila de requisies: {33, 72, 47, 8, 99, 74, 52, 75}

Atende nos dois sentidos, primeiros N pedidos da fila (em cada varredura) Vai aos batentes, mesmo quando no necessrio professorbelfort@gmail.com

Look (olhar frente) e C-Look (Look circular) C-Look

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

Movimentos do Look e C-Look C-Look

182

Fila de requisies: {33, 72, 47, 8, 99, 74, 52, 75}

Azul (Look): atende nos dois sentidos Verde (C-Look): atende em um sentido No vai aos batentes, quando no necessrio
professorbelfort@gmail.com

Polticas de Cache Polticas


Exemplo: dados da RAM so salvos no disco

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

Operaes com arquivos Operaes


Arquivo: Conjunto de dados tratado como uma unidade pelo SO Pode ser executvel (programa) ou de dados SO: realiza diversas operaes com arquivos como Criar/excluir Abrir/fechar Copiar/mover Listar/renomear SO trata estruturas internas dos arquivos (registros): Ler para memria/gravar em disco Atualizar/inserir/apagar Para o SO, arquivos possuem atributos como Nome, extenso, local, caminho (path) Tamanho (bytes), tipo, permisses Datas de criao e ltima modificao SO: basta conhecer a estrutura interna dos programas Aplicativos: orientam o tratamento dos arquivos de dados

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

Metadados (dados sobre dados)

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

Diretrios (tambm chamados de pastas no Windows) Diretrios

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

Diretrios hierrquicos (em rvore) Diretrios hierrquicos rvore)

189

professorbelfort@gmail.com

Tcnica de Montagem Tcnica

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

Implementao de montagem Implementao

191

professorbelfort@gmail.com

Arquivos: mtodos de acesso mtodos

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

Alocao de arquivos (organizao do espao ocupado) Alocao


Alocao de arquivos em disco: Semelhante alocao na RAM Organizao dos arquivos contribuem para otimizar acessos Localidade (temporal e espacial) continuam valendo Modos de alocao mais utilizados so: Alocao contgua (AC) Alocao no contgua (ANC) Lista Encadeada Tabela na Memria (tabular) Indexada (i-nodes) Arquivos aumentam e diminuem de tamanho, por isso: AC foi substituda pela ANC Mais dinmica e flexvel

193

professorbelfort@gmail.com

Alocao contgua Alocao contgua

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

Alocao contgua Alocao contgua

195

professorbelfort@gmail.com

ANC por Lista Encadeada

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

ANC por Lista Encadeada

197

professorbelfort@gmail.com

ANC por Lista Encadeada usando Tabela na Memria

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

ANC por Lista Encadeada usando Tabela na Memria

199

16

professorbelfort@gmail.com

ANC Indexada (i-Node) (i-Node)

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

ANC Indexada (i-Node) (i-Node)

201

professorbelfort@gmail.com

I-node I-node
Calcule o tamanho desse arquivo: Bloco de ndices = 13 endereos

202

Bloco Apontador direto Apontador indireto Apontador 2x indireto Apontador 3x indireto

1 IO dado A1x A1x A1x

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

Gerenciamento de espao livre espao


H, basicamente, 2 modos de controlar os espaos livres Lista de livres Mapa de bits Lista de livres: lista encadeada aponta para blocos livres Busca por bloco livre varre a lista e suprime a entrada Blocos a ocupar so retirados do incio da lista e Blocos liberados so anexados ao final da lista Mapa de bits: mapa associa um bit a um bloco diretamente 0 indica bloco livre; 1 indica bloco ocupado mantida em blocos especiais Busca por bloco livre varre rapidamente o mapa (bit :01) Vantagens do mapa de bits sobre a lista de livres: Facilidade para achar blocos livres contguos e Menor sobrecarga

203

professorbelfort@gmail.com

Lista de livres e mapa de bits

204

professorbelfort@gmail.com

Controle de acesso aos dados (em disco)

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

Configurao de permisses Configurao

206

Discricionrio

professorbelfort@gmail.com

Proteo e integridade Proteo

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

Sistemas de arquivos do Windows

208

blocos

professorbelfort@gmail.com

Sistemas de arquivos do Linux

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

Distribuio RAID 0 Distribuio

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

Distribuio RAID 1 Distribuio

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

Distribuio RAID 5 Distribuio

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

Disco rgido: particionamento e formatao rgido: formatao

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

Otimizao no desempenho (formas) Otimizao


Usar tecnologias de alto desempenho (SCSI, SATA, SAS) Aumentar a densidade do meios Usar RAID por software ou por hardware Usar a tcnica de antecipao do brao do disco* Usar buffer e cache Cache write-through Cache write-back Desfragmentar o disco regularmente Trabalhar com dados compactados Usar blocagem (agrupar dados em blocos contguos) Adicionar novos discos (locais ou remotos) Otimizar tempos de busca e de latncia

225

*Antecipao do brao do disco: Formao prvia da fila de acessos, em cada passada.


professorbelfort@gmail.com

SLTF (Shortest Latency Time First)


Tempo de latncia mais curto primeiro Tambm chamada de otimizao rotacional Critrio: baseado no atraso rotacional (tempos de latncia) Organiza as requisies de um mesmo cilindro numa fila Atende do mais prximo para o mais distante Estratgia mais prxima da teoricamente tima Fcil de ser implementada

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

Movimentos do SPTF e SATF

229

Respostas precisas exigem conhecimento das especificaes reais do disco: Tbusca, Tlatncia, etc
professorbelfort@gmail.com

Processamento Paralelo

professorbelfort@gmail.com

Processamento paralelo (MIMD)


Necessidade contnua de computadores mais rpidos Sada: computadores paralelos (diferena a latncia)
Multiprocessadores de memria compartilhada Multicomputadores com troca de mensagens Sistemas distribudos de longa distncia (computadores completos)

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

Computao em cluster Computao

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

Cluster (identificao na rede) (identificao

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

Cluster de Alta Disponibilidade (HA)

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

Cluster aware: voltadas para cluster


professorbelfort@gmail.com

Cluster de Alta Disponibilidade (HA)


O projecto Linux-HA (High-Availability Linux) incide na pesquisa e implementao de solues de alta disponibilidade (clustering) para GNU/Linux, FreeBSD, OpenBSD, Solaris e Mac OS X. O principal componente deste projecto, em evoluo, o heartbeat que funciona como gestor do cluster e dos seus recursos. Como o nome indica, a sinalizao da presena (ou ausncia) de contacto com os nodos do cluster faz-se mediante o envio de pequenos pacotes (heartbeats, batimentos cardacos) dirigidos a todos os nodos do cluster, cuja confirmao de recepo por parte de cada nodo indica o estado desse nodo.

236

professorbelfort@gmail.com

Implementao de Cluster HA Implementao

237

professorbelfort@gmail.com

Cluster de Balanceamento de Carga (LB)

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

Implementao de Cluster LB Implementao

239

*Network Load Balancing


professorbelfort@gmail.com

Cluster de Alto Desempenho

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)

As provas tm cobrado as diferenas entre: computao em cluster x computao em gradeprofessorbelfort@gmail.com (grid)!

Implementao de Cluster de Alto Desempenho Implementao

241

professorbelfort@gmail.com

Implementao de Cluster Beowulf Implementao

242

Foto de um Cluster Beowulf usando sistema operacional Red Hat Linux

professorbelfort@gmail.com

Cluster no Windows

243

professorbelfort@gmail.com

Computao em GRID Computao

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

Computao em GRID Computao

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

Grid: organizao real x organizao virtual organizao organizao

246

professorbelfort@gmail.com

Diferenas entre Cluster e Grid Diferenas

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

Sistemas Operacionais (questes dissertativas)

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

Anlise do Working Set (W) x Quantidade de Page Fault (PF)

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

Boa sorte na prova! Foi um prazer trabalhar com vocs.

professorbelfort@gmail.com

Potrebbero piacerti anche