Você está na página 1de 124

Introduo

Sistemas Operacionais
Introduo
Instituto de Informtica - UFRGS

O que se espera de um sistema de computao?


Execuo de programas de usurios Permitir a soluo de problemas

Sistema operacional um programa colocado entre o hardware do computador e os programas dos usurios de forma a atingir esses dois objetivos

Oliveira, Carissimi, Toscani

Programas Sistema Operacional Hardware


Sistemas Operacionais 2

2a

edio

Captulo 1

Reviso: Fev/2003

Componentes genricos de um sistema computacional (1)


Hardware
Recursos bsicos (memria, dispositivos de E/S, CPU).

Componentes genricos de um sistema computacional (2)

Usurio 1

Usurio 2

Usurio 3

Sistema operacional

Instituto de Informtica - UFRGS

...

Usurio n

Controla e coordena o uso do hardware entre vrios programas aplicativos e usurios.


Instituto de Informtica - UFRGS

Compilador

Programas aplicativos e de sistema


Define como os recursos de hardware so empregados na soluo de um problema (compiladores, jogos, banco de dados,...)
Oliveira, Carissimi, Toscani

Editor de texto

Browser

Quake

Sistema operacional
Oliveira, Carissimi, Toscani

Usurios
Pessoas, mquinas, outros computadores,...

Hardware

Sistemas Operacionais

Sistemas Operacionais

Sistema operacional: conceito


Sistema operacional
Um programa que controla a execuo de programas aplicativos Interface entre aplicativos e o hardware

Objetivos do sistema operacional


Tornar mais conveniente a utilizao de um computador
Esconder detalhes internos de funcionamento

Tornar mais eficiente a utilizao de um computador


Gerenciamento justo dos recursos do sistema
Instituto de Informtica - UFRGS

Duas formas de ver um sistema operacional:


Instituto de Informtica - UFRGS

Alocador de recursos Programa de controle

Facilitar a evoluo do sistema (desenvolvimento, teste e atualizao de novas facilidades)

Oliveira, Carissimi, Toscani

Sistemas Operacionais

Oliveira, Carissimi, Toscani

Sistemas Operacionais

Sistema operacional: interface entre usurio/computador

Servios oferecidos pelo sistema operacional (1)


Criao de programas

Usurio final Programador Aplicativos Utilitrios


Oliveira, Carissimi, Toscani

Editores, depuradores, compiladores

Execuo dos programas


Carga de programas em memria
Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Projetista sistema operacional

Acesso a dispositivos de E/S Controle de acesso a arquivos Acesso a recursos de sistema


Oliveira, Carissimi, Toscani

Sistema Operacional hardware

Proteo entre usurios

Sistemas Operacionais

Sistemas Operacionais

Servios oferecidos pelo sistema operacional (2)


Contabilidade

Instituto de Informtica - UFRGS

As diferentes imagens de um sistema operacional


Sistema operacional na viso do usurio:
Imagem que um usurio tem do sistema Interface oferecida ao usurio para ter acesso a recursos do sistema ! Chamadas de sistema ! Programas de sistema
Instituto de Informtica - UFRGS

Estatsticas Monitorao de desempenho Sinalizar upgrades necessrios hardware (memria, disco, etc) Tarifao de usurios

Deteco de erros
Erros de hardware ! e.g.: erros de memria, falha em dispositivos de E/S, etc... Erros de programao ! e.g.: overflow, acesso no-autorizado a posies de memria , etc... Aplicao solicita recursos que o sistema operacional no pode alocar (segurana, falta do recurso, etc)
Sistemas Operacionais 9

Sistema operacional na viso de projeto


Organizao interna do sistema operacional Mecanismos empregados para gerenciar recursos do sistema
Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Sistemas Operacionais

10

Chamadas de sistema
Forma que programas solicitam servios ao sistema operacional
Anlogo a sub-rotinas ! Transferem controle para o sistema operacional invs de transferir para outro ponto do programa

Programas de sistema
Programas executados fora do kernel (utilitrios) Implementam tarefas bsicas:
Muitas vezes confundidos com o prprio sistema operacional ! e.g. compiladores, assemblers, ligadores, etc Interpretador de comandos ! Ativado sempre que o sistema operacional inicia uma sesso de trabalho ! e.g.: bash, tsch, sh, etc... ! Interface grfico de usurio (GUI) ! e.g.: Famlia windows, MacOs, etc...

Instituto de Informtica - UFRGS

Existem chamadas de sistema associadas a gerncia do processador, de memria, arquivos e de entrada/sada


Oliveira, Carissimi, Toscani

Servios bsicos so implementados pelo micro-kernel kernel implementa demais servios empregando esses servios bsicos

Sistemas Operacionais

11

Oliveira, Carissimi, Toscani

Variao: micro-kernel

Instituto de Informtica - UFRGS

o ncleo (kernel) do sistema operacional que implementa as chamadas de sistema

Sistemas Operacionais

12

Histrico de sistemas operacionais


Primrdios:
Sistema operacional inexistente Usurio o programador e o operador da mquina Alocao do recurso computador feito por planilha

Sistemas em lote (batch)


Introduo de operadores profissionais
Usurio no era mais o operador da mquina

Job
Programa a ser compilado e executado, acompanhado dos dados de execuo (cartes perfurados) Jobs so organizados em lote (batch) ! Necessidades semelhantes (e.g. mesmo compilador)

Evoluo foi motivada por:


Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Melhor utilizao de recursos Avanos tecnolgicos (novos tipos de hardware) Adio de novos servios
Oliveira, Carissimi, Toscani

Passagem entre diferentes jobs continua sendo manual


Oliveira, Carissimi, Toscani

Sistemas Operacionais

13

Sistemas Operacionais

14

Monitor residente
Evoluo:
Sequenciamento automtico de jobs, transferindo o controle de um job a outro Primeiro sistema operacional (rudimentar)

Sistema batch multiprogramados (multitarefa)


Monitor residente permite a execuo de apenas um programa a cada vez Desperdcio de tempo de CPU com operaes de E/S Evoluo:
Instituto de Informtica - UFRGS

Monitor residente:
Instituto de Informtica - UFRGS

Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Programa que fica permanentemente em memria Execuo inicial Controle transferido para o job ! Cartes de controle Quando o job termina, o controle retorna ao monitor Centraliza as rotinas de acesso a perifricos disponibilizando aos programas de usurio
Sistemas Operacionais 15

Manter diversos programas na memria ao mesmo tempo Enquanto um programa realiza E/S, outro pode ser executado
Desperdcio CPU CPU E/S Requisio E/S Trmino E/S tempo
Sistemas Operacionais

Multiprogramao

Requisio E/S

Trmino E/S tempo


16

Multiprogramao
Manter mais de um programa em execuo simultaneamente Duas inovaes de hardware possibilitaram o surgimento da multiprogramao
Interrupes ! Sinalizao de eventos Discos magnticos ! Acesso randmico a diferentes jobs (programas) no disco ! Melhor desempenho em acessos de leitura e escrita
Oliveira, Carissimi, Toscani

Sistemas timesharing
Tipo de multiprogramao Usurios possuem um terminal
Interao com o programa em execuo

Iluso de possuir a mquina dedicada a execuo de seu programa


Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Diviso do tempo de processamento entre usurios Tempo de resposta importante

Sistemas Operacionais

17

Oliveira, Carissimi, Toscani

Sistemas Operacionais

18

Sistemas monousurio e multiusurio


Sistemas monousurio
Projetados para serem usados por um nico usurio
!

Sistemas multitarefa e monotarefa


Sistemas monotarefa
Capazes de executar apenas uma tarefa de cada vez
!

e.g.; MS-DOS, Windows 3.x, Windows 9x, Millenium

e.g.; MS-DOS

Sistemas multiusurio
Projetados para suportar vrias sesses de usurios em um computador
Instituto de Informtica - UFRGS
!

Sistemas multitarefas:
Instituto de Informtica - UFRGS

e.g.; Windows NT (2000), UNIX

Capazes de executar vrias tarefas simultaneamente Existem dois tipos de sistemas multitarefa: ! No preemptivo (cooperativo)
!

e.g.; Windows 3.x, Windows9x (aplicativos 16 bits) e.g.; Windows NT, OS/2, UNIX, Windows9x (aplicativos 32 bits)

Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Preemptivo
!

Sistemas Operacionais

19

Sistemas Operacionais

20

Sistemas distribudos (1)


Distribuir a realizao de uma tarefa entre vrios computadores Sistema distribudo:
Conjunto de computadores autnomos interconectados de forma a possibilitar a execuo de um servio Existncia de vrias mquinas transparente Software fornece uma viso nica do sistema Palavra-chave: transparncia
Oliveira, Carissimi, Toscani

Sistemas distribudos (2)


Sistemas fracamente acoplados (loosely coupled system)
Mquinas independentes ! Cada mquina possui seu prprio sistema operacional Comunicao feita atravs de troca de mensagens entre processos

Vantagens
Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Compartilhamento de recursos Balanceamento de carga Aumento confiabilidade


Oliveira, Carissimi, Toscani

A distributed system is one in which the failure of a computer you didnt even know existed can render your own computer unusable Leslie Lamport.

Sistemas Operacionais

21

Sistemas Operacionais

22

Sistemas paralelos (1)


Mquinas multiprocessadoras possuem mais de um processador Sistemas fortemente acoplados (tightly coupled system)
Processadores compartilham mmoria e relgio comuns Comunicao realizada atravs da memria

Sistemas paralelos (2)


Symmetric multiprocessing (SMP)
Cada processador executa uma cpia idntica do sistema operacional Vrios processos podem ser executados em paralelo sem perda de desempenho para o sistema A maioria dos sistemas operacionais atuais suportam SMP atravs do conceito de multithreading

Vantagens:
Instituto de Informtica - UFRGS

Oliveira, Carissimi, Toscani

Sistemas Operacionais

23

Oliveira, Carissimi, Toscani

Aumento de throughput (nmero de processos executados) Aspectos econmicos Aumento de confiabilidade ! Graceful degradation ! Sistemas fail-soft

Instituto de Informtica - UFRGS

Asymmetric multiprocessing
Cada processador executa uma tarefa especfica: ! e.g,; processador mestre para alocao de tarefas a escravos

Sistemas Operacionais

24

Sistemas de tempo real


Empregado para o controle de procedimentos que devem responder dentro de um certo intervalo de tempo
e.g. experimentos cientficos, tratamento de imagens mdicas, controle de processos, etc

Leituras complementares
R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. Editora Sagra-Luzzato, 2001.
Captulo 1

Noo de tempo real dependente da aplicao


Instituto de Informtica - UFRGS

A. Silberchatz, P. Galvin, P. Gagne; Applied Operating System Concepts. Addison-Wesley, 2000, (1a edio).
Instituto de Informtica - UFRGS

Milisegundos, minuto, horas, etc

Captulo 1

Dois tipos:
Oliveira, Carissimi, Toscani

W. Stallings; Operating Systems. (4th edition). Prentice Hall, 2001.


Captulo 2
Oliveira, Carissimi, Toscani

Hard real time ! Tarefas crticas so completadas dentro de um intervalo de tempo Soft real time ! Tarefa crtica tem maior prioridade que as demais

Sistemas Operacionais

25

Sistemas Operacionais

26

Multiprogramao

Sistemas Operacionais
Multiprogramao
Instituto de Informtica - UFRGS

Tornar mais eficiente o aproveitamento dos recursos do computador Execuo simultnea* de vrios programas
Diversos programas so mantidos na memria Conceitos necessrios a multiprogramao ! Processo ! Interrupo ! Proteo entre processos

Prprio sistema operacional um programa


Oliveira, Carissimi, Toscani

2a edio Reviso: Fev/2003

Captulo 2

Sistemas Operacionais

O conceito de processo (1)


Diferenciao entre o programa e sua execuo Programa:
Entidade esttica e permanente ! Seqncia de instrues ! Passivo sob o ponto de vista do sistema operacional
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

O conceito de processo (2)


Abstrao que representa um programa em execuo Diferentes instncias
Um programa pode ter vrias instncias em execuo, i.e., diferentes processos Mesmo cdigo (programa) porm dados e momentos de execuo (contexto) diferentes

Processo:
Entidade dinmica e efmera ! Altera seu estado a medida que avana sua execuo Composto por programa (cdigo), dados e contexto (valores)

Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Forma pela qual o sistema operacional enxerga um programa e possibilita sua execuo Processos executam:
Programas de usurios Programas do prprio sistema operacional (daemons)

Sistemas Operacionais

Sistemas Operacionais

Ciclos de vida de um processo


Criao Execuo Trmino

Ciclos de vida de um processo: criao


Momento da execuo Chamadas de sistemas
e.g.: fork, spawn, etc

Podem ser associados a uma sesso de trabalho


e.g.: login de usurios: login + senha shell (processo)
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Identificado por um nmero nico (PID)


Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Sistemas Operacionais

Sistemas Operacionais

Ciclos de vida de um processo: execuo (1)


Processos apresentam dois ciclos bsicos de operao
Ciclo de processador ! Tempo que ocupa a CPU Ciclo de entrada e sada ! Tempo em espera pela concluso de um evento (e.g. E/S)
Instituto de Informtica - UFRGS

Ciclos de vida de um processo: execuo (2)


Processos
CPU bound ! Ciclo de processador >> ciclo de E/S I/O bound ! Ciclo de E/S >> ciclo de processador
Instituto de Informtica - UFRGS

Primeiro ciclo sempre de processador


Trocas de ciclos por: ! CPU " E/S: chamada de sistema ! E/S " CPU: ocorrncia de evento (interrupo)

Sem quantificao exata Situao ideal:


Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Misturar processos CPU bound com I/O bound ! Benefcios a nvel de escalonamento

Sistemas Operacionais

Sistemas Operacionais

Ciclos de vida de um processo: trmino


Final de execuo (normal) Por erros
e.g: proteo, aritmticos, E/S, tentativa de execuo de instrues invlidas, falta de memria, exceder tempo de limite
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Relacionamento entre processos (1)


Processos independentes
No apresentam relacionamentos com outros processos

Grupo de processos
Apresentam algum tipo de relacionamento ! e.g. filiao Podem compartilhar recursos Definio de hierrquia
Oliveira, Carissimi, Toscani

Interveno de outros processos (kill) Log off de usurios

Oliveira, Carissimi, Toscani

Sistemas Operacionais

Sistemas Operacionais

10

Relacionamento entre processos (2)


Hierrquia de processos:
Processo criador processo pai Processo criado processo filho

Estados de um processo
Aps criado o processo necessita entrar em ciclo de processador Hipotses:
Processador no est disponvel Vrios processos sendo criados

Representao atravs de uma rvore


Evoluo dinmica
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Que fazer?
Criao de uma fila de aptos (p/ espera pelo processador)

Semntica associada: O que fazer na destruio de um processo?


Toda a descendncia morre A descendncia herdada pelo processo v Postergar a destruio efetiva do processo pai at o final de todos processos filhos

Oliveira, Carissimi, Toscani

Sistemas Operacionais

11

Oliveira, Carissimi, Toscani

Sistemas Operacionais

12

Modelo simplificado a dois estados


Manter uma fila de processos aptos a executar
Esperando pelo processador ficar livre

Limitao do modelo simplificado


Causas para um processo no executar
Esperando pelo processador ! Aptos para executar Esperando pela ocorrncia de eventos externos ! Bloqueado
Instituto de Informtica - UFRGS

Escalonador (dispatcher):
Atribui o processador a um processo da fila de aptos Pode prevenir um nico processo de monopolizar o processador
Instituto de Informtica - UFRGS

Dispatcher
Oliveira, Carissimi, Toscani

Escalonador no pode selecionar um processo bloqueado, logo modelo a dois estados no suficiente
Criao de novos estados
Oliveira, Carissimi, Toscani

Criao

Apto Pausa

Executando

Trmino

Sistemas Operacionais

13

Sistemas Operacionais

14

Modelo de 5 estados (1)


Executando (Running) Apto (Ready) Bloqueado (Blocked) Criao (New) Destruio (Exit)

Modelo a 5 estados (2)


Necessidade de filas
Seleo Criao Apto Tempo/ voluntrio
Instituto de Informtica - UFRGS

Trmino Executando Destruio

Instituto de Informtica - UFRGS

Ocorrncia de evento (interrupao)


Oliveira, Carissimi, Toscani

Chamada de sistema

Oliveira, Carissimi, Toscani

Bloqueado

Sistemas Operacionais

15

Sistemas Operacionais

16

Processos suspensos
Processador mais rpido que operaes de E/S
Possibilidade de todos processos estarem bloqueados esperando por E/S

Razes para suspender um processo


Swapping:
SO necessita liberar memria para executar um novo processo

Liberar memria ocupada por estes processos


Transferidos para o disco (swap)

Solicitao do usurio
Comportamento tpico de depuradores

Estado bloqueado assume duas situaes:


Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Temporizao:
Processo deve ter sua execuo interrompida por um certo perodo de tempo

Bloqueado com processo em memria Bloqueado com processo no disco


Oliveira, Carissimi, Toscani

Processo suspender outro processo


Oliveira, Carissimi, Toscani

Necessidade de novos estados


Bloqueado, suspenso (Blocked, suspend) Apto, suspenso (Ready, suspend)

e.g. sincronizao

Sistemas Operacionais

17

Sistemas Operacionais

18

Diagrama de estados de processos


Criao Admisso Ativo Apto Suspenso Tempo/ voluntrio Evento (ocorr.) Evento (espera) Admisso Suspenso Seleo Executando Destruio
Instituto de Informtica - UFRGS

Suporte de hardware multiprogramao


O compartilhamento de recursos comuns implica em garantir que a execuo incorreta de um programa no influencie a execuo de outro programa A implementao da multiprogramao explora caractersticas do hardware dos processadores Mecanismos bsicos:
Dois modos de operao Interrupo Proteo de perifricos, memria e processador

Apto, suspenso
Instituto de Informtica - UFRGS

Oliveira, Carissimi, Toscani

Bloqueado, suspenso
Sistemas Operacionais

Ativo Bloqueado
19

Oliveira, Carissimi, Toscani

Event (ocorr.)

Sistemas Operacionais

20

Modos de operao do processador


Arquitetura de processadores oferecem mecanismos para diferenciar pelo menos dois modos diferentes de operao
Modo supervisor (privilegiado/protegido) ! Possibilita a execuo de todas as instrues do processador ! Modo de execuo sistema operacional Modo usurio ! Certas instrues (privilegiadas) no podem ser executadas ! Modo de execuo dos processos usurios
Oliveira, Carissimi, Toscani

Mecanismo de interrupo (1)


Sinaliza a ocorrncia de algum evento Provoca a execuo de uma rotina especial
Tratador de interrupo

Ciclo de execuo de uma interrupo


Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Prepara a transferncia de controle para o tratador (salvamento do contexto de execuo) Desvia controle para tratador Retorna execuo (restaura contexto de execuo)
Oliveira, Carissimi, Toscani

Chaveamento de modos:
Interrupo (modo usurio modo protegido) Instruo (modo protegido modo usurio)

Sistemas Operacionais

21

Sistemas Operacionais

22

Mecanismo de interrupo (2)


Tipos de interrupo
Hardware: ocorrncia de evento externo Software: execuo de uma instruo especfica Exceo: erros de execuo (overflow, undeflow...)

Proteo de perifricos
Instrues de E/S so privilegiadas Como processos usurios realizam operaes de E/S j que estas so instrues privilegiadas?
Chamadas de sistema
Instituto de Informtica - UFRGS

Identificadas por um nmero


Instituto de Informtica - UFRGS

Vetor de interrupo

Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Prioridades Instrues privilegiadas

Sistema Operacional Modo protegido

Interrupo de software Instruo retorno

Processo usurio Modo usurio

Sistemas Operacionais

23

Sistemas Operacionais

24

Chamada de sistema
Mtodo empregado para um processo usurio solicitar servios ao sistema operacional.
Normalmente baseada em interrupes de software (traps) Aciona a rotina de tratamento de interrupo ! Identifica servio requisitado ! Verifica validade dos parmetros ! Executa o servio ! Retorna ao processo do usurio
Oliveira, Carissimi, Toscani

Proteo de memria (1)


Necessrio para evitar que usurio corrompa espaos de memria no-pertencentes a seus processos Baseado em facilidades da arquitetura do processador:
Registrador de base Registrador de limite
Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Oliveira, Carissimi, Toscani

Faixa de endereamento fora da rea delimitada pelos registradores base e limite protegida Possvel proteger dispositivos de E/S quando a tcnica E/S mapeada em memria empregada

Sistemas Operacionais

25

Sistemas Operacionais

26

Proteo de memria (2)

Proteo do processador
Para garantir a execuo do sistema operacional uma interrupo de tempo (timer) ocorre periodicamente Interrupo de tempo:
Empregada para implementar multiprogramao Mantm contabilizao de tempo para o sistema operacional (relgio)
Instituto de Informtica - UFRGS

Reg. de base End.

Reg. de limite

Usurio 3 Usurio 2

Instituto de Informtica - UFRGS

CPU

<
F

Usurio 1 Sistema operacional memria

Oliveira, Carissimi, Toscani

Sistemas Operacionais

27

Oliveira, Carissimi, Toscani

Interrupo (acesso ilegal)

Instrues relacionadas com a programao do tempo so privilegiadas

Sistemas Operacionais

28

Leituras complementares
R. Oliveira, A. Carissimi, S. Toscani Sistemas Operacionais Editora Sagra-Luzzato, 2001.
Captulo 2.

A. Silberchatz, P. Galvin Operating System Concepts. 4th edition. Addison-Wesley.


Instituto de Informtica - UFRGS

Sees 2.1, 2.2, 2.5, 4.1, 4.2 e 4.3

Oliveira, Carissimi, Toscani

Sistemas Operacionais

29

Introduo

Sistemas Operacionais
Programao concorrente
Instituto de Informtica - UFRGS

Programa executado por apenas um processo dito de programa seqncial


Existe apenas um fluxo de controle

Programa concorrente executado por diversos processos que cooperam entre si para realizao de uma tarefa (aplicao)
Existem vrios fluxos de controle Necessidade de interao para troca de informaes (sincronizao)

Emprego de termos
Oliveira, Carissimi, Toscani

2a edio Reviso: Fev/2003

Captulo 3

Paralelismo real: s ocorre em mquinas multiprocessadoras Paralelismo aparente (concorrncia): mquinas monoprocessadoras Execuo simultnea versus estar em estado de execuo simultneamente

Sistemas Operacionais

Programao concorrente
Composta por um conjunto de processos seqenciais que se executam concorrentemente Processos disputam recursos comuns
e.g. variveis, perifricos, etc...
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Motivao para programao concorrente


Aumento de desempenho:
Permite a explorao do paralelismo real disponvel em mquinas multiprocessadoras Sobreposio de operaes de E/S com processamento

Um processo dito de cooperante quando capaz de afetar, ou ser afetado, pela execuo de outro processo

Facilidade de desenvolvimento de aplicaes que possuem um paralelismo intrnsico

Oliveira, Carissimi, Toscani

Sistemas Operacionais

Oliveira, Carissimi, Toscani

Sistemas Operacionais

Desvantagens da programao concorrente


Programao complexa Aos erros comuns se adicionam erros prprios ao modelo
Diferenas de velocidade relativas de execuo dos processos

Especificao da paralelismo
Necessidade de especificar o paralelismo definindo:
Quantos processos participaro Quem far o que Dependncia entre as tarefas (Grafo)

Aspecto no-determinstico
Dficil depurao
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Notao para expressar paralelismo


fork/wait (fork/join) parbegin/parend
Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Sistemas Operacionais

Sistemas Operacionais

Fork/wait
Processo A

Parbegin/parend
Comandos empregados para definir uma seqncia de comandos a serem executados concorrentemente A primitiva parend funciona como um ponto de sincronizao (barreira)
Processo A Bloqueado
Instituto de Informtica - UFRGS

Processo B

fork B; fork C;

Processo C

...
wait C;
Instituto de Informtica - UFRGS

Processo B
Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

wait B;

Parbegin Tarefa B; Tarefa C; Parend Bloqueado

Processo C

Sistemas Operacionais

Sistemas Operacionais

Comentrios gerais
Primitivas de mais alto nvel para descrio do paralelismo do tipo parbegin/parend podem ser traduzidas por pr-compiladores e/ou interpretadores para primitivas de mais baixo nvel Processos paralelos podem ser executados em qualquer ordem
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

O problema do compartilhamento de recursos


A programao concorrente implica em um compartilhamento de recursos
Variveis compartilhadas so recursos essenciais para a programao concorrente

Duas execues consecutivas do mesmo programa, com os mesmos dados de entrada, podem gerar resultados diferentes ! No necessariamente um erro Possibilidade de forar a execuo em uma determinada ordem
Oliveira, Carissimi, Toscani

Acessos a recursos compartilhados devem ser feitos de forma a manter um estado coerente e correto do sistema

Oliveira, Carissimi, Toscani

Sistemas Operacionais

Sistemas Operacionais

10

Exemplo: relao produtor-consumidor (1)


Relao produtor-consumidor uma situao bastante comum em sistemas operacionais Servidor de impresso:
Processos usurios produzem impresses Impresses so organizadas em uma fila a partir da qual um processo (consumidor) os l e envia para a impressora
P1
Oliveira, Carissimi, Toscani

Exemplo: relao produtor-consumidor (2)


P1 5 P2
Instituto de Informtica - UFRGS

4
in

1
out

Pd

Instituto de Informtica - UFRGS

Suposies:
Oliveira, Carissimi, Toscani

P2 Pn Produtores
Sistemas Operacionais

PC Consumidor

Fila de impresso um buffer circular Existncia de um ponteiro (in) que aponta para uma posio onde a impresso inserida para aguardar o momento de ser efetivamente impressa Existncia de um ponteiro (out) que aponta para a impresso que est sendo realizada
Sistemas Operacionais 12

11

Exemplo: relao produtor-consumidor (3)


Seqncia de operaes:
P1 vai imprimir; l valor de in (5); perde processador P2 ganha processador; l valor de in (5); insere arquivo; atualiza in (6) P1 ganha processador; insere arquivo (5); atualiza in (7)

O problema da seo crtica


Corrida (race condition)
Situao que ocorre quando vrios processos manipulam o mesmo conjunto de dados concorrentemente e o resultado depende da ordem em que os acessos so feitos

Estado incorreto:
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Seo crtica:
Segmento de cdigo no qual um processo realiza a alterao de um recurso compartilhado

Impresso de P1 perdida Na posio 6 no h uma solicitao vlida de impresso


Oliveira, Carissimi, Toscani

P1

P2 Pd

7
in
Sistemas Operacionais

2
out

Oliveira, Carissimi, Toscani

13

Sistemas Operacionais

14

Necessidade da programao concorrente


Eliminar corridas Criao de um protocolo para permitir que processos possam cooperar sem afetar a consistncia dos dados Controle de acesso a seo crtica:
Garantir a excluso mtua
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Propriedades para excluso mtua


Regra 1 - Excluso mtua
Dois ou mais processos no podem estar simultneamente em uma seo crtica

Regra 2 - Progresso
Nenhum processo fora da seo crtica pode bloquear a execuo de um outro processo

Regra 3 - Espera limitada


Oliveira, Carissimi, Toscani

Entry_section
Oliveira, Carissimi, Toscani

Nenhum processo deve esperar infinitamente para entrar em uma seo crtica

Seo crtica Exit_section

Regra 4
No fazer consideraes sobre o nmero de processadores, nem de suas velocidades relativas
Sistemas Operacionais 16

Sistemas Operacionais

15

Obteno da excluso mtua


Desabilitao de interrupes Variveis especiais do tipo lock Alternncia de execuo

Desabilitao de interrupes
No h troca de processos com a ocorrncia de interrupes de tempo ou de eventos externos Desvantagens:
Poder demais para um usurio No funciona em mquinas multiprocessadoras (SMP) pois apenas a CPU que realiza a instruo afetada (violao da regra 4)

Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

CLI Seo crtica STI

;Desliga interrupes

;Ativa interrupes

Sistemas Operacionais

17

Sistemas Operacionais

18

Variveis do tipo lock


Criao de uma varivel especial compartilhada que armazena dois estados:
Zero: livre 1: ocupado

Alternncia
Desvantagem
Teste contnuo do valor da varivel compartilhada provoca o desperdcio do tempo do processador (busy waiting) Viola a regra 2 se a parte no crtica de um processo for muito maior que a do outro
Instituto de Informtica - UFRGS

Desvantagem:
Instituto de Informtica - UFRGS

Apresenta Race conditions


While (lock==1); lock=1; Seo crtica lock=0;

Oliveira, Carissimi, Toscani

Sistemas Operacionais

19

Oliveira, Carissimi, Toscani

while (TRUE) { while (turn!=0); critical_section(); turn=1; non_critical_section(); }

while (TRUE) { while (turn!=1); critical_section(); turn=0; non_critical_section(); }

Sistemas Operacionais

20

Implementao de mecanismos para excluso mtua


Algortmica:
Combinao de variveis do tipo lock e alternncia (Dekker 1965, Peterson 1981)

Mutex
Varivel compartilhada para controle de acesso a seo crtica CPU so projetadas levando-se em conta a possibilidade do uso de mltiplos processos Incluso de duas instrues assembly para leitura e escrita de posies de memria de forma atmica.
Instituto de Informtica - UFRGS

Primitivas:
Instituto de Informtica - UFRGS

Mutex Semforos Monitor


Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

CAS: Compare and Store ! Copia o valor de uma posio de memria para um registrador interno e escreve nela o valor 1 TSL: Test and Set Lock ! L o valor de uma posio de memria e coloca nela um valor no zero

Sistemas Operacionais

21

Sistemas Operacionais

22

Primitivas lock e unlock


O emprego de mutex necessita duas primitivas
enter_region: tst register,flag cmp register,0 jnz enter_region ret
Instituto de Informtica - UFRGS

Primitivas lock e unlock: problemas (1)


Busy waiting (spin lock) Confiar no processo (programador)
!

Fazer o lock e o unlock corretamente

Inverso de prioridades
Troca de processo lock(m)
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

leave_region:
Oliveira, Carissimi, Toscani

mov flag,0 ret

unlock(m)

lock(flag); Seo crtica unlock(flag);

lock(m) Bloqueado fazendo busy wait


Sistemas Operacionais

Outros processos

Sistemas Operacionais

23

24

Primitivas lock e unlock: problemas (2)


Soluo:
Bloquear o processo ao invs de executar busy waiting Baseado em duas novas primitivas ! sleep: Bloqueia um processo a espera de uma sinalizao ! wakeup: Sinaliza um processo
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Semforos
Mecanismo proposto por Dijkstra (1965) Duas primitivas:
P (Proberen, testar) V (Verhogen, incrementar)

Semforo um tipo abstrato de dados:


Um valor inteiro Fila de processo
Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Sistemas Operacionais

25

Sistemas Operacionais

26

Implementao de semforos
Primitivas P e V
P(s): s.valor = s.valor - 1 Se s.valor < 0 { Bloqueia processo (sleep); Insere processo em S.fila; }
Instituto de Informtica - UFRGS

Semforos versus mutex


Primitivas lock e unlock so necessariamente feitos por um mesmo processo
Acesso a seo crtica

V(s): s.valor = s.valor + 1 Se S.valor <=0 { Retira processo de S.fila; Acorda processo (wakeup); }
Instituto de Informtica - UFRGS

Primitivas P e V podem ser realizadas por processos diferentes


Gerncia de recursos

Necessidade de garantir a atomicidade nas operaes de incremento (decremento) e teste da varivel compartilhada s.valor
Uso de mutex
Oliveira, Carissimi, Toscani

Semforos binrios: s.valor = 1 Semforos contadores: s.valor = n

Sistemas Operacionais

27

Oliveira, Carissimi, Toscani

Dependendo dos valores assumidos por s.valor

Sistemas Operacionais

28

Troca de mensagens
Primitivas do tipo mutex e semforos so baseadas no compartilhamento de variveis
Necessidade do compartilhamento de memria Sistemas distribudos no existe memria comum

Primitivas send e receive (1)


Diferentes comportamentos em funo da semntica das primitivas send e receive Funcionamento bsico:
Processo A
Instituto de Informtica - UFRGS

Novo paradigma de programao


Instituto de Informtica - UFRGS

Processo B

Processo A

Processo B

Troca de mensagens

Primitivas
Oliveira, Carissimi, Toscani

send(dst, msg)
Oliveira, Carissimi, Toscani

recv(src, msg)

send e receive RPC (Remote Procedure Call)

Bloqueado

recv(src, msg)

Bloqueado

send(dst, msg)

Sistemas Operacionais

29

Sistemas Operacionais

30

Primitivas send e receive (2)


Bibliotecas de comunicao
e.g. sockets, MPI, PVM, etc.

Remote Procedure Call (1)

Grande variedade de funes



Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Oliveira, Carissimi, Toscani

Ponto a ponto Em grupo Primitivas para testar status e andamento de uma comunicao Diferentes semnticas ! Bloqueante ! No bloqueante ! Rendez vous

Base de comunicao do DCE Composto por :


ncleo executivo (run time) Interfaces para a gerao de aplicaes (Interface de programao)

Sistemas Operacionais

31

Sistemas Operacionais

32

Remote Procedure Call (2)


Cliente
return Call S

Deadlock
Servidor
Call S return

Situao na qual um, ou mais processos, fica impedido de prosseguir sua execuo devido ao fato de cada um estar aguardando acesso a recursos j alocados por outro processo
Stub (servidor)
Instituto de Informtica - UFRGS

Stub (cliente) Unpack


Instituto de Informtica - UFRGS

Pack

Unpack

Pack

Recv

wait

Send

Run time

Recv

Send

Oliveira, Carissimi, Toscani

Linguagem prpria para descrever funes (chamada/definio) Compilador (rpcgen) para gerar stubs e ligar com programa aplicativo comunicao toda gerada pelo run-time de forma transparente
Sistemas Operacionais 33

Oliveira, Carissimi, Toscani

Sistemas Operacionais

34

Condies para ocorrncia de deadlocks (1)


Para que ocorra um deadlock quatro condies devem ser satisfeitas simultneamente: 1. Excluso mtua:
Todo recurso ou est disponvel ou est atribudo a um nico processo
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Condies para ocorrncia de deadlocks (2)


3. Recurso no-preemptvel:
Um recurso concedido no pode ser retirado de um processo por outro

4. Espera circular:
existncia de um ciclo de 2 ou mais processos cada um esperando por um recurso j adquirido (em uso) pelo prximo processo no ciclo
em uso
Oliveira, Carissimi, Toscani

2. Segura/espera:
Oliveira, Carissimi, Toscani

Os processo que detem um recurso podem solicitar novos recursos

solicitao R2

R1 solicitao A

em uso

Sistemas Operacionais

35

Sistemas Operacionais

36

Estratgias para tratamento de deadlocks


Ignorar Deteo e recuperao
Monitorao dos recursos liberados e alocados Eliminao de processos

Leituras complementares
R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. Editora Sagra-Luzzato, 2001.
Captulo 3

Impedir ocorrncia cuidando na alocao de recursos


Instituto de Informtica - UFRGS

A. Silberchatz, P. Galvin, G. Gagne; Applied Operating System Concepts. Addison-Wesley, 2000, (1a edio).
Instituto de Informtica - UFRGS

Algoritmo do banqueiro

Captulo 6 e 7

Preveno (por construo)


Oliveira, Carissimi, Toscani

W. Stallings; Operating Systems. (4th edition). Prentice Hall, 2001.


Captulo 5 e 6
Oliveira, Carissimi, Toscani

Evitar a ocorrncia de pelo menos uma das quatro condies necessrias

Sistemas Operacionais

37

Sistemas Operacionais

38

Sumrio

Sistemas Operacionais
Gerncia do processador
Instituto de Informtica - UFRGS

Implementao do conceito de processos e threads Escalonamento


Escalonadores no -preemptivos

Escalonamento
Escalonamento preemptivos

2a edio Reviso: Fev/2003

Captulo 4

Oliveira, Carissimi, Toscani

Sistemas Operacionais

Introduo
Multiprogramao pressupe a existncia simultnea de vrios processos disputando o processador Necessidade de intermediar esta disputa de forma justa
Gerncia do processador ! Algoritmos de escalonamento
Instituto de Informtica - UFRGS

Representao de processo
Processo um programa em execuo
reas na memria para cdigo, dados e pilha

Possui uma srie de estados (apto, executando, bloqueado, etc) para representar sua evoluo no tempo, implica em:
Instituto de Informtica - UFRGS

Necessidade de representar um processo


Implementao de processos ! Estruturas de dados
Oliveira, Carissimi, Toscani

Organizar os processos nos diferentes estados Determinar eventos que realizam a transio entre os estados Determinar quando um processo tem direito a utilizar o processador

Necessrio manter informaes a respeito do processo


Oliveira, Carissimi, Toscani

e.g.: prioridades, localizao em memria, estado atual, direitos de acesso, recursos que emprega, etc.

Sistemas Operacionais

Sistemas Operacionais

Bloco descritor de processo


Abstrao de processo implementado atravs de uma estrutura de dados
Bloco descritor de processos (Process Control Block - PCB)

Os processos e as filas
Um processo sempre faz parte de alguma fila Geralmente a prpria estrutura de descritores de processos so empregadas como elementos dessas filas:
Instituto de Informtica - UFRGS

livres 0 Aptos 1 Executando 2 4 3 5 Bloqueado

Informaes normalmente presentes em um descritor de processo


Instituto de Informtica - UFRGS

Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Prioridade Localizao e tamanho na memria principal Identificao de arquivos abertos Informaes de contabilidade (tempo CPU, espao de memria, etc) Estado do processador (apto, executando, bloqueando, etc) Contexto de execuo Apontadores para encadeamento dos prprios descritores de processo etc
5

Fila de livres ! Nmero fixo (mximo) de processos ! Alocao dinmica Fila de aptos Fila de bloqueados

Eventos realizam transio de uma fila a outra

Sistemas Operacionais

Sistemas Operacionais

Exemplo de bloco descritor de processos (1)


Estrutura de dados representado bloco descritor de processo
struct desc_proc{ char estado_atual; int prioridade; unsigned inicio_memoria; unsigned tamanho_mem; struct arquivos arquivos_abertos[20]; unsigned tempo_cpu; unsigned proc_pc; unsigned proc_sp; unsigned proc_acc; unsigned proc_rx; struct desc_proc *proximo; } struct desc_proc tab_desc[MAX_PROCESS];

Exemplo de bloco descritor de processos (2)


Estruturas de filas e inicializao
struct struct struct struct
Instituto de Informtica - UFRGS

desc_proc desc_proc desc_proc desc_proc

*desc_livre; *espera_cpu; *usando_cpu; *bloqueados;

Instituto de Informtica - UFRGS

/* Inicializao das estruturas de controle */ for (i=0; i < MAX_PROCESS; i++) tab_desc[i].prox = &tab_desc[i+1];
Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

tab_desc[i].prox = NULL; desc_livre = &tab_desc[0]; espera_cpu= NULL; usando_cpu= NULL; bloqueado = NULL;
Sistemas Operacionais 8

Sistemas Operacionais

Tarefas tpicas no PCB durante o ciclo de vida


Criao
Alocao de reas de memria para cdigo, dados e pilha e de estruturas de dados do sistema operacional Inicializao do descritor de processo e insero em filas do sistema

O modelo de processo
Processo representado por:
Espao de endereamento: rea p/ armazenamento da imagem do processo Estruturas internos do sistema (tabelas internas, reas de memria, etc) ! Mantidos no descritor de processos Contexto de execuo (pilha, programa, dados, etc...)
Instituto de Informtica - UFRGS

Execuo
Instituto de Informtica - UFRGS

Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Realizam das instrues da rea de cdigo ! Interao com sistema operacional via chamadas de sistema Atualizao do bloco descritor de processo ! Retratar estados e recursos que evoluem dinamicamente com a execuo Suscetvel ao acionamento do escalonador/dispatcher em resposta a eventos

Processo

Espao de usurio Espao de sistema


Sistemas Operacionais

SP Pilha

PC Cdigo Dados

Trmino
Liberao de recursos e estruturas de dados utilizadas
Sistemas Operacionais 9

Dados

Pilha

10

Exemplo: modelo de processo Unix (linux)


rea dados (sisop)
Stack Pointer (SP)

Vrios processos
Um fluxo de controle por processo (thread) Troca de processo implica em atualizar estruturas de dados internas do sistema operacional
e.g.; contexto, espao de endereamento, etc...
Instituto de Informtica - UFRGS

0xFFFFFFFF

Pilha

Instituto de Informtica - UFRGS

4 Gbytes

Heap BSS Dados no inicializados Dados inicializados Cdigo 0x0000000

Processo 1

Processo n

Oliveira, Carissimi, Toscani

Program Counter (PC)

Oliveira, Carissimi, Toscani

Data Texto

Espao de usurio

SP

Pilha

PC Cdigo Dados

...

SP Pilha

PC

Cdigo

Dados

Espao de sistema

Dados

Pilha

Dados

Pilha

Sistemas Operacionais

11

Sistemas Operacionais

12

Vrios fluxos em um nico processo


Um fluxo de instruo implementado atravs do contador de programa (PC) e de uma pilha (SP) Estruturas comuns compartilhadas
Cdigo Dados Descritor de processo
SP1 SP2 Espao de usurio Espao de sistema SP3
Dados Pilha

Multiprogramao pesada
Custos de gerenciamento do modelo de processos
Criao do processo Troca de contextos Esquemas de proteo, memria virtual, etc

Processo 1

Instituto de Informtica - UFRGS

Conceito de thread
Oliveira, Carissimi, Toscani

PC1 PC3
Pilha

Instituto de Informtica - UFRGS

PC2 Cdigo Dados

Custos so fator Limitante na interao de processos


Unidade de manipulao o processo (arquivo) Mecanismos de IPC (Inter Process Communications) necessitam tratamento de estruturas complexas que representam o processo e sua propriedades
Oliveira, Carissimi, Toscani

Soluo
Aliviar os custos, ou seja, reduzir o peso das estruturas envolvidas

Sistemas Operacionais

13

Sistemas Operacionais

14

Multiprogramao leve
Fornecido pela abstrao de um fluxo de execuo (thread)
Basicamente o conceito de processo

Implementao de threads
Threads so implementadas atravs de estruturas de dados similares ao descritor de processo
Descritor de threads Menos complexa (leve)

Unidade de interao passa a ser funo Contexto de uma thread


Registradores (Pilha, apontador de programa, registradores de uso geral)
Instituto de Informtica - UFRGS

Podem ser implementadas em dois nveis diferentes:


Instituto de Informtica - UFRGS

Comunicao atravs do compartilhamento direto da rea de dados


Oliveira, Carissimi, Toscani

Espao de usurio Espao de sistema


Oliveira, Carissimi, Toscani

Sistemas Operacionais

15

Sistemas Operacionais

16

Modelos de processos single Threaded e multithreaded

Modelo N:1
Threads a nvel de usurio

Single-Threaded Process Control Block Instituto de Informtica - UFRGS User Address Space
Oliveira, Carissimi, Toscani

Multithreaded Thread Thread Thread Control Block Process Control Block User Address Space User Stack Kernel Stack Thread Control Block User Stack Kernel Stack

User level threads ou ainda process scope


Thread Thread Control Block User Stack Kernel Stack Instituto de Informtica - UFRGS

User Stack Kernel Stack

Todas as tarefas de gerenciamento de threads feito a nvel da aplicao


Threads so implementadas por uma biblioteca que ligada ao programa Interface de programao (API) para funes relacionadas com threads ! e.g; criao, sincronismo, trmino, etc
Oliveira, Carissimi, Toscani

O sistema operacional no enxerga a presena das threads A troca de contexto entre threads feita em modo usurio pelo escalonador embutido na biblioteca
No necessita privilgios especiais Escalonamento depende da implementao
Sistemas Operacionais 18

Sistemas Operacionais

17

Implementao modelo N:1

Vantagens e desvantagens
Vantagens:

PC1 PC2
Instituto de Informtica - UFRGS

SP1 SP2 SPn

Processo

SP
Pilha

PC Cdigo

Dados

Escalonador biblioteca CPU virtual


Instituto de Informtica - UFRGS

Sistema operacional divide o tempo do processador entre os processos pesados e, a biblioteca de threads divide o tempo do processo entre as threads Leve: sem interao/interveno do sistema operacional

Espao de usurio
Oliveira, Carissimi, Toscani

PCn

Desvantagens:
Uma thread que realiza uma chamada de sistema bloqueante leve ao bloqueio de todo o processo ! e.g.; operaoes de entrada/sada No explora paralelismo em mquinas multiprocessadoras

Biblioteca Dados Pilha

CPU

Sistemas Operacionais

19

Oliveira, Carissimi, Toscani

Espao de sistema

Escalonador sistema operacional

Sistemas Operacionais

20

Modelo 1:1
Threads a nvel do sistema
kernel level threads ou ainda system scope

Implementao modelo 1:1

Resolver desvantagens do modelo N:1 O sistema operacional enxerga as threads


Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

PC1 PC2 Espao de usurio


Oliveira, Carissimi, Toscani

SP1 SP2 SPn

Processo

PC Cdigo
Dados

SP
Pilha

Sistema operacional mantm informaes sobre processos e sobre threads Troca de contexto necessita a interveno do sistema operacional

PCn

CPU virtual

CPU virtual

CPU virtual

Oliveira, Carissimi, Toscani

O conceito de threads considerado na implementao do sistema operacional

Espao de sistema

Dados

Pilha

Escalonador sistema operacional CPU

Sistemas Operacionais

21

Sistemas Operacionais

22

Vantagens e desvantagens
Vantagens:
Explora o paralelismo de mquinas multiprocessadoras (SMP) Facilita o recobrimento de operaes de entrada/sada por clculos

Modelo M:N
Abordagem que combina os modelos N:1 e 1:1 Oferece dois nveis de escalonamento
Nvel usurio: threads sobre unidade de escalonamento Nvel sistema: unidades de escalonamento sobre processador

Desvantagens:
Implementao mais pesada que o modelo N:1
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Dificuldade parametrizar M e N

Oliveira, Carissimi, Toscani

Sistemas Operacionais

23

Oliveira, Carissimi, Toscani

Sistemas Operacionais

24

Implementao modelo M:N

Porque utilizar threads ?


Permitir a explorao do paralelismo real oferecido por mquinas multiprocessadores (modelo M:N ou 1:1) Aumentar nmero de atividades executadas por unidade de tempo (throughput) Diminuir tempo de resposta
Instituto de Informtica - UFRGS

PC1 PC2
Instituto de Informtica - UFRGS

SP1 SP2 SPn

Processo

SP
Pilha

PC Cdigo

Dados

Escalonador biblioteca CPU virtual CPU virtual

Espao de usurio
Oliveira, Carissimi, Toscani

PCn

Possibilidade de associar threads a dispositivos de entrada/sada

biblioteca Dados Pilha

Escalonador sistema operacional CPU

Oliveira, Carissimi, Toscani

Espao de sistema

Sobrepor operaes de clculo com operaes de entrada e sada

Sistemas Operacionais

25

Sistemas Operacionais

26

Vantagens de multithreading
Tempo de criao/destruio de threads inferior que tempo de criao/destruio de um processo Chaveamento de contexto entre threads mais rpido que tempo de chaveamento entre processos Como threads compartilham o descritor do processo que as porta, elas dividem o mesmo espao de endereamento o que permite a comunicao por memria compartilhada sem interao com o ncleo
Oliveira, Carissimi, Toscani

Leituras complementares
R. Oliveira, A. Carissimi, S. Toscani Sistemas Operacionais Editora Sagra-Luzzato, 2001.
Captulo 4.

A. Silberchatz, P. Galvin; Operating System Concepts. (4th edition). Addison-Wesley, 1994.


Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Captulo 4

Sistemas Operacionais

27

Oliveira, Carissimi, Toscani

Sistemas Operacionais

28

Sumrio
Implementao do conceito de processos e threads Escalonamento
Escalonadores no -preemptivos

Escalonamento
O escalonador a entidade do sistema operacional responsvel por selecionar um processo apto para executar no processador O objetivo dividir o tempo do processador de forma justa entre os processos aptos a executar Tpico de sistemas multiprogramados: batch, time-sharing, multiprogramado ou tempo real
Requisitos e restries diferentes em relao a utilizao da CPU
Oliveira, Carissimi, Toscani

Escalonamento
Escalonamento preemptivos
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Oliveira, Carissimi, Toscani

Duas partes:
Escalonador: poltica de seleo Dispatcher: efetua a troca de contexto

Sistemas Operacionais

29

Sistemas Operacionais

30

Objetivos do escalonamento
Maximizar a utilizao do processador Maximizar a produo do sistema (throughput)
Nmero de processos executados por unidade de tempo

Situaes tpicas para execuo do escalonador


Dependem se o escalonador preemptivo ou no, se considera prioridades ou no, etc...
Sempre que a CPU estiver livre e houver processos aptos a executar Criao e trmino de processos Um processo de mais alta prioridade ficar apto a executar Interrupo de tempo ! Processo executou por um perodo de tempo mximo permitido Interrupo de dispositivos de entrada e sada Interrupo por falta de pgina (segmento) em memria ! Endereo acessado no est carregado na memria (memria virtual) Interrupo por erros

Minimizar o tempo de execuo (turnaround)


Tempo total para executar um determinado processo
Instituto de Informtica - UFRGS

Minimizar o tempo de espera


Tempo que um processo permance na lista de aptos
Oliveira, Carissimi, Toscani

Tempo decorrido entre uma requisio e a sua realizao

Sistemas Operacionais

31

Oliveira, Carissimi, Toscani

Minimizar o tempo de resposta

Instituto de Informtica - UFRGS

Sistemas Operacionais

32

Eventos de transio de estados

Chaveamento de contexto (dispatcher)


Processo 0 Salva estado PCB0 Processo 1 Apto

Criao
Instituto de Informtica - UFRGS

Admisso

Interrupo por tempo ou voluntria

Trmino

Destruio
Instituto de Informtica - UFRGS

Restaura estado PCB1 Apto Salva estado PCB1


Oliveira, Carissimi, Toscani

Apto Seleo
Oliveira, Carissimi, Toscani

Executando Sincronizao ou requisio de E/S

Ocorrncia de evento (interrupo)

Bloqueado

Restaura estado PCB0

Apto

PCB: Process Control Block


Sistemas Operacionais 34

Sistemas Operacionais

33

Nveis de escalonamento
Longo prazo Mdio prazo Curto prazo

Escalonador longo prazo


Executado quando um novo processo criado Determina quando um processo novo passa a ser considerado no sistema, isto , quando aps sua criao ele passa a ser apto
Controle de admisso

Controla o grau de multiprogramao do sistema


Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Quanto maior o nmero de processos ativos, menor a porcentagem de tempo de uso do processador por processo
Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Sistemas Operacionais

35

Sistemas Operacionais

36

Escalonador mdio prazo


Associado a gerncia de memria
Participa do mecanismo de swapping

Escalonador de curto prazo


Mais importante Determina qual processo apto dever utilizar o processador Executado sempre que ocorre eventos importantes:

Oliveira, Carissimi, Toscani

Suporte adicional a multiprogramao


Grau de multiprogramao efetiva (diferencia aptos dos aptos-suspensos)
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Interrupo de relgio Interrupo de entrada/sada Chamadas de sistemas Sinais (interrupo software)

Oliveira, Carissimi, Toscani

Sistemas Operacionais

37

Sistemas Operacionais

38

Diagrama de escalonamento
Escalonador de longo prazo Processos Fila de aptos Interrupo de tempo Escalonador curto prazo Trmino CPU

Tipos de escalonador
Um vez escalonado, o processo utiliza o processador at que:
No preemptivo: ! Trmino de execuo do processo ! Execuo de uma requisio de entrada/sada ou sincronizao ! Liberao voluntria do processador a outro processo (yield) Preemptivo: ! Trmino de execuo do processo ! Execuo de uma requisio de entrada/sada ou sincronizao ! Liberao voluntria do processador a outro processo (yield) ! Interrupo de relgio ! Processo de mais alta prioridade esteja pronto para executar

Instituto de Informtica - UFRGS

Filas de suspensos (bloqueado)


Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS


39

Usurios interativos

Escalonador de mdio prazo Fila de suspensos (apto)

Evento

Fila de bloqueados

Espera por evento

Oliveira, Carissimi, Toscani

Sistemas Operacionais

Sistemas Operacionais

40

Algoritmos de escalonamento (1)


Algoritmo de escalonamento seleciona qual processo deve executar em um determinado instante de tempo Existem vrios algoritmos para atingir os objetivos do escalonamento Os algoritmos buscam:
Instituto de Informtica - UFRGS

Algoritmos de escalonamento (2)


Algoritmos no preemptivos (cooperativos)
First-In First-Out (FIFO) ou First-Come First-Served (FCFS) Shortest Job First (SJF) ou Shortest Process Next (SPN)

Algoritmos preemptivos
Instituto de Informtica - UFRGS

Obter bons tempos mdios invs de maximizar ou minimizar um determinado critrio Privilegiar a varincia em relao a tempos mdios
Oliveira, Carissimi, Toscani

Round robin (circular) Baseado em prioridades

Existem outros algoritmos de escalonamento


Oliveira, Carissimi, Toscani

High Response Ratio Next (HRRN) Shortest Remaining Time (SRT) etc...

Sistemas Operacionais

41

Sistemas Operacionais

42

FIFO - First In First Out (1)


First-Come, First-Served (FCFS) Simples de implementar
Fila

FIFO - First In First Out (2)


Desvantagem:
Prejudica processos I/O bound

Tempo mdio de espera na fila de execuo:


Ordem A-B-C-D = (0 + 12 + 20 + 35 ) / 4 = 16.75 u.t. Ordem D-A-B-C = (0 + 5 + 17 + 25 ) / 4 = 11.7 u.t.
Instituto de Informtica - UFRGS

Funcionamento:
Instituto de Informtica - UFRGS

Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Processos que se tornam aptos so inseridos no final da fila Processo que est no incio da fila o prximo a executar Processo executa at que: ! Libere explicitamente o processador ! Realize uma chamada de sistema (bloqueado) ! Termine sua execuo

Processo A B C D

Tempo 12 8 15 5

A B C D 0 12 20 35 40

Sistemas Operacionais

43

Sistemas Operacionais

44

SJF - Shortest Job First (1)


Originrio do fato que o menor tempo de mdio obtido quando se executa primeiro os processos de menor ciclo de processador (I/O bound)
A
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

SJF - Shortest Job First (2)


Algoritmo timo, isto , fornece o menor tempo mdio de espera para um conjunto de processos Processos I/O bound so favorecidos Dificuldade determinar o tempo do prximo ciclo de CPU de cada processo, porm:
Pode ser empregado em processos batch (long term scheduler) Prever o futuro com base no passado
Oliveira, Carissimi, Toscani

Processo A B C D
Oliveira, Carissimi, Toscani

Tempo 12 8 15 5

B C D 0 5 13 25 40

Tempo mdio: (0 + 5 + 13 + 25)/4 = 10.75 u.t

Sistemas Operacionais

45

Sistemas Operacionais

46

Prevendo o futuro... (1)


Pode ser feito utilizando os tempos de ciclos j passados e realizando uma mdia exponencial
1. t n = tempo do ensimo ciclo de CPU 2. n +1 = valor previsto para o prximo ciclo de CPU 3. = armazena a informao dos ciclos passados (n - 1)
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Prevendo o futuro... (2)


No considera o ltimo ciclo de processador, s o passado ( =0)
n+1 = n

Considera apenas o ltimo ciclo de processador ( = 1)


n+1 = tn

4. , 0 1 5. Define - se :
Oliveira, Carissimi, Toscani

Tipicamente se emprega =0.5


Tem o efeito de considerar o mesmo peso para a histria atual e a histria passada
Oliveira, Carissimi, Toscani

n +1 = t n + (1 ) n .

Fator tem o efeito de considerar, de forma ponderada, os ciclos anteriores de processador

n+1 = tn+(1 - ) tn -1 + ... +(1 - ) j tn-j + +(1 - ) n+1 0

Sistemas Operacionais

47

Sistemas Operacionais

48

Exemplo de previso do futuro


Ciclo de cpu: Real: 6 4 6 4 13 13 13 Previsto: 10 8 6 6 5 9 11 12 14 12
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Leituras complementares
Parmetros: =0.5 0=10

R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. Editora Sagra-Luzzato, 2001.


Captulo 4

10 8 6
Oliveira, Carissimi, Toscani

A. Silberchatz, P. Galvin; Operating System Concepts. (4th edition). Addison-Wesley, 1994.


Captulo 4, 5 e 6
Real Previsto

4 2 0 0
Sistemas Operacionais

7
49

Oliveira, Carissimi, Toscani

Sistemas Operacionais

50

Sumrio
Implementao do conceito de processos e threads Escalonamento
Escalonadores no -preemptivos

Tipos de escalonador (lembrando...)


Um vez escalonado, o processo utiliza o processador at que:
No preemptivo: ! Trmino de execuo do processo ! Execuo de uma requisio de entrada/sada ou sincronizao ! Liberao voluntria do processador a outro processo (yield) Preemptivo: ! Trmino de execuo do processo ! Execuo de uma requisio de entrada/sada ou sincronizao ! Liberao voluntria do processador a outro processo (yield) ! Interrupo de relgio ! Processo de mais alta prioridade esteja pronto para executar

Escalonamento
Escalonamento preemptivos
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS
51

Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Sistemas Operacionais

Sistemas Operacionais

52

Eventos de transio de estados

Escalonadores preemptivos
Por interrupo de tempo
Round robin (circular)

Criao
Instituto de Informtica - UFRGS

Admisso

Interrupo por tempo Trmino ou prioridade Executando Seleo

Por prioridades
Destruio
Instituto de Informtica - UFRGS

Apto Ocorrncia de evento (interrupo)

Oliveira, Carissimi, Toscani

Bloqueado

Oliveira, Carissimi, Toscani

Sincronizao ou requisio de E/S

Sistemas Operacionais

53

Sistemas Operacionais

54

RR - Round Robin (1)


Similar ao algoritmo FIFO, s que:
Cada processo recebe um tempo limite mximo (time-slice, quantum) para executar um ciclo de processador

RR - Round Robin (2)


Por ser preemptivo, um processo perde o processador quando:

Instituto de Informtica - UFRGS

Fila de processos aptos uma fila circular Necessidade de um relgio para delimitar as fatias de tempo
Instituto de Informtica - UFRGS

Libera explicitamente o processador (yield) Realize uma chamada de sistema (bloqueado) Termina sua execuo Quando sua fatia de tempo esgotada

Interrupo de tempo
A B C D 0 3 6 9 12 15 18 23 28 34 40

Se quantum obtm-se o comportamento de um escalonador FIFO


Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Sistemas Operacionais

55

Sistemas Operacionais

56

Problemas com o Round Robin


Problema 1: Dimensionamento do quantum
Compromisso entre overhead e tempo de resposta em funo do nmero de usurios (1/k na presena de k usurios) Compromisso entre tempo de chaveamento e tempo do ciclo de processador (quantum)
Instituto de Informtica - UFRGS

Escalonamento com prioridades


Sempre que um processo de maior prioridade que o processo atualmente em execuo entrar no estado apto deve ocorrer uma preempo
A existncia de prioridades pressupem a preempo possvel haver prioridade no-preemptiva
Instituto de Informtica - UFRGS

Problema 2: Processos I/O bound so prejudicados


Esperam da mesma forma que processos CPU bound porm muito provavelmente no utilizam todo o seu quantum Soluo: ! Prioridades: Associar prioridades mais altas aos processos I/O bound para compensar o tempo gasto no estado de espera (apto)

Escalonador deve sempre selecionar o processo de mais alta prioridade segundo uma poltica:
Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Round-Robin FIFO (FCFS) SJF (SPN)

Sistemas Operacionais

57

Sistemas Operacionais

58

Implementao de escalonador com prioridades


Mltiplas filas associadas ao estado apto Cada fila uma prioridade
Pode ter sua prpria poltica de escalonamento (FIFO, SJF, RR)
Fila apto 0
Instituto de Informtica - UFRGS

Exemplo: pthreads
A poltica de escalonamento FIFO com prioridade considera:
Quando um processo em execuo preemptado ele inserido no nicio de sua fila de prioridade Quando um processo bloqueado passa a apto ele inserido no final da fila de sua prioridade Quando um processo troca de prioridade ele inserido no final da fila de sua nova prioridade Quando um processo em execuo passa a vez para um outro processo ele inserido no final da fila de sua prioridade
Oliveira, Carissimi, Toscani

Dispatch

Trmino CPU
Instituto de Informtica - UFRGS
59

Prioridade 0 Fila apto 1 Prioridade 1


Oliveira, Carissimi, Toscani

Fila apto n

Prioridade n Preempo Fila de bloqueados Evento


Sistemas Operacionais

Espera por evento

Sistemas Operacionais

60

Como definir a prioridade de um processo?


Prioridade esttica:
Um processo criado com uma determinada prioridade e esta prioridade mantida durante todo o tempo de vida do processo

Problemas com prioridades


Um processo de baixa prioridade pode no ser executado
Postergao indefinida (starvation)

Prioridade dinmica:
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Processo com prioridade esttica pode ficar mal classificado e ser penalizado ou favorecido em relao aos demais
Tpico de processos que durante sua execuo trocam de padro de comportamento (CPU bound a I/O bound e vice-versa)

Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Prioridade do processo ajustada de acordo com o estado de execuo do processo e/ou do sistema ! e.g; ajustar a prioridade em funo da frao do quantum que foi realmente utilizada pelo processo: q = 100 ms Processo A utilizou 2ms ! nova prioridade = 1/0.02 = 50 Processo B utilizou 50ms ! nova prioridade = 1/0.5 = 2

Soluo:
Mltiplas filas com realimentao

Sistemas Operacionais

61

Sistemas Operacionais

62

Mltiplas filas com realimentao


Baseado em prioridades dinmicas Em funo do tempo de uso da CPU a prioridade do processo aumenta e diminui Sistema de envelhecimento (agging) evita postergao indefinida
Instituto de Informtica - UFRGS

Estudo de caso: escalonamento UNIX (1)


Mltiplas filas com realimentao empregando round robin em cada uma das filas Prioridades so re-avaliadas uma vez por segundo em funo de:

Oliveira, Carissimi, Toscani

Fila apto 0

Dispatch

Trmino CPU

Fila apto n
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Fila apto 1

Prioridade atual Prioridade do usurio Tempo recente de uso da CPU Fator nice

Possibilidade de trocar de fila


Evento

Preempo Fila de bloqueados Espera por evento

Prioridades so divididas em faixas de acordo com o tipo do usurio A troca dinmica das prioridades respeita os limites da faixa

Sistemas Operacionais

63

Sistemas Operacionais

64

Escalonamento UNIX (1)


Prioridades recebem valores entre 0 e 127 (menor o valor nmerico, maior a prioridade)
0-49: processos do kernel 50-127: processo de usurio

Escalonamento UNIX (2)


Clculo de prioridade de processos de usurio:
Fator nice: valor variando entre 0 (mais prioritrio) a 39 (menos prioritrio), sendo 20 o valor default Uso recente do processador (p_cpu )
Instituto de Informtica - UFRGS

Ordem decrescente de prioridades


Instituto de Informtica - UFRGS

Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Swapper Controle de dispositivos de entrada e sada orientados a bloco Manipulao de arquivos Controle de dispositivos de entrada e sada orientados a caractere Processos de usurio

decay =

(2 load _ average + 1)
p _ cpu decay + 2 p _ nice 4

2 load _ average

p _ usrpri = PUSER +

Onde: ! load_average o nmero mdio de processos aptos no ltimo segundo ! PUSER valor de base de prioridade para usurios (50)
Sistemas Operacionais 66

Sistemas Operacionais

65

Estudo de caso: escalonamento Linux


Duas classes em funo do tipo de processos (threads)
Processos interativos e batch Processos de tempo real

Escalonamento linux (tempo real)


Linux implementa dois tipos de prioridade
Esttica: exclusivamente processos de tempo real Dinmica: processos interativos e batch

Polticas de escalonamento do linux (padro POSIX)


Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

SCHED_FIFO: FIFO com prioridade esttica ! Vlido apenas para processos de tempo real SCHED_RR: Round-robin com prioridade esttica ! Vlido apenas para processos de tempo real SCHED_OTHER: Filas multinvel com prioridades dinmicas (time-sharing) ! Processos interativos e batch

Prioridade definida pelo usurio e no modificada pelo escalonador


Somente usurios com privilgios especiais

Seleciona sempre processos de mais prioridade para executar


Executa segundo a poltica selecionada: SCHED_FIFO ou SCHED_RR

Processo em tempo real tem preferncia (prioridade) sobre processos interativos e batch

Sistemas Operacionais

67

Sistemas Operacionais

68

Escalonamento linux (timesharing)


Baseado no uso de crditos e prioridade Sistema de crditos:

Oliveira, Carissimi, Toscani

Estudo de caso: escalonamento windows 2000


Unidade de escalonamento a thread Escalonador preemptivo com prioridades Prioridades organizadas em duas classes:
Tempo real: prioridade esttica (nveis 16-31) Varivel: prioridade dinmica (nveis 0-15)
Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Cada processo executa um certo nmero de crditos O processo com maior crdito o selecionado Cada interrupo de tempo o processo em execuo perde um crdito Processo que atinge zero crditos suspenso (escalonador mdio prazo) Se no estado apto no existir processos com crditos realizado uma redistribuio de crditos para todos os processos (qualquer estado)
Crditos = Crditos + prioridade 2

Cada classe possui 16 nveis de prioridades


Oliveira, Carissimi, Toscani

Cada nvel implementado por uma fila em uma poltica round-robin ! Mltiplas filas: classe de tempo real ! Mltiplas filas com realimentao: classe de tempo varivel Threads da classe tempo real tem precedncia sobre as da classe varivel

Sistemas Operacionais

69

Sistemas Operacionais

70

Escalonamento windows 2000 (classe varivel)


Dois parmetros definem a prioridade de uma thread:
Valor de prioridade de base do processo Prioridade inicial que indica sua prioridade relativa dentro do processo

Escalonamento no preemptivo com prioridades


SJF um forma de priorizar processos
A prioridade o inverso do prximo tempo previsto para ciclo de CPU

Prioridade da thread varia de acordo com uso do processador


Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Preemptada por esgotar o quantum: prioridade reduzida Preemptada por operao de E/S: prioridade aumentada Nunca assume valor inferior a sua prioridade de base, nem superior a 15

Processos de igual prioridade so executados de acordo com uma poltica FIFO Problema de postergao indefinida (starvation)
Processo de baixa prioridade no alocado a CPU por sempre existir um processo de mais alta prioridade a ser executado Soluo: ! Envelhecimento

Fator adicional em mquina multiprocessadoras: afinidade!


Oliveira, Carissimi, Toscani

Tentativa de escalonar uma thread no processador que ela executou mais recentemente. ! Princpio: reaproveitamento de dados na memria cache

Oliveira, Carissimi, Toscani

O conceito de prioridade mais consistente com preempo


Processo de maior prioridade interrompe a execuo de um menos prioritrio

Sistemas Operacionais

71

Sistemas Operacionais

72

Leituras complementares
R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. Editora Sagra-Luzzato, 2001.
Captulo 4, Captulo 9 (seo 9.4), Captulo 10 (seo10.4)

A. Silberchatz, P. Galvin; Operating System Concepts. (4th edition) Addison-Wesley, 1994.


Instituto de Informtica - UFRGS

Captulo 5

A. Silberchatz, P. Galvin, G. Gane; Applied Operating System Concepts. (1st edition). Addison-Wesley, 2000.
Oliveira, Carissimi, Toscani

Captulo 4, 5 e 6

W. Stallings; Operating Systems. (4th edition). Prentice Hall, 2001.


Captulo 9

Sistemas Operacionais

73

Sumrio

Sistemas Operacionais
Entrada e sada
Instituto de Informtica - UFRGS

Princpios bsicos de hardware


Arquitetura de computadores

Gerncia de entrada e sada


Software de entrada e sada

Disco magntico

2a edio Reviso: Fev/2003

Captulo 5

Oliveira, Carissimi, Toscani

Sistemas Operacionais

Princpios bsicos de hardware


Perifrico um dispositivo conectado a um computador de forma a possibilitar sua interao com o mundo externo Os perifricos so conectados ao computador atravs de um componente de hardware denominado de interface As interfaces so interconectadas aos barramentos internos de um computador
Elemento chave na coordenao da transferncias de dados
Oliveira, Carissimi, Toscani

Arquitetura de entrada e sada


Dispositivo de entrada e sada possui um parte mecnica e outra eletrnica
Disco Vdeo

CPU
Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Oliveira, Carissimi, Toscani

Interfaces se utilizam de um processador dedicado a realizao e controle das operaes de entrada e sada
Controladoras

Barramento

Memria

rede

Sistemas Operacionais

Sistemas Operacionais

Dispositivos de entrada e sada (1)


Classificados como:
Orientado a caractere ! Unidade de transferncia o caractere
!

Dispositivos de entrada e sada (2)


Dispositivos de entrada e sada podem ser classificados de acordo com o tipo de entidade que interagem
Com usurio ! e.g.; vdeo, teclado, mouse, impressora, etc Com dispositivos eletrnicos ! e.g; discos, fitas, atuadores, controladores, etc Com dispositivos remotos ! e.g.; modem, interfaces de rede
Oliveira, Carissimi, Toscani

e.g.; teclado, interface serial

Instituto de Informtica - UFRGS

e.g.; disco, fitas DAT

Oliveira, Carissimi, Toscani

Esquema de classificao no perfeito pois alguns dispositivos no se enquadram nestas situaes


e.g.; relgio, memria de vdeo mapeada em espao de E/S

Instituto de Informtica - UFRGS

Orientado a bloco ! Unidade de transferncia de dados um bloco de caracteres (fixo)

Sistemas Operacionais

Sistemas Operacionais

Dispositivos de entrada e sada (3)


Apresentam caractersticas prprias
Taxa de transferncia de dados Complexidade de controle Unidade de transferncia ! Caractere, bloco ou stream Representao de dados ! Esquemas de codificao Tratamento de erros ! Depende do tipo de dispositivo

Tipos de conexo e transferncia de dados


Em funo da interconexo fsica das interfaces com os perifricos podem ser classificadas em dois tipos:
Interface serial Interface paralela

Interface serial
Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Apenas uma linha para transferncia de dados (bit bit)

Interface paralela
Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Mais de uma linha para transferncia de dados ! e.g.; n x 8 bits

Sistemas Operacionais

Sistemas Operacionais

Como controladoras e sistema operacional interagem?


Controladora programada via registradores de configurao
Recebem ordens do processador Fornecem estados de operao Leitura e escrita de dados do perifrico

Mapeamento em espao de memria e em espao de entrada e sada


Espao de endereamento:
Conjunto de endereos de memria que o processador consegue enderear Definido no projeto de processador ! Pode haver um nico espao de endereamento ! Pode haver um espao de endereamento dedicado a entrada e sada
Instituto de Informtica - UFRGS

Registradores so "vistos" como posies de memria


Instituto de Informtica - UFRGS

E/S mapeada em espao de E/S E/S mapeada em espao de memria


Oliveira, Carissimi, Toscani

Instrues especficas para acessar um ou outro espao de endereamento


e.g. mov, in, out
Oliveira, Carissimi, Toscani

Sistemas Operacionais

Sistemas Operacionais

10

Mapeamento em espao de memria


Um nico espao de endereamento No projeto do computador se reserva uma parte de sua rea de endereamento para acesso a perifricos (controladoras) Instrues de acesso a memria do tipo mov end, dado podem tanto referenciar uma posio real de memria como um registrador associado a um perifrico de entrada/sada Exemplo:
Oliveira, Carissimi, Toscani

Mapeamento em espao de entrada e sada


O processador possui duas reas distintas de endereamento
Espao de memria: acessado via instrues de acesso de memria (mov) Espao de E/S: acessado via instrues de acesso especfica (in, out)

Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

No projeto de um computador (sistema) usando tal processador possvel de utilizar os dois tipos de mapeamento para acesso a perifricos de entrada e sada Exemplo:
Processadores da familia Intel
Oliveira, Carissimi, Toscani

Processadores da familia Motorola

Sistemas Operacionais

11

Sistemas Operacionais

12

Exemplo de acesso a dispositivos


Controladora de impresso onde um registrador fornece o status da impresso ( end. 315H) e outro corresponde ao envio do caracter a ser impresso (end. 312H).
Mapeado em memria
Instituto de Informtica - UFRGS

Tcnicas para realizao de E/S


E/S programada E/S orientada a interrupes (interrupt driven) Acesso direto a memria

Mapeado em entrada e sada


Instituto de Informtica - UFRGS

Le_status:
Oliveira, Carissimi, Toscani

mov

AL, 315H

Le_status:

in

AL, 315H

Print_char:

mov AL, 65H mov 312H, AL

Print_char:

mov AL, 65H out 312H, AL

Oliveira, Carissimi, Toscani

Sistemas Operacionais

13

Sistemas Operacionais

14

E/S programada (1)


Toda interao entre o processador e o controlador de responsabilidade exclusiva do programador Ciclo de funcionamento:
Envio de comando a controladora Espera pela realizao do comando
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Desvantagem E/S programada


Desperdcio do tempo do processador para verificar continuamente o estado de uma operao de entrada e sada
Diferena de velocidade entre dispositivo de entrada e sada e processador

Soluo inserir operaes entre sucessivas consultas sobre o estado de uma operao de entrada e sada
Polling

Oliveira, Carissimi, Toscani

Sistemas Operacionais

15

Oliveira, Carissimi, Toscani

Mdulo (controladora) de entrada/sada atualiza bits de estado da operao Processador espera o trmino da operao (busy waiting)

Problema determinar a freqncia para a realizao do polling

Sistemas Operacionais

16

E/S orientada a interrupo (interrupt driven)


Mtodo utilizado para evitar o desperdcio de tempo do mtodo de polling Processador interrompido quando o mdulo de E/S est pronto Enquanto a interrupo no ocorre o processador est liberado para executar outras tarefas Processador responsvel por iniciar uma operao de entrada e sada Interrupo solicita ateno do processador para executar uma rotina especfica ao final da operao de entrada e sada
Tratador de interrupo

Desvantagem E/S orientada a interrupo


Processador atua como um intermedirio na transferncia, pois cada palavra lida (escrita) passa pelo processador

Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Sistemas Operacionais

17

Sistemas Operacionais

18

Acesso direto a memria


DMA (Direct Memory Access) Transfere diretamente um bloco de dados entre a memria e o mdulo de E/S O mecanismo de interrupo utilizado para sinalizar final de tarefa Processador envolvido com a tarefa de E/S apenas no comeo e no final da transferncia
Oliveira, Carissimi, Toscani

Evoluo de arquiteturas de entrada e sada


Processador diretamente controla o perifrico Controlador ou mdulo de E/S adicionado
Processador emprega E/S programada sem interrupes Processador no necessita tratar detalhes dos dispositivos de E/S
Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Oliveira, Carissimi, Toscani

Controlador ou mdulo de E/S porm baseado em interrupes Transferncia de dados em DMA Mdulo de E/S possui um processador separado Processador de E/S
computador dedicado ao processamento de E/S Transferncia de dados feita, por exemplo, via rede

Sistemas Operacionais

19

Sistemas Operacionais

20

Leituras complementares
R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. Editora Sagra-Luzzato, 2001.
Captulo 5, seo 5.1

Sumrio
Princpios bsicos de hardware
Arquitetura de computadores

A. Silberchatz, P. Galvin; Operating System Concepts. 4a edio. Addison-Wesley.


Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Gerncia de entrada e sada


Software de entrada e sada

Captulo 2

Disco magntico

Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Sistemas Operacionais

21

Sistemas Operacionais

22

O problema da gerncia de entrada e sada


Entrada e sada extremamente lenta se comparada com a velocidade de processamento e de acesso a memria principal Multiprogramao possibilita que processos executem enquanto outros esperam por operaes de entrada e sada Procedimento de swapping entrada e sada Eficincia no tratamento de entrada e sada importante
Oliveira, Carissimi, Toscani

Objetivos da gerncia de entrada e sada


Eficincia Generacidade importante
Desejvel que dispositivos sejam tratados da forma mais uniforme possvel

Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Sistemas Operacionais

23

Oliveira, Carissimi, Toscani

Esconder os detalhes do servio de entrada esada em camadas de mais baixo nvel Fornecer ao alto nvel abstraes genricas como read, write, open e close Envolve aspectos de hardware e de software

Sistemas Operacionais

24

Princpios bsicos de software de entrada e sada


Subsistema de entrada e sada software bastante complexo devido a diversidade de perifricos Objetivo padronizar as rotinas de acesso aos perifricos de E/S de forma a reduzir o nmero de rotinas
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Estrutura em camadas do subsistema de E/S

E/S nvel de usurio Software Sistema operacional

Permite incluso de novos dispositivos sem alterar viso do usurio (interface de utilizao)

E/S independente do dispositivo Interface padro para drivers de dispositivos (API) driver SCSI driver EIDE driver floppy driver rede driver teclado

Para atingir esse objetivo o subsistema de E/S organizado em camadas


Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Hardware

Sistemas Operacionais

25

Sistemas Operacionais

26

Organizao lgica do software de E/S (1)


Segue uma filosofia modular (trs mdulos base)
Dispositivo lgico de E/S ! Trata dispositivo como recurso lgico sem se preocupar com detalhes de controle ! Oferece uma interface de programao ao processo usurio Dispositivo fsico de E/S ! aceita solicitaes abstratas e converte para um tratamento especfico ! Bufferizao Escalonamento e controle ! Tratamento de interrupes e de status

Viso geral do software de E/S


Tratador de interrupo
aciona driver ao final da operao de transferncia

Driver de dispositivo
Configurao controladora e status Recebimento de requisies
Instituto de Informtica - UFRGS

4 3 2 1

E/S a nvel de usurio E/S independente Driver de dispositivo Tratador de Interrupo

Instituto de Informtica - UFRGS

E/S independente do dispositivo


Nomeao e proteo Bufferizao
Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

E/S a nvel de usurio


Chamadas de E/S Formatao de E/S

Organizao no nica
Depende do tipo do dispositivo e de sua aplicao
Sistemas Operacionais 27

Sistemas Operacionais

28

Device driver
Conjunto de estruturas de dados e funes que controlam um ou mais dispositivos interagindo com o ncleo via uma interface bem definida Fornecido pelo fabricante do perifrico Vantagens:
Instituto de Informtica - UFRGS

Funcionamento bsico
Ncleo aciona driver para:

Instituto de Informtica - UFRGS

Configurar dispositivo Realizar acessos de leitura e escrita Controlar e obter informaes de status Tratamento de interrupes

Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Isolar cdigo especfico a um dispositivo em um mdulo a parte Facilidade de adicionar novos drivers Fabricantes no necessitam mexer no ncleo Ncleo tem uma viso uniforme de todos os dispositivos atravs de uma mesma interface

Driver aciona ncleo para:


Efetuar gerenciamento de buffers Escalonamento

Sistemas Operacionais

29

Sistemas Operacionais

30

Subsistema de E/S
Poro do ncleo que controla a parte independente e interage com o driver de dispositivo para manipular/tratar a parte dependente Responsvel por:

Oliveira, Carissimi, Toscani

Exemplo: subsistema de E/S do UNIX


Corresponde a viso lgica do dispositivo Atribuio uniforme do nome independente do dispositivo O UNIX um exemplo clssico:
Nome do dispositivo um string Discos (dispositivos) fazem parte do sistema de arquivos
Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Distribuio uniforme dos nomes (nomeao, espao de nomes) Proteo Fornecer uma interface aos processos usurios (aplicativos) Gerenciamento e desempenho do sistema de E/S

Major number crw- - - - - - crw- - - - - - crw- - - - - - crw- - - - - - ttyS3 1 1 1 1 root root root root tty tty tty tty 4,64 may 4,65 may 4,66 may 4,66 may 5 2000 /dev/tty0 5 2000 /dev/tty1 5 2000 /dev/tty2 5 2000 /dev/tty3

Oliveira, Carissimi, Toscani

/dev

ttyS0

ttyS1

ttyS2

Minor number
32

Sistemas Operacionais

31

Sistemas Operacionais

Funcionalidades bsicas do subsistema de E/S


Escalonamento de E/S
Determinar a melhor ordem para o atendimento de requisies de E/S Dividir de forma justa o acesso a perifricos

E/S nvel de usurio


Disponibiliza a processos usurio (aplicao) operaes de E/S atravs de bibliotecas ou chamadas de sistema

Bufferizao
rea de armazenamento temporrio de dados
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Cache
Permitir o acesso rpido aos dados
Oliveira, Carissimi, Toscani

Controlar acesso a dispositivos que atendem apenas uma requisio por vez

Reserva de dispositivos
Controlar acesso exclusivo a dispositivos (alocao, desalocao, deadlock)
Sistemas Operacionais 33

Oliveira, Carissimi, Toscani

Spooling

Sistemas Operacionais

34

Interface de programao
Bloqueante
Processo suspenso at a concluso da operao ! Fcil programao e compreenso

Bloqueante
O controle retorna a camada de aplicao somente aps a concluso da operao de entrada e sada
Camada de Aplicao
Instituto de Informtica - UFRGS

No bloqueante
Instituto de Informtica - UFRGS

Retorna imediatamente com os dados disponveis no momento ! Baseado em buffer

Assncrona
Oliveira, Carissimi, Toscani

Espao de usurio

Pk

Pk espera (busy waiting/bloqueado) Driver do dispositivo

Oliveira, Carissimi, Toscani

Processo continua sua execuo enquanto a E/S realizada ! Dificil programao ! Necessrio determinar o trmino da operao (signal versus polling)

Espao de sistema

Tratador de interrupes Transferncia de dados

Sistemas Operacionais

35

Sistemas Operacionais

36

No bloqueante
O controle retorna a camada de aplicao com os dados disponveis no momento
Camada de Aplicao
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Assncrona
O controle retorna a camada de aplicao sem que a operao de entrada e sada tenha sido concluda
Programao (agendamento) de uma operao de E/S
Camada de Aplicao Espao de usurio Pk Execuo Pk

Espao de usurio

Pk

Execuo Pk

Driver do dispositivo
Oliveira, Carissimi, Toscani

Driver do dispositivo
Oliveira, Carissimi, Toscani

Espao de sistema

Tratador de interrupes Transferncia de dados

Espao de sistema

Tratador de interrupes Transferncia de dados

Sistemas Operacionais

37

Sistemas Operacionais

38

Leituras complementares
R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. Editora Sagra-Luzzato, 2001.
Captulo 5, seo 5.2

Sumrio
Princpios bsicos de hardware
Arquitetura de computadores

A. Silberchatz, P. Galvin; Operating System Concepts. 4a edio. Addison-Wesley.


Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Gerncia de entrada e sada


Software de entrada e sada

Captulo 2

Disco magntico

Oliveira, Carissimi, Toscani

Sistemas Operacionais

39

Oliveira, Carissimi, Toscani

Sistemas Operacionais

40

Dispositivos perifricos tpicos


Dispositivos de E/S so fundamentais para que um sistema seja utilizvel Existe uma grande gama de dispositivos de E/S
Impossvel de analisar todos Princpio de funcionamento tem uma base comum
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Disco magntico
Um disco de plstico, ou metal, recoberto de material magntico
Pratos (platters)

Dados so gravados e, posteriormente, recuperados atravs de um "mola" condutora (cabeote de leitura e gravao)
Escrita: o cabeote submetido a uma tenso que gera um campo magntico o qual magnetiza o disco com diferentes padres de polaridades Leitura: a variao do campo magntico gerado pela rotao do disco induz uma corrente no cabeote de leitura
Oliveira, Carissimi, Toscani

Perifrico mais importante o disco por desempenhar um papel fundamental em diversos aspectos do sistema operacional
Oliveira, Carissimi, Toscani

Armazenamento de dados Suporte a implementao de memria virtual Aspectos relacionados com tolerncia a falhas e segurana de dados (RAID)

Sistemas Operacionais

41

Sistemas Operacionais

42

Organizao e formatao (1)


Disco organizado em uma seqncia de circulos concntricos
Trilhas Largura da trilha corresponde a largura do cabeote de leitura/escrita

Organizao e formatao (2)

Trilhas so separadas por gaps


Evitar problemas de alinhamentos
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Duas tecnologias definem o nmero de bits por trilhas


O nmero de bits por trilha constante ! Trilhas mais internas possuem uma densidade maior bits/polegada ! Discos com tecnologia CAV (Constant Angular Velocity) O nmero de bits por trilha depende se ela mais interna ou mais externa ! Discos com tecnologia CLV (Constant Linear Velocity)
!

Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

W. Stallings. Operating Systems (4th Ed.), Prentice Hall, 2001.

e.g.; CDROM
43

Sistemas Operacionais

Sistemas Operacionais

44

Organizao e formatao (3)


Transferncia de dados para o disco feito em blocos
Tipicamente, bloco menor que a capacidade de uma trilha

Organizao e formatao (4)

Trilha subdividida em unidades de tamanho fixo (setores) Setor:


Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Inf. de controle

Armazenamento de informaes Informaes de controle ! e.g.; incio e final do setor, ECC (Error Correcting Code)
Oliveira, Carissimi, Toscani

Zona de dados

Feita na fbrica

Oliveira, Carissimi, Toscani

A definio de trilhas e setores feita pela formatao fsica

ECC

W. Stallings. Operating Systems (4th Ed.), Prentice Hall, 2001. Sistemas Operacionais 46

Sistemas Operacionais

45

Caractersticas fsicas (1)


Cabeote de leitura/escrita so montados sobre um brao
Fixo: um cabeote por trilha Mvel: cabeote se desloca sobre as trilhas

Caractersticas fsicas (2)


Mltiplos pratos (disk pack)
Vrios pratos empilhados e centrados Cada prato um cabeote de leitura/escrita (brao mvel) Cilindro: conjunto de trilhas de mesmo nmero em pratos diferentes

Removvel versus no removvel


Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Meio magntico (pratos) so montados fisicamente no brao ou no ! e.g.; disquete

Mecanismo do cabeote leitura/escrita


Contato fsico entre a superfcie magntica e o cabeote (floppy) Distncia fixa (air gap) da superfcie magntica Distncia fixa (air gap) da superfcie magntica quando o disco entra em rotao (disco rgido)

Densidade dupla versus densidade simples


Filme magntico posto, ou no, nas duas superficies do prato
Oliveira, Carissimi, Toscani

Sistemas Operacionais

47

Oliveira, Carissimi, Toscani

Sistemas Operacionais

48

Caractersticas fsicas (3)


Cabeote R/W (1 por superfcie) Prato

Exemplo de especificaes de disco


Disco 4.1 Gigabytes
Cilindro Imaginrio


Instituto de Informtica - UFRGS

255 cabeas 63 setores de 512 bytes 525 cilindros Capacidade: 255 x 63 x 512 x 525

Instituto de Informtica - UFRGS

Superfcie
Setor

Trilha

Sexagsimo quarto setor mantm um mapa de setores na trilha Tecnologia atual permite at 8 pratos com 16 cabeotes
Diferena no nmero de cabeotes lgico
Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Brao mecnico

Sistemas Operacionais

49

Sistemas Operacionais

50

Acesso a dados
Menor unidade de transferncia um bloco lgico
Composto por um ou mais setores fsicos

Desempenho do disco
Para ler/escrever dados necessrio que o cabeote de leitura e escrita esteja posicionada na trilha e no nicio do setor desejados Trs tempos envolvidos:
Tempo de posicionamento (seek time) ! Tempo necessrio para posicionar o cabeote de leitura/escrita na trilha desejada Tempo de latncia rotacional ! Tempo necessrio para atingir o incio do setor a ser lido/escrito Tempo de transferncia ! Tempo para escrita/leitura efetiva dos dados

Acessar dado implica em localizar trilha, superfcie e setor Dois mtodos:


Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS
51

Mtodo CHS (Cylinder, Head, Sector) Mtodo LBA (Linear Block Addressage) ! Traduo do L-CHS (Logical) para P-CHS (Physical)
Oliveira, Carissimi, Toscani

Converso de um bloco lgico para sua localizao fsica ! No um mapeamento direto por haver setores fisicamente defeituosos e pelo nmero de setores por trilha no ser constante ! Cilindros que possuem mesmo nmero de setores (zonas)
Sistemas Operacionais

Oliveira, Carissimi, Toscani

Discos modernos endeream blocos lgicos sequencialmente

Sistemas Operacionais

52

Temporizao de acesso ao disco


Transfer time Trilha

Tempo de posicionamento (seek)


Possui duas componentes:
Seek time

Setor

Tempo de acionamento e acelerao do brao do cabeote Tempo de deslocamento at a trilha desejada

No linear em funo do nmero do trilhas


Cabeote leitura /escrita

Tempo de identificao da trilha (confirmao)


Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Latency time

Tempo mdio de seek


Dado fornecido pelo fabricante ! e.g.; 5 a 10 ms (tecnologia ano 2000)
Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

t acesso = t seek + tlatncia + ttrasnf .

Sistemas Operacionais

53

Sistemas Operacionais

54

Tempo de latncia rotacional


Definido pela velocidade de rotao do motor
e.g. (ano 2000): ! discos rgidos (5400 rpm a 10000 rpm) ! unidades de floppy (300 rpm a 600 rpm)

Tempo de transferncia
Tempo de transferncia de dados de/para disco depende da velocidade de rotao
T= b rN

Considera-se o tempo mdio


Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

No se sabe a posio relativa do cabeote com a do setor a ser lido Metade do tempo de uma rotao ! e.g.; 3 ms para um disco de 10000 rpm ( 6 ms uma rotao )
Oliveira, Carissimi, Toscani

T = tempo de transferncia b = nmero de bytes a serem transferidos N = nmero de bytes em uma trilha r = velocidade de rotao, nro de rotaes por segundo
Oliveira, Carissimi, Toscani

Tempo mdio de acesso dado por:


Tacesso = t seek _ mdio + b 1 + 2r rN
56

Sistemas Operacionais

55

Sistemas Operacionais

Exemplo
Acessar um arquivo de dados de 1.3 Mbytes armazenado em disco com as seguintes caractersticas:
Tseek_mdio = 10 ms, 10000 rpms, 512 bytes por setor, 320 setores por trilha Caso I: Acesso seqncial (2560 setores = 8 trilhas x 320 setores) Tacesso = 10 ms + 8 x (3 + 6) ms = 0.082 s
(Obs: supondo trilhas vizinhas, despreza-se o tempo de seek)
Oliveira, Carissimi, Toscani

Entrelaamento (interleaving)
Forma de aumentar o desempenho no acesso ao disco Objetivo evitar a latncia rotacional em setores adjacentes Tcnica consiste em numerar os setores no mais de forma contgua mas sim com um espao entre eles
Instituto de Informtica - UFRGS
Disco 1 Fator de entrelaamento = 0 15 14
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Disco 2 Fator de entrelaamento = 2 5 0 11 6 1 12 7 3 8 13 2 10

0 1 2 3 4 4 9 14 15

Caso II: Acesso randmico (leitura na base um setor por vez) Tacesso = 2560 x (10 ms + 3 ms + 0.01875 ms) = 33.328 s

13 12 11 10 9 8 7 6

Sistemas Operacionais

57

Sistemas Operacionais

58

Escalonamento do disco (1)


Tratar E/S em disco de forma eficiente se traduz em obter um tempo de acesso rpido e explorar ao mximo a largura de banda do disco
Se traduz em minimizar o tempo de posicionamento (seek)

Escalonamento do disco (2)


Algoritmos para reduzir o tempo de seek
Algoritmos de escalonamento do disco ! Forma de organizar o atendimento a requisies
!

Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Largura de banda do disco definida como sendo o nmero total de bytes transferidos, divididos pelo tempo decorrido entre o primeiro acesso e a concluso da transferncia.

FCFS, SSTF, SCAN, C-SCAN, etc

Exemplo para anlise


Disco organizado em 200 trilhas (0-199) Posio inicial do cabeote: trilha 53 Atender a seguinte fila de requisies: 98, 183, 37, 122, 14, 124, 65, 67

Oliveira, Carissimi, Toscani

Sistemas Operacionais

59

Oliveira, Carissimi, Toscani

Sistemas Operacionais

60

FCFS - First Come First Served (1)


Acessa na ordem em que as requisies so solicitadas Para anlise em questo obtem-se um deslocamento equivalente a 640 trilhas

SSTF - Shortest Seek Time First (1)


Seleciona a requisio com o menor tempo de seek em relao a posio atual do cabeote de leitura/escrita Anlogo ao escalonamento SJF (Shortest Job First)
Pode provocar postergao de uma requisio

Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Oliveira, Carissimi, Toscani

Sistemas Operacionais

Silberchatz, Galvin, Gagne. Applied Operating System Concepts (1st Ed.) John Wiley & Sons, 2000.

Oliveira, Carissimi, Toscani

61

Sistemas Operacionais

62

SSTF - Shortest Seek Time First (2)


Deslocamento equivalente a 236 trilhas

SCAN (1)
O movimento do cabeote inicia em uma extremidade do disco e se movimenta em direo a outra extremidade
Executa as requisies na ordem desta varredura Ao chegar no outro extremo, inverte o sentido e repete o procedimento

Conhecido como algoritmo do elevador


Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS
63

Oliveira, Carissimi, Toscani

Sistemas Operacionais

Silberchatz, Galvin, Gagne. Applied Operating System Concepts (1st Ed.) John Wiley & Sons, 2000.

Oliveira, Carissimi, Toscani

Sistemas Operacionais

64

SCAN (2)
Deslocamento equivalente a 208 trilhas

C-SCAN (1)
Variao do algoritmo de SCAN Procedimento idntico ao do algoritmo SCAN porm as requisies so atendidas apenas em um sentido da varredura
Ao final da varredura o cabeote reposiconado no incio do disco

Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Fornece uma viso lgica onde o disco tratado como uma fila circular
Oferece um tempo mdio de acesso mais uniforme que o algoritmo SCAN
Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Sistemas Operacionais

Silberchatz, Galvin, Gagne. Applied Operating System Concepts (1st Ed.) John Wiley & Sons, 2000.

65

Sistemas Operacionais

66

C-SCAN (2)

C-LOOK
Verso do C-SCAN O cabeote de leitura/escrita no necessita atingir o extremo do disco para voltar ao incio do disco

Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS


67

Oliveira, Carissimi, Toscani

Silberchatz, Galvin, Gagne. Applied Operating System Concepts (1st Ed.) John Wiley & Sons, 2000.

Oliveira, Carissimi, Toscani

Sistemas Operacionais

Sistemas Operacionais

68

Outras variaes de SCAN


N-step-SCAN
Divide a fila de requisies em um certo nmero de filas de tamanho N Cada fila atendida separadamente utilizando SCAN Novas requisies so inseridas em filas diferentes da que est sendo atendida no momento da chegada destas requisies
Instituto de Informtica - UFRGS

Qual algoritmo de escalonamento melhor?


SSTF o mtodo comumente empregado SCAN e C-SCAN apresentam um melhor desempenho em discos que possuem um grande nmero de acesso Fatores importantes
Instituto de Informtica - UFRGS

FSCAN
Baseada em duas filas Um fila recebe todas as novas requisies enquanto a outra empregada para atender as requisies j feitas

Quantidade e tipo de requisies Organizao de arquivos e diretrios no disco (sistema de arquivos)

Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

O algoritmo de escalonamento deve ser escrito como um mdulo separado do sistema operacional para permitir sua substituio de forma fcil

Sistemas Operacionais

69

Sistemas Operacionais

70

RAID: Redundant Array of Inexpensive Disks


Conjunto de discos rigdos visto pelo sistema operacional como um nico disco lgico Dados so distribudos entre os diferentes discos fsicos
Permite o acesso paralelo a dados aumentando o desempenho
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

RAID nvel 0
Dados so distribudos nos diferentes discos do array
Requisies a blocos de dados armazenados em discos distintos podem ser efetuados em paralelo

O disco lgico dividido em unidade de distribuio (strips)


Strip pode ser blocos fsicos, setores, etc... Strip so mapeados de forma round-robin em n discos (stripes) Tcnica conhecida como stripping
Oliveira, Carissimi, Toscani

Possibilita o armazenamento de informaes de paridade para permitir a recuperao de dados em caso de problemas no disco
Aumento de possibilidade de falhas j que existem mais dispositivos envolvidos
Oliveira, Carissimi, Toscani

Diferentes nveis

W. Stallings. Operating Systems (4th Ed.), Prentice Hall, 2001. Sistemas Operacionais 72

Sistemas Operacionais

71

RAID nvel 1
Objetivo de RAID fornecer uma redudncia de dados para fornecer um certo grau de tolerncia a falhas RAID 1 a redundncia obtida atravs da replicao dos dados
Strips so armazenados em 2 conjuntos distintos de discos fsicos Denominado de espelhamento (mirroring)
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

RAID nvel 1: vantagens e desvantagens


Vantagens:
Leitura de um dado pode ser feito privilegiando-se o disco que oferece o menor tempo de seek e atraso rotacional Recuperao em caso de erro simples ! Acessa dados do disco no danificado

Desvantagem:
Custo: necessita o dobro do espao do disco lgico em discos fsicos
Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Sistemas Operacionais

73

Sistemas Operacionais

74

RAID nvel 2
O conjunto de discos sincronizado, isto , todos os cabeotes esto posicionados no mesmo ponto (trilha e setor) Todos discos so acessados na realizao de uma requisio E/S A unidade de stripping byte ou palavra Executa o clculo de cdigo de correo de erros considerando um certo nmero de bits e armazena o resultado em discos separados
Oliveira, Carissimi, Toscani

RAID nvel 2
O nmero de discos redundantes proporcional ao logaritmo da quantidade de dados armazenados no disco Requisio de E/S
Leitura: cdigo de correo calculado para os dados lidos e comparado com o cdigo de correo lido Escrita: clculo e gravao do cdigo de correo

Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS


75

W. Stallings. Operating Systems (4th Ed.), Prentice Hall, 2001. Sistemas Operacionais

Oliveira, Carissimi, Toscani

Sistemas Operacionais

76

RAID nvel 3
Similar ao RAID 2 Diferena que existe apenas um disco de redundncia independente do nmero de discos para armazenamento de dados Clculo de um cdigo de deteco de erro (paridade)
Possvel reconstruir dados de um disco falho a partir desta informao
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

RAID nvel 3: reconstruo de dados


Exemplo:
Array composto por 5 discos fsicos, onde discos 0 a 3 servem ao armazenamento de dados e o disco 4 a paridade (redundncia) Paridade para o bit i de cada disco calculado da seguinte forma:

x 4(i ) = x3(i ) x 2(i ) x1(i ) x0(i )


Em caso de erro do disco 1, se pode reconstruir seus dados (bit a bit) realizando o seguinte clculo:

Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

x1(i ) = x 4(i ) x3(i ) x 2(i ) x0(i )

W. Stallings. Operating Systems (4th Ed.), Prentice Hall, 2001. Sistemas Operacionais 77

Sistemas Operacionais

78

RAID nvel 4
Diferena em relao aos nveis 2 e 3 que os discos so independentes podendo ento satisfazer requisies em paralelo Redundncia obtida calculado-se a paridade bit a bit de cada strip e armazenando o resultado em disco de paridade
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

RAID nvel 5
Organizao similar ao RAID 4 A informao de paridade distribuda em todos os discos do array de forma round-robin

Oliveira, Carissimi, Toscani

W. Stallings. Operating Systems (4th Ed.), Prentice Hall, 2001. Sistemas Operacionais 79

Oliveira, Carissimi, Toscani

W. Stallings. Operating Systems (4th Ed.), Prentice Hall, 2001. Sistemas Operacionais 80

RAID nvel 6
Introduz um segundo clculo de paridade para o mesmo conjunto de dados:
Paridade calculada utilizando o esquema de OU exclusivo de RAID 4 e 5 Algoritmo adicional de verificao de dados
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

RAID nvel 10
Combinao dos nveis RAID 0 e RAID 1 O dados so divididos em strips (RAID 0) e aps os discos de armazenamento de dados so espelhados (RAID 1)

Vantagem sobre demais esquemas de RAID que dois discos podem falhar simultneamente

Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

W. Stallings. Operating Systems (4th Ed.), Prentice Hall, 2001.

W. Stallings. Operating Systems (4th Ed.), Prentice Hall, 2001. Sistemas Operacionais 81

Sistemas Operacionais

82

Software de RAID
Configuraes de RAID podem ser implementadas em hardware (firmware) ou em software RAID em hardware:
Diferentes discos fsicos so organizados de forma a compor um disco lgico Organizao configurada e gerenciada pelo controlador de disco Controlador realiza a gerao das informaes de redundncia (firmware)

Leituras complementares
R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. Editora Sagra-Luzzato, 2001.
Captulo 5, seo 5.3

A. Silberchatz, P. Galvin, G. Gagne; Applied Operating System Concepts. Addison-Wesley, 2000.


Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Captulo 12 e 13

RAID em software:
Oliveira, Carissimi, Toscani

W. Stallings; Operating Systems. (4th edition). Prentice Hall, 2001.


Captulo 11
Oliveira, Carissimi, Toscani

Diferentes parties (discos lgicos) compem um nico disco RAID feito pelo driver de disco (software) Normalmente implementa RAID nvel 1 e RAID nvel 5

Sistemas Operacionais

83

Sistemas Operacionais

84

Introduo

Sistemas Operacionais
Gerncia de memria
Instituto de Informtica - UFRGS

Multiprogramao implica em manter-se vrios processos em memria Memria necessita ser alocada de forma eficiente para permitir o mximo possvel de processos Existem diferentes tcnicas para gerncia de memria
Dependem do hardware do processador

2a edio Reviso: Fev/2003

Captulo 6

Oliveira, Carissimi, Toscani

Sistemas Operacionais

Consideraes gerais
Um sistema de memria possui pelo menos dois nveis:
Memria principal: acessada pela CPU Memria secundria: discos

Memria lgica e memria fsica


Memria lgica
aquela que o processo enxerga Endereos lgicos so aqueles manipulados por um processo

Programas so armazenados em disco

Instituto de Informtica - UFRGS

Memria fsica
Instituto de Informtica - UFRGS

Executar um programa se traduz em transferi-lo da memria secundria memria primria

Qualquer sistema operacional tem gerncia de memria


Oliveira, Carissimi, Toscani

Implementada pelos circuitos integrados de memria Endereos fsicos so aqueles que correspondem a uma posio real de memria
Oliveira, Carissimi, Toscani

Monotarefa: gerncia simples Multitarefa: complexa

Algoritmos de gerncia de memria dependem de facilidades disponveis pelo hardware da mquina


Sistemas Operacionais 3

Sistemas Operacionais

Endereo lgico versus endereo fsico


Espao lgico de um processo diferente do espao fsico
Endereo lgico: gerado pela CPU (endereo virtual) Endereo fsico: endereos enviados para a memria RAM

Unidade de gerncia de memria


Memory Management Unit (MMU) Hardware que faz o mapeamento entre endereo lgico e endereo fsico
Memria CPU
Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Programas de usurios vem apenas endereos lgicos Endereos lgicos so transformados em endereos fsicos no momento de execuo dos processos

End. lgico

MMU

End. fsico

Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Complexidade varivel de acordo com a funcionalidade oferecida


Mecanismos de suporte para proteo, carga de programas, traduo de endereos lgicos a endereos fsicos, etc...

Sistemas Operacionais

Sistemas Operacionais

Exemplos de MMU
Registrador Limite Inferior Registrador Limite Superior

Execuo de programas
Um programa deve ser transformado em um processo para pode ser executado
123
Memria

100

799

123
Processador

<

no

>

no

sim Interrupo (Endereo Ilegal)

sim Interrupo (Endereo Ilegal)

Alocao de um descritor de processos Alocao de reas de memria para cdigo, dados e pilha
Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Transformao feita atravs de uma srie de passos, alguns com a ajuda do prprio programador
Compilao, diretivas de compilao e/ou montagem, ligao, etc...

Registrador de Limite

Registrador de Base

200
Oliveira, Carissimi, Toscani

500

Amarrao de endereos (binding)


Oliveira, Carissimi, Toscani

123
Processador

623

>
sim

no

Memria

Interrupo (Endereo Ilegal)

Sistemas Operacionais

Sistemas Operacionais

Amarrao de endereos (binding)


Atribuio de endereos (posies de memria) para cdigo e dados pode ser feita em trs momentos diferentes:
Em tempo de compilao Em tempo de carga
Instituto de Informtica - UFRGS

Transformao de programa em processo


...

Diferenciao entre o endereo lgico e o endereo fsico


Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Em tempo de execuo Como traduzir endereo lgico em endereo fsico Cdigo absoluto e cdigo relocvel

Compilador Programa objeto Fase de compilao

Ligador executvel Biblioteca esttica Fase de ligao

Carregador RAM

Oliveira, Carissimi, Toscani

Fase de carga

Sistemas Operacionais

Sistemas Operacionais

10

Carregador absoluto versus carregador relocador


Programador no tem conhecimento onde o programa ser carregado na memria Endereo s conhecido no momento da carga
Durante execuo do programa sua localizao fsica pode ser alterada ! e.g.; procedimento de swapping
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Cdigo relocvel
Carregador relocador
Correo de todas as referncias a memria de forma a corresponder ao endereo de carga do programa

Necessidade de identificar quais endereos devem ser corrigidos


Cdigo relocvel Mapeamento das posies a serem corrigidas mantida atravs de tabelas

Necessidade de traduzir endereos lgicos endereos fsicos Relocao a tcnica que fornece realiza essa traduo
Oliveira, Carissimi, Toscani

Sistemas Operacionais

11

Oliveira, Carissimi, Toscani

Via software: carregador relocador Via hardware: carregador absoluto

Cdigo executvel mantm informaes de relocao na forma de tabelas


No momento da carga o programa executvel interpretado e os endereos corrigidos

Sistemas Operacionais

12

Cdigo absoluto
Carregador absoluto
No realiza correo de endereos no momento da carga do programa em memria

Mecanismos bsicos de gerncia de memria


Um programa (processo) para ser executado deve estar na memria
Onde deve ser carregado? ! Problema de alocao de memria

Instituto de Informtica - UFRGS

Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Fixo pelo programa (programador) Qualquer ! Correo pode ser feita automticamente, de forma transparente, a partir de registradores de base

Instituto de Informtica - UFRGS

Cdigo executvel absoluto no necessita manter tabelas de endereos a serem corrigidos Endereo de carga

A alocao de memria depende de:


Cdigo absoluto versus cdigo relocvel Necessidade de espao contguo ou no

Necessidade de gerenciamento da memria


Determinao de reas livres e ocupadas Racionalizar a ocupao da memria

Sistemas Operacionais

13

Sistemas Operacionais

14

Mecanismos para alocao de memria


Simples Contgua Alocao No contgua
Instituto de Informtica - UFRGS

Alocao contgua simples


Sistema mais simples Memria principal dividida em duas parties:
Sistema operacional (parte baixa da memria) Processo do usurio (restante da memria)
Instituto de Informtica - UFRGS

Particionada

Esttica Dinmica

Paginao Segmentao Segmentao com paginao

Usurio tem controle total da memria podendo inclusive acessar a rea do sistema operacional
e.g. DOS (no confivel)
Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Evoluo:
Inserir proteo atravs de mecanismos de hardware + software ! Registradores de base e de limite ! Memory Management Unit (MMU)

At estudarmos memria virtual supor que para um programa ser executada ele necessita estar carregado completamente em memria
Sistemas Operacionais 15

Sistemas Operacionais

16

Alocao contgua particionada (1)


Existncia de mltiplas parties Imposta pela multiprogramao Filosofia:
Dividir a memria em blocos (parties) Cada partio pode receber um processo (programa) Grau de multiprogramao fornecido pelo nmero de parties ! Importante: no considerando a existncia de swapping
Oliveira, Carissimi, Toscani

Alocao contgua particionada (2)


O sistema operacional responsvel pelo controle das parties mantendo informaes como:
Parties alocadas Parties livres Tamanho das parties
Instituto de Informtica - UFRGS OS processo 5
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

OS processo 5

OS processo 5 processo 9

OS processo 5 processo 9 processo 3

Duas formas bsicas:


Alocao contgua com parties fixa (esttica) Alocao contgua com parties variveis (dinmica)

processo 8 processo 2 processo 2 processo 2

processo 2

Sistemas Operacionais

17

Sistemas Operacionais

18

Alocao contgua particionada fixa


Memria disponvel dividida em parties de tamanho fixo que podem ser do mesmo tamanho ou no Questes:
Processos podem ser carregados em qualquer partio? ! Depende se cdigo absoluto ou relocvel Nmero de processos que podem estar em execuo ao mesmo tempo ! Sem swapping igual ao nmero de parties (mximo) ! Com swapping maior que nmero de parties Programa maior que o tamanho da partio ! No executa a menos que se empregue um esquema de overlay

Gerenciamento de parties fixas


Com cdigo absoluto
Um processo s pode ser carregado na rea de memria (partio) para a qual foi compilado Pode haver disputa por uma partio mesmo tendo outras livres ! Processo mantido no escalonador de longo prazo (termo) ! Empregar swapping
Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Com cdigo relocvel


Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Um processo de tamanho menor ou igual ao tamanho da partio pode ser carregado em qualquer partio disponvel Se todas as parties esto ocupadas, duas solues: ! Processo mantido no escalonador de longo prazo (termo) ! Empregar swapping (escalonamento a mdio prazo)

Sistemas Operacionais

19

Sistemas Operacionais

20

Fragmentao Interna
Problema da alocao fixa uso ineficiente da memria principal Um processo, no importando quo pequeno seja, ocupa uma partio inteira
Fragmentao interna
Sist. Operacional Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Paliativo para reduzir fragmentao interna


Parties de tamanho diferentes
Sist. Operacional 8M 2M 4M 6M 8M

8M

Fragmentao interna
Oliveira, Carissimi, Toscani

8M

Oliveira, Carissimi, Toscani

8M

5M 8M 8M
Sistemas Operacionais 21

12 M

Sistemas Operacionais

22

Algoritmos para alocao de parties fixas(1)


Se cdigo absoluto a alocao determinada na fase de montagem, compilao ou ligao Se cdigo relocvel:
Parties de igual tamanho ! No importa qual partio utilizada Parties de diferentes tamanhos ! Atribui o processo a menor partio livre capaz de armazen-lo ! Processo so atribudos a parties de forma a minimizar o desperdcio de memria (fragmentao interna)

Algoritmos para alocao de parties fixas(2)


Uma fila por partio

Sisop

Uma fila para todas parties

Sisop

Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Novos Processos
Oliveira, Carissimi, Toscani

Novos Processos

Oliveira, Carissimi, Toscani

Sistemas Operacionais

23

Sistemas Operacionais

24

Alocao particionada dinmica


Objetivo eliminar a fragmentao interna Processos alocam memria de acordo com suas necessidades Parties so em nmero e tamanho variveis
SisOp Processo 1
Oliveira, Carissimi, Toscani

Fragmentao externa
A execuo de processos pode criar pedaos livres de memria
Pode haver memria disponvel, mas no contgua ! Fragmentao externa

Instituto de Informtica - UFRGS

320 K 224 K

Processo 1

320 K 224 K

Processo 1 Processo 4

320 K 128 K 96 K 288 K 64 K


25

Instituto de Informtica - UFRGS

SisOp

Sisop

Exemplo: Criao processo 120K


Oliveira, Carissimi, Toscani

SisOp Processo 1 Processo 4 Processo 3 320 K 128 K 96 K 288 K 64 K

Processo 2 Processo 3

288 K 64 K

Processo 3

288 K 64 K

Processo 3

Sistemas Operacionais

Sistemas Operacionais

26

Solues possveis fragmentao externa


Reunir espaos adjacentes de memria Empregar compactao
Relocar as parties de forma a eliminar os espaos entre elas e criando uma rea contgua Desvantagem: ! Consumo do processador ! Acesso a disco
Oliveira, Carissimi, Toscani

Gerenciamento de parties dinmicas


Determinar qual rea de memria livre ser alocada a um processo Sistema operacional mantm uma lista de lacunas
Pedaos de espaos livres em memria

Necessidade de percorrer a lista de lacunas sempre que um processo criado


Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Como percorrer essa lista??

Sistemas Operacionais

27

Oliveira, Carissimi, Toscani

Acionado somente quando ocorre fragmentao Necessidade de cdigo relocvel

Sistemas Operacionais

28

Algoritmos para alocao contgua dinmica


Best fit
Minimizar tam_processo - tam_bloco Deixar espaos livres os menores possveis

Exemplos: Algoritmos alocao contgua dinmica

20k A 40k
Instituto de Informtica - UFRGS

20k A 40k C C 30k SisOp SisOp Best-fit

20k A 40k C 30k SisOp Worst-fit

20k A 40k C 30k SisOp First-Fit

Worst fit
Instituto de Informtica - UFRGS

Maximizar tam_processo - tam_bloco Deixar espaos livres os maiores possveis

First fit
tam_bloco > tam_processo
Oliveira, Carissimi, Toscani

30k
Oliveira, Carissimi, Toscani

Circular fit
Variao do first-fit

Sistemas Operacionais

29

Sistemas Operacionais

30

Desvantagem de parties variveis


Tende a criar lacunas de memria livres que individualmente podem no ser suficientes para acomodar um processo
Pode haver memria livre, mas no contgua ! Fragmentao externa
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Solues possveis para fragmentao externa


Reunir espaos adjacentes de memria Empregar compactao
Relocar as parties de forma a eliminar os espaos entre elas e criando uma rea contgua Desvantagem: ! Consumo do processador ! Acesso a disco
Oliveira, Carissimi, Toscani

Exemplo:
Criao processo 120k
Oliveira, Carissimi, Toscani

SisOp Processo 1 Processo 4 Processo 3 320 K 128 K 96 K 288 K 64 K

Acionado somente quando ocorre fragmentao Necessidade de cdigo relocvel

Sistemas Operacionais

31

Sistemas Operacionais

32

Swapping (1)
Processo necessita estar na memria para ser executado
Se no h mais espao em memria necessrio fazer um rodizio de processos em memria
Memria Swap out
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Swapping (2)
Tempo do swap proporcional ao tamanho do processo
Possui influncia na troca de contexto ! Poltica de swapping ! Escalonador de mdio prazo (termo)

Ateno!!! Processos que realizam E/S


P1

Swap in P2
Oliveira, Carissimi, Toscani

Nunca realizar swap em processos que esto com E/S pendente Utilizar buffers de E/S internos ao sistema ! Evitar que o E/S seja transferido a endereos de memria invlidos
Oliveira, Carissimi, Toscani

Memria secundria suficientemente grande para armazenar cpias de todos os processos de usurios backing store
Sistemas Operacionais 33

Existem variantes do sistema de swapping utilizados em sistemas como UNIX ou Microsoft Windows

Sistemas Operacionais

34

Leituras complementares
R. Oliveira, A. Carissimi, S. Toscani Sistemas Operacionais Editora Sagra-Luzzato, 2001.
Captulo 6, sees 6.2 e 6.3

Introduo
Problemas com alocao particionada
Necessidade de uma rea contgua de memria (tamanho do processo) Fragmentao interna (parties fixas) ou externa (parties variveis)

A. Silberchatz, P. Galvin Operating System Concepts AddisonWesley. 4th edition.


Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Nova abordagem considerar a existncia de um espao de endereamento lgico e de um espao de endereamento fsico
O espao de endereamento fsico no precisa ser contguo Necessita mapear o espao lgico no espao fsico ! Dois mtodos bsicos: ! Paginao ! Segmentao

Captulo 8, Seo 8.4

Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Suposio: para ser executado o processo necessita estar completamente carregado em memria
Sistemas Operacionais 36

Sistemas Operacionais

35

Paginao (1)
A memria fsica (sistema) e a memria lgica (processo) so dividos em blocos de tamanho fixo e idnticos
Memria fsica dividida em blocos de tamanho fixo denominados de frames Memria lgica dividide em blocos de tamanho fixo denominados de pginas

Paginao (2)
Para executar um processo de n pginas, basta encontrar n frames livres na memria
Pginas so carregadas em qualquer frame livre

Elimina a fragmentao externa e reduz a fragmentao interna


Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Necessidade de traduzir endereos lgicos (pginas) em endereos fsicos (frames)


Pgina
Oliveira, Carissimi, Toscani

Frame 0 1 2 3 4 5

Oliveira, Carissimi, Toscani

0 1 2 3 Processo A
Sistemas Operacionais

6 7
38

Sistemas Operacionais

37

Paginao: Endereo lgico


Endereo lgico dividido em duas componentes:
Nmero da pgina Deslocamento dentro de uma pgina

Traduo de endereo lgico em endereo fsico

Memria RAM

Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Tamanho da pgina (P) pode assumir qualquer tamanho porm emprega-se um tamanho potncia de 2 para facilitar operaes div e mod
Pgina 0
Oliveira, Carissimi, Toscani

CPU

End. lgico

d Pgina/Frame

End. Fsico

1 2

p
3 Processo A
Sistemas Operacionais

p m-n

d n

Oliveira, Carissimi, Toscani

E=p+d p = E div P d = E mod P

m bits

f Tabela de pginas

39

Sistemas Operacionais

40

Exemplo de paginao (1)


Caractersticas do sistema:
Memria fsica: 64 kbytes (16 bits) Tamanho processo (mx): 32 kbytes (15 bits) Pginas 8 kbytes

Exemplo de paginao (2)


End. lgico
2 CPU 0 13 C98 C98 000 1100 1001 1000 End. 0000 2000
Instituto de Informtica - UFRGS

Frame 0 1 2 3 4 5 6 7 Memria fsica

Paginao:
Instituto de Informtica - UFRGS

Nmero de frames: 64/8 = 8 (0 a 7) 3 bits Nmero de pginas: 32/8 = 4 (0 a 3) 2 bits Deslocamento: 8 kbytes 13 bits
Oliveira, Carissimi, Toscani

End. fsico
100 3
Oliveira, Carissimi, Toscani

4000 6000 8000 A000 C000 E000 13

0 1100 1001 1000

15 bits End. Lgico p 2


Sistemas Operacionais

16 bits d 13 End. Fsico f 3 d 13


41

100 x x x

Sistemas Operacionais

42

Caractersticas da paginao

Instituto de Informtica - UFRGS

Tamanho da pgina
Pginas grandes significam
Processos compostos por menos pginas (tabela de pginas menores) Aumento da fragmentao interna na ltima pgina

Paginao um tipo de relocao (via hardware) No gera fragmentao externa Fragmentao interna restrita apenas a ltima pgina Importante:
Instituto de Informtica - UFRGS

Pginas pequenas significam


Processos compostos por mais pginas (tabela de pgina maiores) Diminuio da fragmentao interna na ltima pgina

Viso do usurio: espao de endereamento contguo Viso do sistema: processo esparramado na memria fsica

Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

n pginas so alocadas a n frames implicando na criao de uma tabela de correspondncia


Tabela de pginas

Objetivos conflitantes Tamanho da pgina imposto pelo hardware (MMU)


Valores tpicos variam entre 1 kbyte e 8 kbytes

Facilita implementao de proteo e compartilhamento

Sistemas Operacionais

43

Sistemas Operacionais

44

Questes relacionadas com a gerncia de pginas


A gerncia de memria deve manter controle de reas livres e ocupadas Incluso de mecanismos de proteo
Evitar que um processo acesse rea (pginas) de outros processos Garantir que um processo acesse apenas endereos vlidos Garantir acessos autorizados a uma posio de memria ! e.g.: pginas read-only, read-write, etc.

Proteo
Proteo de acesso garantida por definio:
Processos acessam somente suas pginas end. vlidos Endereo invlido apenas na ltima pgina ! Se houver fragmentao interna

Incluso de bits de controle na tabela de pgina (por entrada)


Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Indicao se a pgina de leitura, escrita ou executvel

Bit de validade:
Pgina pertence ou no ao end. lgico do processo
Oliveira, Carissimi, Toscani

Incluso de mecanismos de compartilhamento


Oliveira, Carissimi, Toscani

Permitir que dois ou mais processos dividam uma rea comum ! e.g.: pginas de cdigo de um aplicativo do tipo editor de texto

Sistemas Operacionais

45

Sistemas Operacionais

46

Exemplo de proteo
P0

Compartilhamento de pginas
vlido
End. 0000 2000 4000 Frame 0 1 2 3 5 6 7
Instituto de Informtica - UFRGS

Cdigo compartilhado
Uma cpia do cdigo (read-only, re-entrante) pode ser compartilhada entre vrios processos (e.g.; editores de texto, compiladores, etc...) O cdigo compartilhado pertence ao espao lgico de todos os processos

Processo Tabela de pginas

Pag.1

6000 8000 A000 C000 E000

Dados e cdigo prprios


Cada processo possui sua prpria rea de cdigo e seus dados

Instituto de Informtica - UFRGS

Pag.0 Pag.3 Pag.2

Oliveira, Carissimi, Toscani

Memria fsica

Sistemas Operacionais

47

Oliveira, Carissimi, Toscani

Sistemas Operacionais

48

Exemplo de compartilhamento
Vlido/Compartilhado
End. 0000 2000 4000 Frame 0 1 2 3
Instituto de Informtica - UFRGS

Implementao da tabela de pginas


Sistema operacional deve manter :
Frames livres/alocados Nmero de frames e de pginas de um processo Uma entrada para cada frame e para cada processo

Processo 1 Tabela de pginas Vlido/Compartilhado


Oliveira, Carissimi, Toscani

P1 P0 P0/P1

6000 8000 A000

Como implementar a tabela de pginas?


Registradores Memria
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

5 P3 C000 6 P3 E000 7 P2 Memria fsica

Processo 2 Tabela de pginas


Sistemas Operacionais 49

Sistemas Operacionais

50

Implementao da tabela de pginas via registradores


Tabela de pginas mantida por um conjunto de registradores
Cada pgina um registrador No descritor de processo devem ser mantidas cpias dos registradores ! Troca de contexto: atualizao dos registradores

Implementao da tabela de pginas em memria


Tabela de pginas mantida em memria
Page-table base register (PTBR): incio da tabela de pginas Page-table length register (PTLR): tamanho em nmero de entradas.

Desvantagem o nmero de registradores


Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Cada acesso a dado/instruo necessita, no mnimo, dois acessos a memria


Nmero de acesso depende da largura da entrada da tabela de pgina e de como a memria acessada (byte, word, etc...)
Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

End. lgico

End. fsico

+
PTBR

Acesso 1 (frame da pgina)

Acesso 2 (dado/instr.)

Sistemas Operacionais

51

Sistemas Operacionais

52

Translation look-aside buffers (TLBs)


Uma espcie de meio termo entre implementao via registradores e via memria Baseada em uma memria cache especial (TLB) composta por um banco de registradores (memria associativa) Idia manter a tabela de pginas em memria com uma cpia parcial da tabela em um banco de registradores (TLB)
Pgina acessada est na TLB (hit): similar a soluo de registradores Pgina acessada no est na TLB (miss): similar a soluo via memria
Oliveira, Carissimi, Toscani

Registradores associativos
Registradores associativos permitem a busca de valores por contedo, no por endereos
Pesquisa paralela
Key Instituto de Informtica - UFRGS value

Instituto de Informtica - UFRGS

Oliveira, Carissimi, Toscani

Funcionamento:
Se valor key est na memria associativa, se obtm valor (value).

Sistemas Operacionais

53

Sistemas Operacionais

54

Implementao da tabela de pginas via TLB


Memria RAM CPU End. lgico

Aspectos relacionados com o uso de TLB


Melhora o desempenho no acesso a tabela de pginas
Tempo de acesso 10 vezes menor que uma memria RAM

d Pgina/Frame Hit TLB

Desvantagem o seu custo


End. Fsico

Instituto de Informtica - UFRGS

TLB
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Tamanho limitado (de 8 a 2048 entradas) Uma nica TLB (pertence a MMU) que compartilhada entre todos os processos ! Apenas as pginas em uso por um processo necessitam estar na TLB

+
PTBR

Sistemas Operacionais

55

Oliveira, Carissimi, Toscani

Miss TLB

Um acesso feito em duas partes:


Se pgina est presente na TLB (hit) a traduo feita Se pgina no est presente na TLB (miss), consulta a tabela em memria e atualiza entrada na TLB

Tabela de pginas

Sistemas Operacionais

56

Hit ratio (h)


Probabilidade de qualquer dado referenciado estar na memria, no caso, na TLB
Taxa de acerto: hit ratio Seu complemento a taxa de erro: miss ratio
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Exemplo: influncia do hit ratio no desempenho


t acesso _ tlb = 20ns t acesso _ mem = 100ns t acesso ( hit ) = 20 + 100 = 120ns t acesso ( miss ) = 20 + 100 + 100 = 220ns
Mem. h

CPU

TLB

Mem.

1-h

Mem.

Mem.

CPU

TLB

1-h
Oliveira, Carissimi, Toscani

t acesso = t atlb + t amem t medio = h t atlb + t amem + (1 h ) t atlb + t amem + t amem


Sistemas Operacionais

Oliveira, Carissimi, Toscani

Mem.

Mem.

hit _ ratio = 0.80 t medio = 0.80 (120) + 0.20 (220) = 140ns hit _ ratio = 0.98 t medio = 0.98 (120) + 0.02 (220) = 122ns

t acesso = t atlb + t amem + t amem

]
57

Sistemas Operacionais

58

Paginao multinvel
Na prtica as tabelas de pgina possuem tamanho varivel
Como dimensionar o tamanho da tabela de pginas? ! Fixo ou varivel conforme a necessidade? Como armazenar a tabela de pginas? ! Contgo em memria fragmentao externa ! Paginando a prpria tabela

Exemplo: Paginao a dois nveis


Processadores 80x86
End. Lgico: 4 Gbytes (32 bits) Pginas: 4 kbytes Tamanho da tabela de pginas: 4 Gbytes / 4 kbytes = 1048576 entradas
32 bits
Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

A paginao multinvel surge como soluo a esses problemas


Oliveira, Carissimi, Toscani

t 10
Oliveira, Carissimi, Toscani

p 10

d f 12 ! d

Memria fsica

Diretrios de tabela de pginas (n nveis) Tabelas de pginas

Diretrio de tabela de pginas


Sistemas Operacionais

Tabela de pginas
60

Sistemas Operacionais

59

Paginao a trs nveis


Tpico de arquiteturas de processadores de 64 bits
Nvel 1 Nvel 2 Nvel 3 deslocamento

Tabela de pginas invertida


Problema com tabela de pginas o seu tamanho Tabela de pginas invertida surge como uma soluo
Uma tabela de pginas para todo o sistema (no mais por processo) Uma entrada para cada frame Endereo lgico da pgina e a qual processo pertence
Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Oliveira, Carissimi, Toscani

Diretrio global

Diretrio intermedirio

Tabela de pgina

Oliveira, Carissimi, Toscani

Endereo lgico formado por <process_id, pgina, deslocamento> Cada entrada da tabela possui <process_id; pgina> Tabela pesquisada e retorna, se presente, o indice i associado a entrada
Cada ndice corresponde a um frame

Pgina

Sistemas Operacionais

61

Sistemas Operacionais

62

Esquema tabela de pginas invertida

Leituras complementares
R. Oliveira, A. Carissimi, S. Toscani Sistemas Operacionais Editora Sagra-Luzzato, 2001.
Captulo 6, seo 6.5

CPU

Endereo lgico pid

d
Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Endereo fsico i Pid | p


Oliveira, Carissimi, Toscani

A. Silberchatz, P. Galvin Operating System Concepts. 4rd edition Addison-Wesley.


Seo 8.5
Memria fsica

Tabela de pginas

Sistemas Operacionais

63

Oliveira, Carissimi, Toscani

Sistemas Operacionais

64

Segmentao
Leva em considerao a viso de programadores e compiladores Um programa uma coleo de segmentos, tipicamente:
Cdigo Dados alocados estaticamente Dados alocados dinamicamente Pilha

Esquema lgico da segmentao


1 1 2 3
Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Um segmento pode ser uma nidade lgica


e.g.: procedimentos (funes), bibliotecas
Oliveira, Carissimi, Toscani

2 4
Oliveira, Carissimi, Toscani

3 Espao de usurio Espao fsico

Gerncia de memria pode dar suporte diretamente ao conceito de segmentos

Sistemas Operacionais

65

Sistemas Operacionais

66

Endereo lgico em segmentao


Endereo lgico composto por duas partes:
Nmero de segmento Deslocamento dentro do segmento

Traduo de endereo lgico em endereo fsico


Traduo feita de forma similar a paginao (via tabela)
Tabela de segmentos

Entrada na tabela de segmento:


base: endereo inicial (fsico) do segmento na memria limite: tamanho do segmento
Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Os segmentos no necessitam ter o mesmo tamanho Existe um tamanho mximo de segmento Segmentao similar a alocao particionada dinmica
Oliveira, Carissimi, Toscani

Necessidade de verificar a cada acesso se ele vlido


Hardware (comparador)
Oliveira, Carissimi, Toscani

Sistemas Operacionais

67

Sistemas Operacionais

68

Esquema de traduo da segmentao

Exemplo de traduo de endereo lgico em endereo fsico


Memria Fsica Memria Lgica
D1 D2 D3 D4 00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001 10010 10011 10100 10101 10110 10111

Segmento 00 - Cdigo

CPU

End. lgico

d base/limite

00000 00001 00010 00011 00100 00101

C1 C2 C3 C4 C5 C6

Segmento 01 - Dados

Instituto de Informtica - UFRGS

<
s d

End. Fsico

Instituto de Informtica - UFRGS

Memria fsica

00000 00001 00010 00011

D1 D2 D3 D4

C1 C2 C3 C4 C5 C6

Segmento 10 - Pilha 00000 00001 00010 P1 P2 P3 P1 P2 P3

Tabela de segmentos
Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Tabela de Segmentos
Segmento 00 01 10 Base 01000 00000 10100 Limite 0110 0100 0011

Sistemas Operacionais

69

Sistemas Operacionais

70

Implementao da tabela de segmentos


Construo de uma tabela de segmentos
Cada segmento corresponde a uma entrada na tabela

Implementao da tabela de segmentos via registradores


Tabela de segmentos mantida por um conjunto de registradores
Cada segmento dois registradores (base e limite) No descritor do processo devem ser mantidas cpias dos registradores ! Troca de contexto: atualizao dos registradores
Instituto de Informtica - UFRGS

Cada segmento necessita armazenar dois valores:


Limite e base

Anlogo a tabela de pginas:


Instituto de Informtica - UFRGS

Registradores Memria
Oliveira, Carissimi, Toscani

Nmero de registradores impem uma limitao prtica ao tamanho da tabela de segmentos (como na paginao)

Sistemas Operacionais

71

Oliveira, Carissimi, Toscani

Sistemas Operacionais

72

Implementao da tabela de segmentos em memria


Tabela de segmentos armazenada em memria Segment-table base register (STBR): localizao do incio da tabela de segmentos na memria Segment-table length register (STLR): indica o nmero de segmentos de um processo
Instituto de Informtica - UFRGS
!

Problemas com implementao da tabela em memria


Problemas similares ao da paginao:
Tabela pode ser muito grande Dois acessos a memria para acessar um dado/instruo

Soluo:
Empregar uma TLB
Instituto de Informtica - UFRGS

Segmento vlido apenas se: s < STLR.

Observao (vlida tambm para a paginao)


A consulta a tabela em memria provoca no mnimo 2 acessos a memria, pois uma entrada na tabela pode representar mais de um acesso.
Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Sistemas Operacionais

73

Sistemas Operacionais

74

Implementao da tabela de segmentos via TLB

Aspectos de proteo e compartilhamento


Os prncipios j estudados para paginao continuam vlidos para a segmentao

CPU

End. lgico

d base/limite

e.g.; bits de proteo (rwx), bit de validade, bits de compartilhamento, etc..

Instituto de Informtica - UFRGS

hit

<

End. Fsico

Instituto de Informtica - UFRGS

Memria fsica

Segmentao adiciona a possibilidade de compartilhar apenas trechos da rea de cdigo Problema associado:
Segmentos compartilhados devem ter a mesma identificao (entrada) na tabela de segmentos
Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

TLB miss
Base/limite

Base

Tabela de segmentos
Sistemas Operacionais 75

Sistemas Operacionais

76

Desvantagem da segmentao
A segmentao provoca fragmentao externa quando segmentos comeam a ser liberar memria Mesmo problema de alocao parties variveis com as mesmas solues:
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Soluo para fragmentao externa


A paginao a soluo natural para a fragmentao Analisar o problema sob dois pontos extremos:
Um processo um nico segmento Cada byte um segmento ! Sem fragmentao externa, nem interna ! No vivel pelos overheads envolvidos ! Similar a pgina de 1 byte

Concatenao de segmentos adjacentes Compactao da memria

Soluo: meio termo entre os extremos


Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Fazer um segmento ser composto por um nmero fixo (e reduzido) de bytes Equivale a ter o segmento dividido em internamente em blocos

Sistemas Operacionais

77

Sistemas Operacionais

78

Segmentao com paginao


Recuperar as vantagens dos dois mtodos em relao a fragmentao:
Fragmentao interna: paginao apresenta, segmentao no Fragmentao externa: segmentao apresenta, paginao no

Leituras complementares
R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. Editora Sagra-Luzzato, 2001.
Captulo 6

Soluo se traduz em paginar segmentos


Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

A. Silberchatz, P. Galvin, G. Gane; Applied Operating System Concepts. Addison-Wesley, 2000.


Captulo 9

End. lgico
Oliveira, Carissimi, Toscani

d 64k

63

W. Stallings; Operating Systems. (4th edition). Prentice Hall, 2001.


Captulo 7
Oliveira, Carissimi, Toscani

!
2 1 0

1k

Segmento contento 64 pginas de 1k


Sistemas Operacionais 79

Sistemas Operacionais

80

Motivao

Sistemas Operacionais
Memria virtual
Instituto de Informtica - UFRGS

Problemas da gerncia de memria (modelo visto at o momento)


Todo o espao lgico mapeado no espao fsico O tamanho do programa limitado pelo tamanho da memria Desperdcio de memria por manter armazenado cdigo no utilizado freqentemente ! e.g.; rotinas de tratamento de erro

Oliveira, Carissimi, Toscani

Um programa ocupando apenas um espao de memria que realmente necessria permite uma economia substancial de espao de memria
Espao liberado permitiria a carga e execuo simultnea de mais programas

2a edio Reviso: Fev/2003

Captulo 7

Sistemas Operacionais

Memria virtual: conceito


Memria virtual a tcnica que permite a execuo de um processo sem que ele esteja completamente em memria
Separao do vnculo de endereo lgico do endereo fsico

Memria virtual: vantagens


Aumento do grau de multiprogramao Reduz o nmero de operaes de E/S para carga/swap do programa Capacidade de executar programas maiores que a capacidade disponvel de memria
Instituto de Informtica - UFRGS

Princpios bsicos:
Instituto de Informtica - UFRGS

Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Carregar uma pgina/segmento na memria principal apenas quando ela for necessria ! Paginao por demanda ! Segmentao por demanda Manter em memria apenas as pgina/segmentos necessrios

Pn Memria lgica (processo)

FK

!
F0

Mmoria fsica

P0
Sistemas Operacionais

Nmero de pginas maior que o nmero de frames (n > k)


4

Sistemas Operacionais

Princpio da localidade
Base de funcionamento da memria virtual Na execuo de um processo existe uma probabilidade que acessos a instrues e a dados sejam limitados a um trecho
Exemplos: ! Execuo da instruo i+1 segue a execuo da instruo i ! Laos for, while, do-while ! Acessos a elementos de vetores
Oliveira, Carissimi, Toscani

Necessidades para implementao de memria virtual


Hardware deve suportar paginao e/ou segmentao Sistema operacional deve controlar o fluxo de pginas/segmentos entre a memria secundria (disco) e a memria principal Necessidade de gerenciar
Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Areas livres e ocupadas Mapeamento da memria lgica em memria fsica Substituio de pginas/segmentos
Oliveira, Carissimi, Toscani

Em um determinado instante de tempo apenas esses trechos do processo necessitam estar em memria Possibilidade de adivinhar os trechos necessrios a seqncia de execuo
Sistemas Operacionais 5

Sistemas Operacionais

Paginao por demanda (1)


Forma mais comum de implementao de memria virtual Similar a paginao com swapping
Invs de ser realizado o swap-in/out de um processo, se realiza o swap-in/out de apenas uma pgina do processo (page-in/out)
Fn
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Paginao por demanda (2)


Carrega uma pgina para a memria principal somente quando ela necessria Vem de encontro com a filosofia de memria virtual
Reduz operaes de E/S ! Carrega apenas a(s) pgina(s) necessria(s) Reduz quantidade de memria utilizada por processo Aumenta grau de multiprogramao
Oliveira, Carissimi, Toscani

Swap-in !

page-in

Fn !

Oliveira, Carissimi, Toscani

F0

swapper Paginao simples

pager

F0

Paginao por demanda


7

Sistemas Operacionais

Sistemas Operacionais

Paginao por demanda (3)


Uma referncia est sempre associada a uma pgina
Invlida Pgina presente na memria/no presente na memria (page-fault)

Tratamento de page-fault (1)


3 Sisop

Necessita conhecimento de quais pginas esto na memria secundria e quais pginas esto na memria principal
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Bit vlido/invlido associado a cada entrada na tabela de pginas


6 5 4 3 2 1 0

! mov ax,m !
6

1 i

2 Fn

Oliveira, Carissimi, Toscani

Page-fault

page-in

Oliveira, Carissimi, Toscani

g f e d c b a

Tab. Pginas

!
5 F0
Sistemas Operacionais

Sistemas Operacionais

F0

10

Tratamento de falta de pgina (page-fault) (2)


Passos realizados (viso do sistema)
1. Trap para sistema operacional 2. Salvamento de contexto 3. Deteco que a interrupo por page-fault 4. Verifica se referncia vlida e determina localizao da pgina no disco 5. Solicita operao de leitura da pgina faltante do disco para o frame 6. Passa processo da pgina faltante para estado suspenso e escalona outro processo 7. Interrupo do disco (final de transferncia da pgina) 8. Atualiza tabela de pgina 9. Passa processo do estado suspenso para estado pronto

Desempenho da paginao por demanda (1)


Taxa de falta de pginas 0 p 1.0
p = 0; qualquer referncia no gera falta de pginas p = 1, qualquer referncia provoca uma falta de pgina

Tempo efetivo de acesso:


Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

tefetivo = (1 p ) t acesso + p t page _ fault


Ex.:
Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

tempo acesso: 100 ns tempo page_fault: 25 ms te =(1-p) x 100 + p x 25000000 te = 100 + 24999900 x p te 25 us (250 x tacesso)

p=1/1000

Sistemas Operacionais

11

Sistemas Operacionais

12

Desempenho da paginao por demanda (2)


Exemplo:
Objetivo de aumentar no mximo em 10% o tempo de acesso 110 100 + p x 25000000 10 25000000p p = 0.0000004 (1 page fault a cada 250000 acessos)
Instituto de Informtica - UFRGS

Implementao da memria virtual (1)


A memria virtual pode ser implementada por:
Paginao por demanda Segmentao por demanda Segmentao com paginao (recai em paginao)
Instituto de Informtica - UFRGS

O princpio de funcionamento o mesmo porm mais simples de gerenciar paginao por demanda

Como melhorar o desempenho?


Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Manter a taxa de falta de pginas (page fault) pequena Acelerar procedimentos de leitura em disco ! Procedimento de swap (pager)

Sistemas Operacionais

13

Sistemas Operacionais

14

Implementao da memria virtual (2)


Memria fsica um recursos limitado, necessrio ento:
Poltica de carga de pgina Poltica de localizao da pgina Poltica de substituio de pgina

Poltica de carga de pginas


Carrega uma pgina para um frame Duas situaes:
Frame livre: carrega pgina no frame No h frame disponvel: ! Libera espao transferindo pgina(s) da memria (pager-out) para o disco (rea de swap) ! Poltica de substituio para seleo da pgina vtima

Partio de swap
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

rea especfica do disco destinada a armazenar pginas (segmentos) Organizado de forma diferente do sistema de arquivos para otimizar o acesso
Oliveira, Carissimi, Toscani

Otimizaes:
Oliveira, Carissimi, Toscani

Carregar mais de uma pgina na memria Nem toda pgina necessita pager-out: ! Pginas no modificadas ! Pginas read-only (cdigo)
Sistemas Operacionais 16

Sistemas Operacionais

15

Poltica de localizao
Determina na memria real a localizao das pginas de um processo Realizado pelo hardware de paginao/segmentao do processador
Transparente sob o ponto de vista do sistema operacional
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Substituio de pginas na memria


As pginas fsicas (frames) podem ficar totalmente ocupada a medida que pginas lgicas de processos so carregadas Necessidade de liberar uma pgina fsica (frame) para atender falta de pgina O algoritmo de substituio de pginas responsvel pela escolha de uma pgina vtima

Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Sistemas Operacionais

17

Sistemas Operacionais

18

Bits auxiliares
Objetivo auxiliar a implementao do mecanismo de substituio de pginas
No so absolutamente necessrios porm simplificam e tornam mais eficaz o mecanismo de substituio de pginas

Poltica de substituio de pginas (1)


Utilizado quando no h mais frames livres Seleciona na memria uma pgina a ser substituda quando outra pgina necessita ser carregada na memria
Problema determinar a pgina menos necessria
Instituto de Informtica - UFRGS

Bit de sujeira (dirty bit)


Instituto de Informtica - UFRGS

Indica quando uma pgina foi alterada durante a execuo do processo Se pgina no foi alterada no necessrio salvar seu contedo no disco

Certas pginas que no devem ser substitudas podem ser grampeadas a frames (frame locking), e.g.;
Cdigo e estruturas de dados do sistema operacional Buffers de E/S
Oliveira, Carissimi, Toscani

Bit de referncia (reference bit)


Oliveira, Carissimi, Toscani

Indica se uma pgina foi acessada dentro de um intervalo de tempo

Bit de tranca (lock bit)


Evita que uma pgina seja selecionada como vtima

Sistemas Operacionais

19

Sistemas Operacionais

20

Poltica de substituio de pginas (2)


Selecionar para substituio uma pgina que ser referenciada dentro do maior intervalo de tempo (algoritmo timo)
Impossvel de se ter conhecimento do futuro Emprego de aproximaes

First-come-first-served (FCFS)
Tambm denominado de First-In, First-Out (FIFO) Frames na memria principal so alocados a pginas na forma de um buffer circular Simples implementao Substitui a pgina que est a mais tempo na memria Desvantagem que a pgina substituda pode ser necessria logo a seguir
Oliveira, Carissimi, Toscani

Algoritmos para substituio de pginas


Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

First-come-first-served (FCFS) Least Recently Used (LRU) Baseado em contadores


Oliveira, Carissimi, Toscani

String de referncia:
Mtodo para avaliar algoritmos de substituio de pgina Gerao randmica de endereos

Sistemas Operacionais

21

Sistemas Operacionais

22

Exemplo: First-come-first-serverd (FCFS)


Caractersticas do sistema
Memria fsica composta por 3 frames Processo composto por uma memria lgica de 8 pginas

Least Recently Used (LRU)


Premissa bsica que pginas acessadas recentemente por um processo sero novamente acessadas em um futuro prximo Pgina a ser substituda a pgina referenciada a mais tempo
Pelo princpio da localidade, esta pgina deve ser a de menor probabilidade de ser referenciada em futuro proximo
0 7 0 2 1 7 0 1

Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

7 7 -

0 7 0 -

1 7 0 1

2 2 0 1

0 2 0 1

3 2 3 1

0 2 3 0

4 4 3 0

2 4 2 0

3 4 2 3

0 0 2 3

3 0 2 3

2 0 2 3

1 0 1 3

2 0 1 2

0 0 1 2

1 0 1 2

7 7 1 2

Desvantagem:
Cada pgina deve possuir a data da ltima referncia ! Suporte raramente suportado pelas MMUs
Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

15 Page-faults Pgina 0 foi substituda e em seguida referenciada!!

Sistemas Operacionais

23

Sistemas Operacionais

24

Exemplo: Least Recently Used (LRU)


Caractersticas do sistema
Memria fsica composta por 3 frames Processo composto por uma memria lgica de 8 pginas

Implementao de Least Recently Used (LRU)


Contadores na tabela de pginas
Contador Tempo da ltima referncia (time stamp) Desvantagem o overhead ! Atualizao da entrada na tabela de pginas ! Seleo da pgina vtima

Instituto de Informtica - UFRGS

7 7 Oliveira, Carissimi, Toscani

0 7 0 -

1 7 0 1

2 2 0 1

0 2 0 1

3 2 0 3

0 2 0 3

4 4 0 3

2 4 0 2

3 4 3 2

0 0 3 2

3 0 3 2

2 0 3 2

1 1 3 2

2 1 3 2

0 1 0 2

1 1 0 2

7 1 0 7

0 1 0 7

1 1 0 7

Instituto de Informtica - UFRGS

Pilha
Oliveira, Carissimi, Toscani

12 Page-faults

Pgina referenciada inserida no topo da pilha Topo da pilha est a pgina referenciada mais recentemente Base da pilha est a pgina referenciada menos recentemente Lista duplamente encadeada

Sistemas Operacionais

25

Sistemas Operacionais

26

Aproximaes para algoritmo LRU


Hardware (MMU) deve suportar bit(s) de referncia Bit(s) de referncia podem ser utilizados para aproximar LRU
Bit de referncia = 1 (pgina acessada); Bit de referncia = 0 (pgina no acessada) Substitui pgina cujo bit de referncia igual a zero ! Desvantagem: no se sabe o uso passado e a ordem

Construo de histrico de bits de referncia


Pginas Acessadas
P3 P1 P3 P1 P2 P0 P1 P2 P7 P2 P7 P0 P6

Tempo Amostra P0 0 0 P1 1 0 P2 0 0 P3 1 0 P4 0 0
Oliveira, Carissimi, Toscani

Amostra
0 0 0 0 0

Amostra
0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0

Amostra
1 1 1 1 0 0 0 0 0 1 0 1 0 0 0 0

Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Melhoria:
Oliveira, Carissimi, Toscani

P0 P1 P2 P3 P4 P5 P6 P7

1 1 1 1 0 0 0 0

P0 P1 P2 P3 P4 P5 P6 P7

0 1 1 0 0 0 0 1

P0 P1 P2 P3 P4 P5 P6 P7

1 0 1 0 0 0 1 1

0 1 1 0 0 0 0 1

1 1 1 1 0 0 0 0

Incluir vrios bits de referncia adicionais (registrador) A cada t consulta o bit de referncia e atualiza registrador (shift register)

P5 0 0 0 P6 0 0 0 P7 0 0 0

Histrico dos Bits de Referncia aps cada amostragem

Sistemas Operacionais

27

Sistemas Operacionais

28

Algoritmo de segunda chance (1)


Denominado tambm de algoritmo do relgio Tambm baseado em bit de referncia Considera que pginas lgicas formam uma lista circular
Apontador percorre a lista circular informando qual ser a proxma vtima Se pgina apontada (sentido horrio) tem o bit de referncia=1, ento: ! Posiciona bit de referncia em zero e mantm pgina na memria ! Substitui prxima pgina que tem bit de referncia=0
Oliveira, Carissimi, Toscani

Esquematizao do algoritmo de segunda chance


ANTES
n Pag 9 ref = 1 . . Instituto de Informtica - UFRGS . Pag 222 ref = 0 Pag 33 ref = 1 7 6 Pag 67 ref = 1 Pag 13 ref = 0 5 prximo 0 Pag 19 ref = 1 Pag 1 ref = 0 Pag 45 ref = 1 Pag 191 ref = 1 Pag 556 ref = 0 4 7 6 2 . Pag 222 8 ref = 0 Pag 33 ref = 1 Pag 67 ref = 1 Pag 13 ref = 0 5 . prximo 1 . n Pag 9 ref = 1

DEPOIS
0 Pag 19 ref = 1 Pag 1 ref = 0 Pag 45 ref = 0 2 1

Instituto de Informtica - UFRGS

8
Oliveira, Carissimi, Toscani

Pag 191 ref = 0 3 Pag 727 ref = 1 4

Sistemas Operacionais

29

Sistemas Operacionais

30

Algoritmo de segunda chance melhorado


Considera alm do bit de referncia um bit de modificao (bit uso)
bit uso=0: quando a pgina carregado na memria bit uso=1: quando a pgina modificada

Variao do algoritmo de segunda chance


Variao destinada a MMUs que no implementam bit de referncia Baseada em uma lista circular de pginas lgicas e um apontador (algoritmo relgio) e uma lista de pginas fsicas livres Em caso de falta de pgina
Instituto de Informtica - UFRGS

Durante pesquisa por pgina a ser substituda modifica bit de referncia de 1 para 0 (algoritmo do relgio)
Instituto de Informtica - UFRGS

Oliveira, Carissimi, Toscani

Sistemas Operacionais

31

Oliveira, Carissimi, Toscani

Privilegia a substituio de frames com bit uso=0 4 Combinaes: ! 00: no referenciada, nem modificada ! 01: no referenciada recentemente, porm modificada ! 10: recentemente referenciada, mas no modificada ! 11: recentemente referenciada, modificada

Remove uma pgina fsica da lista livres para a qual ser lida a pgina faltosa Pgina vtima marcada como invlida e includa na lista de livres Se essa pgina vtima for acessada logo em seguida ela simplesmente retirada da lista de livres e inserida na lista de pginas lgicas vlidas

O tempo de permanncia da pgina na lista de livres oferece a ela uma segunda chance de permanecer na memria

Sistemas Operacionais

32

Algoritmos de substituio baseado em contadores


A cada pgina associado um contador de nmero de referncias Duas polticas bsicas:
Least Frequently Used (LFU) ! Substitui a pgina que possui o menor valor Most Frequently Used (MFU) ! No substitui a pgina que possui o menor valor

Alocao de pginas fsicas (frames)


Questo:
Como se deve alocar frames na presena de n processos ?

Problemas:
Qual o mnimo necessrio por processo ? Quantas pginas fsicas alocar para cada processo ? De onde alocar os frames ?

Instituto de Informtica - UFRGS

Algoritmos no utilizados
Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

overhead Comportamento no aproxima algoritmo timo

Instituto de Informtica - UFRGS

Sistemas Operacionais

33

Sistemas Operacionais

34

Nmero mnimo de frames


Um processo necessita um nmero mnimo de frames para executar
Definido pelo conjunto de instrues da mquina (modos de endereamento) ! e.g;
! !

Algoritmos de alocao (quanto alocar ?)


O problema consiste em determinar quantos frames sero alocados para cada processo Dois algoritmos:
Alocao igualitria Alocao proporcional
Instituto de Informtica - UFRGS
35

INC MEM MOV MEM,POS

necessita duas pginas (cdigo, dados) necessita trs pginas (cdigo, 2 de dados)

Instituto de Informtica - UFRGS

Quanto menor o nmero de frames alocado a um processo maior a taxa de falta de pginas (page fault)
Oliveira, Carissimi, Toscani

Nmero mximo de pginas mantidas em memria depende da capacidade fsica da mquina

Oliveira, Carissimi, Toscani

Queda de desempenho do sistema Tentar manter o mximo de pginas em memria

Sistemas Operacionais

Sistemas Operacionais

36

Alocao igualitria
Princpio dividir os m frames da memria fsica entre os n processos aptos a executar
Cada processo recebe m/n frames A "sobra" pode compor um poll de frames livres Nmero de frames ajustado dinamicamente em funo do grau de multiprogramao

Alocao proporcional (1)


Princpio alocar frames ( f ) em funo do tamanho do processo
fi =

j =1 s j
n

si

Instituto de Informtica - UFRGS

Desvantagem:
Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Provoca distores j que processo possuem diferentes necessidades de memria

Instituto de Informtica - UFRGS

si: memria virtual do processo pi n: nmero de processos em estado apto m: nmero de frames

A alocao deve ser reajustada dinmicamente em funo do grau de multiprogramao

Sistemas Operacionais

37

Sistemas Operacionais

38

Alocao proporcional (2)


Empregar a prioridade de um processo, invs de seu tamanho, como critrio de peso Se um processo Pi provoca uma falta de pgina
Seleciona como vtima um de seus frames Seleciona como vtima um frame de um processo de prioridade mais baixa
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

De onde alocar os frames ?


Duas solues possveis:
Alocao local Alocao global

Oliveira, Carissimi, Toscani

Sistemas Operacionais

39

Oliveira, Carissimi, Toscani

Sistemas Operacionais

40

Alocao local
A gerncia de memria define quantas pginas fsicas cada processo deve dispor Em caso de falta de pginas a substituio ocorre entre as prprias pginas do processo que gerou a falta Desvantagens:
Instituto de Informtica - UFRGS

Alocao global
Uma lista nica de gerncia de pginas fsicas compartilhada por todos processos Um processo pode receber uma pgina fsica de outro processo Desvantagens:
Instituto de Informtica - UFRGS

Definio do nmero de pginas fsicas para cada processo Impede que um processo utilize pginas fsicas disponveis pertencentes a outros processos
Oliveira, Carissimi, Toscani

O conjunto de pginas fsicas ocupado por um processo depende do comportamento dos outros processos Um processo de maior prioridade pode recuperar as pginas fsicas de um processo de menor prioridade
Oliveira, Carissimi, Toscani

Apesar das desvantagens o mtodo mais comumente empregado


Privilegia o uso intelegente da memria fsica disponvel da mquina

Sistemas Operacionais

41

Sistemas Operacionais

42

Thrashing
Tratamento de uma falta de pginas caro em tempo
Impacto de falta de pginas grande para o desempenho do processo

Conseqncias do thrashing
Baixa taxa de uso da CPU para execuo de processos de usurios
Sistema operacional pode pensar que est faltando processos aptos para execuo e permite a criao/adio de novos processos ! Escalonador de mdio e longo prazo

Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Oliveira, Carissimi, Toscani

Alocao local implica no congelamento ao processo Alocao global implica no congelamento do sistema

Sistemas Operacionais

43

Oliveira, Carissimi, Toscani

A medida que o nmero de pginas fsicas alocadas a um processo a taxa de falta de pginas aumenta Um processo est em thrashing quando ele passa a maior parte do seu tempo de execuo no processo de paginao Efeito congelamento diferente em funo da poltica de alocao de pginas fsicas

Adio de processos implica em maior necessidade de frames


Agrava a situao

Concluso:
Existe um ponto onde o grau de multiprogramao compromete o desempenho do sistema

Sistemas Operacionais

44

Multiprogramao e Thrashing

Preveno do thrashing
Memria virtual baseada no princpio da localidade Thrashing sempre que:
da memria necessria a localidade > memria fsica disponvel (frames)

Soluo providenciar os frames necessrios a execuo do processo. Duas abordagens:


Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Oliveira, Carissimi, Toscani

No desejvel por aumentar o tempo de resposta do processos

Concluso: Mais vale prevenir que remediar !


Sistemas Operacionais 45

Oliveira, Carissimi, Toscani

Para retirar um sistema do estado de thrashing necessrio suspender alguns processos temporariamente Mecanismo natural o swapping

Modelo de working-set Mtodo freqncia de falta de pgina

Sistemas Operacionais

46

Modelo de working-set
Baseado no princpio da localidade Um parmetro define a largura da janela do working-set Princpio de base examinar as ltimas referncias a pginas
Se pgina est em uso: pertence ao working set Se pgina no est em uso: eliminada do working set em unidades
Instituto de Informtica - UFRGS

Definio e manuteno do working-set (1)


Define-se WSSi como sendo o working-set size do processo Pi Problema definir o :
= valor pequeno: no abrange toda a localidade. = valor grande: abrange vrias ! = : abrange todo o programa.
Instituto de Informtica - UFRGS

= 10 unidades
Oliveira, Carissimi, Toscani

D = WSSi a quantidade total de frames necessrios no sistema


Oliveira, Carissimi, Toscani

...2 6 1 5 7 7 7 7 5 1 6 2 3 4 1 2 3 4 4 4 4 3 4 3 4 4 4 1 3 2 3 4...

Se D > m Thrashing Para evitar que D > m, o sistema operacional monitora o uso de frames e, em caso de necessidade, suspede processo(s)

WS={1, 2, 5, 6, 7}

t1

WS={ 3,4}

t2

Sistemas Operacionais

47

Sistemas Operacionais

48

Definio e manuteno do working set (2)


Problema calcular o working set
Aproximao feita com interrupo de tempo mais bit(s) de referncia ! aumento da freqncia de interrupo e do nmero de bits de referncia melhora a preciso da aproximao

Mtodo freqncia de falta de pgina


Objetivo controlar a taxa de faltas de pginas para manter dentro de um limite razovel
Taxa maior que o mximo aceitvel: ! H processos que esto necessitando pginas fsicas ! Realiza o swap-out de alguns processos ! Libera pginas fsicas para processos que necessitam Taxa menor que o valor mnimo: ! Desligar o mecanismo de swapping ! Processos tem pginas fsica demais alocadas ! Pode liberar algumas

Exemplo:
Instituto de Informtica - UFRGS

= 10000 referncias
Instituto de Informtica - UFRGS

Oliveira, Carissimi, Toscani

Interrupo: - copia bit de referncia para memria - zera bit de referncia

Histrico: 00: 01: 10: working set 11


49

Oliveira, Carissimi, Toscani

t0

t1

5000 referncias

t2

Sistemas Operacionais

Sistemas Operacionais

50

Mtodo freqncia de falta de pgina (2)

Fatores adicionais
Alm dos algoritmos de substituio de pgina e da poltica de alocao propriamente ditos existem outros fatores a serem considerados no projeto de um sistema de memria
Pr-paginao Seleo do tamanho da pgina

Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS


51

Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Sistemas Operacionais

Sistemas Operacionais

52

Pr-paginao
Consiste em trazer para a memria todo o working-set de um processo
Possvel para caso em que processos que esto realizando transies dos estados bloqueado/suspenso para apto
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Tamanho da pgina (1)


Fatores a serem considerados na definio do tamanho de pgina
Fragmentao Tamanho de estruturas internas do sistema operacional (tabelas de pginas) Overhead das operaes de E/S Localidade

Custo da pr-paginao deve ser menor que custo de tratamento de falta de pginas
Qual frao () de pginas carregadas pela pr-paginao so efetivamente utilizadas? ! Vale a pena: se o custo de trazer (1- ) pginas menor que o tratamento de falta de pginas.

Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Sistemas Operacionais

53

Sistemas Operacionais

54

Tamanho da pgina (2)



Instituto de Informtica - UFRGS

Tamanho da pgina (3)


Menor o tamanho da pgina, maior o nmero de pginas que podem ser mantidas na memria principal Execuo tende a deixar em memria apenas as pginas que so necessrias (localidade).
Com muitas pginas, tendncia reduzir a taxa de page-fault
Instituto de Informtica - UFRGS

Menor a pgina, menor a quantidade de fragmentao interna Menor a pgina, maior a quantidade de pginas por processo Mais pginas por processo, maior tabelas de pginas Maior a tabela de pgina, maior a necessidade de uso de memria

Pgina grande tende a desperdiar a memria pois mantm alm das referncias necessrias, outras no utilizadas
Tendncia a aumentar a taxa de page-fault
Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Sistemas Operacionais

55

Sistemas Operacionais

56

Estrutura do programa
Exemplo
Vetor A[1024, 1024] de inteiros Cada linha armazenada em uma pgina

Estudo de caso: arquitetura Intel 386


Programa 1 (1024 x 1024 page faults)
for j := 1 to 1024 do for i := 1 to 1024 do A[i,j]=0;

Instituto de Informtica - UFRGS

Estrutura de dados Pilha


Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

for i := 1 to 1024 do for j := 1 to 1024 do A[i,j]=0;

Instituto de Informtica - UFRGS

Compilador re-organiza o cdigo para evitar page-faults

Esquema bsico o mesmo para a linha Pentium Arquitetura do 80386 oferece suporte segmentao com paginao Capacidade de utilizar:
Segmentao pura Paginao pura (2 nveis)

Programa 2 (1024 page faults)

Sistemas Operacionais

57

Sistemas Operacionais

58

Endereo lgico arquitetura Intel


Endereo lgico formado por 48 bits divididos em:
Seletor (16 bits) ! Indica qual segmento est sendo acessado Deslocamento (32 bits) ! Indica uma posio relativa dentro de um segmento
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Formato do endereo lgico no Intel 386


16 bits Seletor 32 bits Deslocamento

13 bits ndice

1 bit T

2 bits RPL

Instrues de mquinas so em 32 bits


O valor do seletor carregado em registradores especficos ! Registradores de segmento (CS, DS, ES, SS, FS e GS) Instrues consideram sempre como referncia um registrador de segmento

0 = Seletor da GDT (Global Descriptor Table) 1 = Seletor da LDT (Local Descriptor Table)

Oliveira, Carissimi, Toscani

Sistemas Operacionais

59

Oliveira, Carissimi, Toscani

Indice: ! Aponta para uma entrada especfica na LDT ou na GDT Bit T ! Indica se acesso na LDT ou na GDT Bits RPL ! Associado ao mecanismo de proteo
Sistemas Operacionais 60

Traduo de endereo lgico em fsico


Variao do procedimento estudado Endereo lgico transformado em um endereo linear Interpretao do endereo linear depende se est sendo utilizado segmentao ou paginao
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Segmentao no Intel 80386


Forma nativa de operao Espao lgico de endereamento dividido em dois cada um contendo uma tabela de segmentos a parte
LDT: Local Descriptor Table GDT: Global Descriptor Table

Com segmentao o endereo linear o endereo fsico utilizado para acessar uma posio na memria Com paginao o endereo linear sofre um procedimento adicional de transformao em endereo fsico
Oliveira, Carissimi, Toscani

Cada tabela de segmentos possui at 8K entradas, cada uma contendo um descritor de segmento com 8 bytes
Tabela de segmento ocupa no mximo 64 Kbytes
Oliveira, Carissimi, Toscani

Sistemas Operacionais

61

Sistemas Operacionais

62

Formato do descritor de segmento


Endereo de base do segmento (32 bits) Limite do segmento (20 bits)
Interpretaao desse valor depende da granularidade ! Granularidade=0: valor expresso em bytes ! Tamanho mximo de um segmento 1 Megabyte ! Granularidade=1: valor expresso em pginas de 4 Kbytes ! Tamanho mximo de um segmento 4 Gbytes (1 Mega pginas)
Oliveira, Carissimi, Toscani

Esquema de segmentao no 80386


Endereo lgico 16 bits Seletor 32 bits Deslocamento

Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Endereo de base

+ 32 bits Endereo linear Endereo fsico

Oliveira, Carissimi, Toscani

Controle de acesso (8 bits) Bit de granularidade (1 bit) Reservado para uso futuro (3 bits)

Tabela de segmentos (GDT ou LDT)

Sistemas Operacionais

63

Sistemas Operacionais

64

Paginao no Intel 80386


Uso opcional no 80386
Desativada no momento do reset do processador

Esquema de paginao no 80386


Endereo Linear 10 bits tabela 10 bits pgina 12 bits deslocamento

Caractersticas gerais:
Pginas de 4 Kbytes Espao de endereamento linear como o espao de endereamento fsico possuem 4 Gbytes (232) ! Mximo 1 Mega pginas Tabela de pginas considera dois nveis ! Registrador (CR3) aponta para o diretrio de tabela de pginas Diretrio de tabela de pginas ! 1 k entradas de 4 bytes ! Cada entrada aponta para uma tabela de pginas
Sistemas Operacionais 65

CR3

Tabela de Pginas

Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Endereo Fsico pgina fsica 20 bits


Oliveira, Carissimi, Toscani

deslocamento 12 bits

Oliveira, Carissimi, Toscani

Tabela de Pginas

Diretrio de Pginas
Sistemas Operacionais 66

Leituras complementares
R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. Editora Sagra-Luzzato, 2001.
Captulo 7

A. Silberchatz, P. Galvin, G. Gagne; Applied Operating System Concepts. Addison-Wesley, 2000, (1st edition).
Instituto de Informtica - UFRGS

Captulo 10

W. Stallings; Operating Systems. (4th edition). Prentice Hall, 2001.


Captulo 8
Oliveira, Carissimi, Toscani

Sistemas Operacionais

67

Introduo

Sistemas Operacionais
Sistema de arquivos
Instituto de Informtica - UFRGS

O sistema de arquivos a parte mais vsivel do sistema operacional Cria um recurso lgico a partir de recursos fsicos atravs de uma interface coerente e simples, fcil de usar Mecanismo para armazenamento e acesso a dados e a programas Duas partes bsicas:
Arquivos ! Armazenamento de dados e de programas Diretrios ! Organizao e informaes sobre arquivos

2a edio Reviso: Fev/2003

Captulo 8

Oliveira, Carissimi, Toscani

Sistemas Operacionais

Objetivos do sistema de arquivos


Fornecer mecanismos para usurios manipular arquivos e diretrios Garantir a validade e coerncia de dados
Minimizar ou eliminar o risco de perda/alterao de dados

Requisitos mnimos: ponto de vista do usurio


Cada usurio deve ser capaz de:

Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Otimizar o acesso Fornecer suporte a outros sistemas de arquivos Suporte a vrios usurios (multiprogramao)
Uso compartilhado (proteo e acesso concorrente)
Oliveira, Carissimi, Toscani

Criar, apagar, ler e alterar arquivos Controlar as permisses de acesso a seus arquivos Nomear arquivos de forma simblica Estruturar os arquivos de forma a adequ-los a suas necessidades especficas ! Criao de diretrios e subdiretrios Realizar back-ups e recuperar arquivos em caso de problemas

Sistemas Operacionais

Oliveira, Carissimi, Toscani

Sistemas Operacionais

Requisitos mnimos: ponto de vista do sistema


O sistema operacional deve ser capaz:
Descrever a localizao de todos os arquivos e de seus atributos ! Via diretrio Gerenciar espao fsico do disco ! Alocar blocos livres a arquivos em criao/expanso ! Liberar blocos de arquivos removidos ! Mecanismos para localizar eficientemente blocos (setores) que compem arquivos
Oliveira, Carissimi, Toscani

Conceitos bsicos
Arquivos
Recipientes que contm dados

Diretrios
Conjuntos de referncias a arquivos

Partio
Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Abstrao que permite a partir do disco fsico criar discos lgicos

Oliveira, Carissimi, Toscani

Sistemas Operacionais

Sistemas Operacionais

Conceito de arquivo
Informao pode ser armazenada em diferentes tipos de mdia
O sistema operacional deve oferecer uma viso uniforme da informao independente do dispositivo fsico de armazenamento ! Viso lgica o arquivo
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Nomes de arquivos
O sistema de arquivos define um espao de nomes
Conjunto de regras e convenes para identificar simbolicamente um arquivo

Variam de sistema para sistema


Distino entre letras maisculas e minsculas Obrigatoriedade ou no de uma extenso ! As vezes extenses so apenas convenes Tamanho mximo de nome e da extenso (se houver)
Oliveira, Carissimi, Toscani

Arquivos so mapeados para dispositivos fsicos Arquivos possuem:


Nome Atributos Estrutura interna Tipo Mtodo de acesso Operaes
7

Oliveira, Carissimi, Toscani

Sistemas Operacionais

Sistemas Operacionais

Atributos de um arquivo
Informaes sobre arquivos

Oliveira, Carissimi, Toscani

Estruturas de arquivos
Seqncia de bytes Seqncia de registros rvore

Instituto de Informtica - UFRGS

Diretrio

Oliveira, Carissimi, Toscani

Varia de sistema operacional a sistema operacional Atributos so mantidos em uma estrutura a parte

Instituto de Informtica - UFRGS

Nome: informao simblica empregada para referenciar o arquivo Tipo: binrio, texto, executvel, caracter, bloco Localizao: posio do arquivo em um determinado dispositivo E/S Tamanho: nmero de bytes que compem o arquivo Proteo: controla acesso de leitura, escrita e execuo ao arquivo Hora e data de criao, identificao do usurio: informaes destinadas a proteo, segurana e monitorao

Sistemas Operacionais

Sistemas Operacionais

10

Seqncia de bytes
Sistema operacional no interpreta o contedo do arquivo Enxerga apenas bytes Interpretao a nvel do programa de usurio Vantagem: Flexibilidade

Seqncia de registros
Arquivo interpretado como uma seqncia de registros, isto Tamanho fixo Estrutura interna Operaes lem/escrevem registros Emprego raro

byte

registro

Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS


11

Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Sistemas Operacionais

Sistemas Operacionais

12

rvore
Conjunto de registros no necessariamente de mesmo tamanho
Possuem um campo de acesso (chave)

Tipos de arquivo
Sistema operacional suporta vrios tipos de arquivos Tipos comuns:
Regular ! Arquivos de dados em ASCII e binrio Diretrio ! Arquivos que mantm a estrutura (organizao) do sistema de arquivos Arquivos especiais de caracter/bloco ! Vinculados a dispositivos de entrada e sada
Oliveira, Carissimi, Toscani

Comum em mainframes
Mtodo ISAM (Indexed Sequential Access Method)
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Oliveira, Carissimi, Toscani

R W

Sistemas Operacionais

13

Sistemas Operacionais

14

Exemplos de arquivos UNIX


executvel (formato a.out) biblioteca

Mtodos de acesso
Forma pela qual o contedo de um arquivo acessado Mtodos elementares de acesso:
Acesso seqncial Acesso relativo

Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS


15

Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Sistemas Operacionais

Sistemas Operacionais

16

Acesso seqncial
Acesso a um arquivo feito atravs de primitivas (chamadas de sistema) do tipo read e write Cada chamada de sistema read retorna ao processo os dados seguintes queles que foram lidos na chamada anterior Mtodo no adequado a todas aplicaes
Instituto de Informtica - UFRGS

Acesso relativo
Prov uma chamada de sistema especfica para indicar o ponto em que um arquivo deve ser lido/escrito Implementado atravs da abstrao de posio corrente no arquivo
Instituto de Informtica - UFRGS

e.g.: acesso e atualizao a cadastros de funcionrios

Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Sistemas Operacionais

17

Sistemas Operacionais

18

Outros tipos de acesso


Os mtodos seqncias e relativos no resolvem todos os tipos de acesso
e.g.: localizar um registro a partir do contudo

Operaes bsicas sobre arquivos


Arquivo um tipo abstrato de dados sobre o qual se pode efetuar uma srie de operaes

Oliveira, Carissimi, Toscani

Necessidades de mtodos de acesso mais sofisticados, tais como seqencial indexado, indexado, direto, hash, etc
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Normalmente implementados por programas especficos Baseados nos mtodos de acesso seqncial e relativo
Oliveira, Carissimi, Toscani

Criao (create) Escrita (write) e leitura (read) Reposicionamento em um ponto qualquer do arquivo (file seek) Remoo (delete) Abertura (open) e encerramento (close) Adicionalmente: truncagem (truncate); renomeao (rename); appending, etc

Geralmente correspondem a chamadas de sistema


Operaes mais complexas podem ser criadas utilizando-se das operaes bsicas

Sistemas Operacionais

19

Sistemas Operacionais

20

Controle de acesso
Importante controlar o acesso aos arquivos devido a questes de segurana e de confidencialidade Objetivo evitar acessos indevidos a arquivos Baseado na identificao dos usurios
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Listas de acesso
Consiste em associar a cada arquivo e/ou diretrio uma lista de acesso que determina que tipos de acessos so permitidos para cada usurio Maior inconveniente o tamanho da lista Uma soluo consiste em:
Criar classes de usurios ! e.g.: proprietrio, grupo, universo Tipos de acessos ! e.g: read, write, modify, execute

Sistema de autenticao padro (login name + senha) Usurios possuem direitos de acessos

Soluo tpica:
Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Lista de acesso e grupo

Sistemas Operacionais

21

Sistemas Operacionais

22

Exemplo: UNIX
Cada objeto oferece 3 bits (rwx) para trs domnios diferentes: proprietrio, grupo, e outros Problema de flexibilidade
Quando um usurio pertence a vrios grupos ele identificado por um grupo primrio e o arquivo (/etc/groups) mantm todos os grupos a que ele pertence
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Outra abordagem: senhas


Associar uma senha a cada arquivo
A grande desvantagem o nmero de senhas

Declarao de compartilhamento de arquivo e/ou subdiretrio


Esquema utilizado pelo Macintosh e pelo Windows

r w x r- - r - Oliveira, Carissimi, Toscani

1 mary staff

214056

May 30 22:19

windbind.pdf

Sistemas Operacionais

23

Oliveira, Carissimi, Toscani

Sistemas Operacionais

24

Implementao de arquivos
Arquivos so implementados atravs da criao, para cada arquivo no sistema, de uma estrutura de dados Descritor de arquivo um registro que mantm informaes sobre o arquivo Informaes tpicas (atributos):
Instituto de Informtica - UFRGS

Tabelas de descritores de arquivos


Descritores de arquivos so armazenados no prprio disco
Na realidade no mesmo disco lgico (partio)

Problema de desempenho
Acesso ao disco para ler o descritor de arquivos lento Soluo manter descritor em memria enquanto o arquivo estiver em uso ! Indicao se arquivo est em uso normalmente feito pelo prprio usurio (aplicao) atravs de chamadas do tipo open e close
Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Nome do arquivo Tamanho em bytes Data e hora da criao, do ltimo acesso, da ltima modificao Identificao do usurio que criou o arquivo Listas de controle de acesso Local do disco fsico onde o contudo do arquivo foi colocado etc
25

Instituto de Informtica - UFRGS

Sistema de arquivos mantm os descritores de arquivos em memria em uma estrutura de dados do sistema operacional
Tabela de descritores do arquivo abertos (TDAA)

Sistemas Operacionais

Sistemas Operacionais

26

Tabelas de arquivos abertos por processo


Informaes relacionadas com arquivos so de dois tipos:
No variam conforme o processo que est acessando o arquivo ! e.g.: tamanho do arquivo Dependem do processo que est acessando o arquivo ! e.g.: posio corrente
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Emprego conjunto das tabelas TAAP e TDAA

FileHandle PosCor=12 Leitura FileHandle PosCor=55 Leitura & esc

Arquivo B

Arquivo A

Informaes dependentes do processo so armazenadas em uma tabela a parte mantida pelo processo (TAAP)
Oliveira, Carissimi, Toscani

Tabela de arquivos abertos processo 0

Descritor Arquivo A

Entrada na TAAP serve para referenciar o arquivo


File handle

Oliveira, Carissimi, Toscani

e.g.: posio corrente no arquivo, tipo de acesso e apontador para a entrada correspondente na TDAA

Descritor Arquivo B FileHandle PosCor=10 Leitura

Tabela de arquivos abertos por processo 1

Tabela de Arquivos Abertos

Sistemas Operacionais

27

Sistemas Operacionais

28

Leituras complementares
R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. Editora Sagra-Luzzato, 2001.
Captulo 8, sees 8.1, 8.2, e 8.3

Gerenciamento do dispositivo de armazenamento


Problema: arquivos devem ser armazenados no disco!!
Unidade de manipulao dos dados no dispositivo fisico (bloco)

Pontos a serem tratados:


Relao nmero de setores do disco que compem um bloco ! No necessita ser 1:1 Alocao de blocos no disco Recuperao de blocos liberados Localizao de dados no disco
Oliveira, Carissimi, Toscani

A. Silberchatz, P. Galvin; Operating System Concepts. AddisonWesley, (4th edition).


Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Captulo 10, sees 10.1, 10.2,10.4, e 10.5

Oliveira, Carissimi, Toscani

Existe uma relao entre a poltica de alocao com a poltica de gerncia de espao livre

Sistemas Operacionais

29

Sistemas Operacionais

30

Alocao do espao em disco


Como alocar espao em disco de forma que os arquivos sejam armazenados de forma eficiente e que permita acesso rpido
Alocar blocos livres suficientes para armazenar o arquivo Blocos lgicos do disco so numerados sequencialmente

Alocao contgua
Arquivo uma seqncia de blocos lgicos contigos alocados no momento da criao Endereos no disco so lineares
bloco lgico i e i+1 so armazenados fisicamente em seqncia Reduz a necessidade de seek j que blocos esto na mesma trilha ! No pior caso necessita apenas a troca de cilindro

Duas formas bsicas:


Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Contigua (alocao contigua) No-contigua (alocao encadeada e alocao indexada)


Oliveira, Carissimi, Toscani

Arquivo descrito atravs de uma entrada na forma:


Oliveira, Carissimi, Toscani

00 05 55 ...

01 06 .... 96

02 .... 72 97

03 53 73 98

04 54 74 ....

Bloco fsico inicial Tamanho do arquivo em blocos

Sistemas Operacionais

31

Sistemas Operacionais

32

Esquema alocao contgua

Problemas com alocao contgua


Problema 1: encontrar espao para um novo arquivo
Tcnicas de gerncia de memria ! e.g.; first-fit, best-fit, worst-fit Gera fragmentao externa ! Necessidade de compactao

Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Problema 2: determinar o espao necessrio a um arquivo


Arquivos tendem a crescer, e se no h espao contgo disponvel? ! Aborta execuo do programa com erro ! Recopia o programa para uma zona maior Pr-alocar um espao mximo para o arquivo ! Fragmentao interna

Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Sistemas Operacionais

33

Sistemas Operacionais

34

Alocao encadeada
Soluciona os problemas da alocao contgua
Relao a dimensionamento do tamanho e crescimento de arquivos

Esquema de alocao encadeada

Alocao baseada em uma unidade de tamanho fixo (bloco lgico)


Anlogo a paginao

Arquivo uma lista encadeada de blocos


Instituto de Informtica - UFRGS

Cada bloco contm um ponteiro para o prximo bloco

Arquivo descrito em uma entrada na forma:


Oliveira, Carissimi, Toscani

Sistemas Operacionais

35

Oliveira, Carissimi, Toscani

Bloco inicial do arquivo Bloco final do arquivo ou tamanho do arquivo em blocos

Instituto de Informtica - UFRGS

Sistemas Operacionais

36

Prs e contras da alocao encadeada


Elimina a fragmentao externa Arquivos podem crescer indefinidamente
No h necessidade de compactar o disco

Exemplo: File Allocation Table (FAT)


Variao de alocao encadeada FAT uma tabela de encadeamento de blocos lgicos
Uma entrada na FAT para cada bloco lgico do disco (sistema de arquivos) Composta por um ponteiro (endereo do bloco lgico) Arquivo descrito por uma seqncia de entradas na FAT, cada entrada apontando para a prxima entrada

O acesso a um bloco i implica em percorrer a lista encadeada


Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Afeta o desempenho Adequado para acesso seqncial a arquivos

Confiabilidade
Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Erro provoca a leitura/escrita em bloco pertencente a outro arquivo

Sistemas Operacionais

37

Sistemas Operacionais

38

Sistema de arquivos FAT (MS-DOS)


Organizao lgica do disco:
Setor 0 rea reservada FAT Diretrio raiz Setor n
Instituto de Informtica - UFRGS

Esquema de funcionamento da FAT


Desvantagem principal o tempo de seek

Arquivos
Instituto de Informtica - UFRGS

FAT Diretrio jeep 217

!
618 217

Diretrio raiz possui tamanho fixo em funo da capacidade do disco


Cada entrada possui 32 bytes
Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Tamanho da File Allocation Table (FAT) proporcional a capacidade do disco Alocao baseada em clusters (bloco lgico)
2n setores (depende da capacidade do disco)
Sistemas Operacionais 39

Primeiro setor do arquivo (start block)

!
400 EOF 399 400 618

399

Sistemas Operacionais

40

Alocao indexada
Busca resolver o problema de ponteiros esparramados pelo disco que a alocao encadeada provoca Mantm, por arquivo, um ndice de blocos que o compe O ndice mantido em um bloco Diretrio possui um ponteiro para o bloco onde est o ndice associado a um determinado arquivo
Oliveira, Carissimi, Toscani

Esquema de alocao indexada

Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Oliveira, Carissimi, Toscani

Sistemas Operacionais

41

Sistemas Operacionais

42

Prs e contras da alocao indexada


Permite o acesso randmico a blocos independentes de sua posio relativa no arquivo Tamanho mximo do arquivo limitado pela quantidade de entradas suportadas pelo bloco
!

Variaes em alocao indexada


Buscam resolver o problema do tamanho do bloco de indices Trs mtodos bsicos:
Encadeado Multinvel Combinado
Instituto de Informtica - UFRGS
43

Instituto de Informtica - UFRGS

Muito pequeno (limita tamanho do arquivo) Muito grande (desperdia espao em disco)

Soluo utilizar dois tamanhos de blocos, um para ndice e outro para dados
Oliveira, Carissimi, Toscani

e.g.: i-nodes e bloco de dados em sistemas UNIX

Oliveira, Carissimi, Toscani

Sistemas Operacionais

Sistemas Operacionais

44

Mtodo encadeado
O ndice mantm ponteiros para os blocos que compem o arquivo com exceo da ltima entrada
Mantm um ponteiro para outro bloco onde ndice continua
Bloco de dados (618)

Mtodo multinvel
Mantm um ndice de ndices
No resolve completamente o problema de limite
Bloco de ndices (310) 0 Bloco de dados (10)

Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Bloco de ndices (0) 0 k k+1 n-1 n 618

Bloco de dados (500)

Bloco de ndice de ndices (0) 0 310 n-1 n

!
10 Bloco de ndices (700) 0 442

! !

Bloco de ndices (300)

!
Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

n-1 n

530 700

400 300

k k+1 n-1 n

500

! !

Bloco de dados (442)

!
n-1 n
Sistemas Operacionais 46

Sistemas Operacionais

NULL NULL

45

Mtodo combinado
Mtodos encadeado e multinvel em uma nica estrutura de dados O que justifica essa combinao?
Acesso otimizado a blocos de dados: mtodo indexado Limite de arquivos: multinvel
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Exemplo: estrutura de i-nodes (UNIX)

Bloco de dados (310) Bloco combinado (0)


Oliveira, Carissimi, Toscani

128 bytes

10

Ponteiros p/ bloco de dados Ponteiros p/ bloco de ndices

!
n-1 n 530 700 n-1 n

!
47

Oliveira, Carissimi, Toscani

310

Bloco de ndices (700) 0 442

Bloco de dados (442)

Sistemas Operacionais

Sistemas Operacionais

48

Problema com os mtodos de alocao no-contigua


Necessidade de acessar reas especficas do disco para ler as informaes de encadeamento
Quantidade de seeks depende do tipo da estrutura (FAT ou descritores)

Resumo dos tipos de alocao


Alocao contgua
S armazena endereo do primeiro bloco Acesso randmico possvel (bloco inicial + deslocamento) Gera fragmentao externa no disco

Soluo manter em memria


Tradicionais problemas de rea de memria ocupada e de confiabilidade
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Alocao encadeada
Armazena endereo do primeiro bloco Problema de desempenho (seek) No recomendado para acesso randmico
Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Alocao indexada
Visa solucionar problemas dos tipos anteriores Anlise de desempenho (tamanho + tempo de acesso ) complexa ! Depende da estrutura de ndice e do tamanho de arquivo
Sistemas Operacionais 50

Sistemas Operacionais

49

Concluso: qual o melhor mtodo de alocao?


Depende do tipo de acesso que o sistema faz a seus arquivos
Seqncial versus randmico

Suporte a mltiplos sistemas de arquivos


Fazer com que o sistema operacional suporte diversos sistemas de arquivos diferentes simultneamente Soluo inspirada na gerncia de perifricos
Parte independente do dispositivo ! Servios idnticos independente do tipo de sistema de arquivos Parte dependente do dispositivo ! Interface padro
Oliveira, Carissimi, Toscani

Fator adicional:
Evoluo tecnolgica (novos hardwares) e de desempenho foram a coexistncia de diferentes sistemas de arquivos
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Necessidade de fazer conviver diferentes sistemas de arquivos em um mesmo computador


Suporte a mltiplos sistemas de arquivos
Oliveira, Carissimi, Toscani

Virtual File System (VFS) CD-ROM Partio raw Disquete

Sistemas Operacionais

51

Sistemas Operacionais

52

Implementao de mltiplos sistemas de arquivos


Cada partio possui um nico sistema de arquivos Tabela com descritores virtuais de arquivos abertos
Parte independente do sistema de arquivos Uma entrada ocupada para cada arquivo aberto (descritor virtual)

Mltiplos sistemas de arquivos: estrutura de dados


Tabela com descritores virtuais dos arquivos abertos ... tipo contador de uso dados dependentes ... tipo contador de uso dados dependentes ... Tab. descritores Sist. Arq. 1 tamanho localizao direitos etc ... ... Descritor do S.A. 2 open read
Oliveira, Carissimi, Toscani

Descritor do S.A. 1 open read write ... tab. descritores dados

Descritor virtual
Instituto de Informtica - UFRGS

Oliveira, Carissimi, Toscani

Informaes comuns a todo sistema de arquivo (proteo, nro de acessos, ...) Apontador para uma estrutura Tipo do sistema de arquivos Apontador para o descritor do sistema de arquivos real ! Lista de ponteiros para rotinas que implementam o cdigo necessrio a execuo de uma dada chamada de sistema (read, write, close,...) ! Informaes sobre a gerncia desse sistema de arquivos (blocos livres, ocupados, estrutura de diretrios, ...)
Sistemas Operacionais 53

Instituto de Informtica - UFRGS

Tab. descritores Sist. Arq. 2 tamanho localizao direitos etc ... ...

write ... tab. descritores dados

Sistemas Operacionais

54

Organizao da cache de disco


Objetivo manter na memria principal uma certa quantidade de blocos do disco No adiciona nem elimina funcionalidades ao sistema de arquivos
Funo melhorar o desempenho do sistema de arquivos
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Funcionamento da cache de disco


Em uma requisio de E/S verifica se o bloco est na cache
Sim: realiza o acesso a partir dessa cpia em memria No: realiza o acesso a partir do disco e carrega o bloco para a cache

A modificao de valores feito em blocos na cache


Problema de quando atualizar o disco aps um bloco ter sido alterado

No confundir com a cache do processador Normalmente a cache de disco mantida em uma rea da memria principal e controlada pelo sistema operacional
Oliveira, Carissimi, Toscani

Problema da perda de informaes e da consistncia do sistema de arquivos em caso de pane do sistema (falta de energia)
Oliveira, Carissimi, Toscani

Pode ser global ou exclusiva (uma por sistema de arquivo suportado)

Sistemas Operacionais

55

Sistemas Operacionais

56

Polticas de atualizao da cache



Instituto de Informtica - UFRGS

Poltica de substituio
A cache de disco um recurso limitado O que fazer quando um novo bloco deve ser inserido na cache e no h espao livre ?
Problema similar a gerncia de memria virtual (substituio de pginas)

Instituto de Informtica - UFRGS

Posterga ao mximo Atualiza a cada intervalo de tempo Atualiza imediatamente no disco Atualiza imediatamente apenas informaes sensveis a consistncia do sistema do arquivo

Tipicamente a poltica Least-Recently-Used (LRU) empregada

Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Sistemas Operacionais

57

Sistemas Operacionais

58

Implementao da poltica LRU


Facilmente implementada atravs de uma lista duplamente encadeada
Quando o bloco acessado ele removido de sua posio na lista e colocado no incio da lista Todo bloco novo (acessado pela primeira vez) tambm inserido no incio da lista O bloco menos recentemente acessado o ltimo da lista

Implementao da cache do sistema de arquivos


HASH( p a rti o , n m e ro d o b lo c o )

Instituto de Informtica - UFRGS

Existe o problema de localizar rapidamente um bloco na lista


Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Emprego de funo hash

Instituto de Informtica - UFRGS

LRU - in c io

LRU - fim

contedo do bloco informaes adicionais

Sistemas Operacionais

59

Sistemas Operacionais

60

Gerenciamento do espao livre


Necessrio manter a informao de blocos livres e ocupados Mtodos bsicos:
Mapa de bits (bitmap) Lista de blocos livres
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Mapa de bits (bit map)


Forma simples de gerenciar o espao em disco Cada bloco do disco possui um bit indicando se o bloco est livre ou ocupado
Disco
Bloco 0 Fsico 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Mapa de Bits. 0 0 1 0 1 0 1 0 0 0 1 1 0 0 0 0

Ambos mtodos consideram que os blocos no disco so numerados sequencialmente


00 25 55 ... 01 26 .... 96 02 .... 72 97 03 53 73 98 .... 54 74 ....

Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

tamanho _ bit _ map =

Capacidade _ disco(bytes) 8 tamanho _ bloco(bytes)

Sistemas Operacionais

61

Sistemas Operacionais

62

Lista de blocos livres


Os blocos livres so organizados em uma lista Lista mantida no prprio disco
Problema o tamanho da lista Paliativo: a medida que o espao em disco ocupado a lista diminui de tamanho liberando espao do disco
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Gerncia de espao livre atravs de blocos livres

lgico

Soluo alternativa manter uma lista de reas livres ao invs de uma lista de blocos livres
Endereo do bloco inicial da rea livre e o seu tamanho
Oliveira, Carissimi, Toscani

Sistemas Operacionais

63

Oliveira, Carissimi, Toscani

Bloco Fsico 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Disco 2 4 6 7
8 9 10 11

14 15

Sistemas Operacionais

64

Leituras complementares
R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. Editora Sagra-Luzzato, 2001.
Captulo 8, sees 8.5 e 8.6

Diretrio
Problema:
Quantidade (grande) de arquivos implica na necessidade de organiz-los

Sistema de arquivos oferece duas formas de organizao


Partio Diretrio
Instituto de Informtica - UFRGS

A. Silberchatz, P. Galvin; Operating System Concepts. AddisonWesley, 4th edition.


Instituto de Informtica - UFRGS

Captulo 11 seo 11.3

Partio divide um disco em discos lgicos (virtuais), mas no resolve a organizao de arquivos dentro desse disco lgico
Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

No mnimo uma em um sistema Onde residem os arquivos e os diretrios

Sistemas Operacionais

65

Sistemas Operacionais

66

O conceito de diretrio
Estrutura de dados que contm informaes sobre arquivos

Instituto de Informtica - UFRGS

Organizao de diretrio
Cada entrada do diretrio um arquivo Existem duas formas bsicas para se organizar um diretrio
Linear Em rvore
Instituto de Informtica - UFRGS
67

Atributos bsicos: nome, tipo, ... Localizao: dispositivo fsico, end. Incio, tamanho,... Controle de acesso: proprietrio, informaes de acesso, aes permitidas,... Utilizao: data criao/modificao, nro de processos que o usam, locking,...

Diretrio um arquivo pertencente ao sistema operacional


Acesso feito via servios do sistema operacional

Tipos de operaes em um diretrio


Oliveira, Carissimi, Toscani

Pesquisar Criar e remover arquivos Listar diretrio Atualizar diretrio

Oliveira, Carissimi, Toscani

Sistemas Operacionais

Sistemas Operacionais

68

Diretrio linear
Mais simples O diretrio corresponde a uma lista de todos os arquivos do disco Desvantagem:
Problema de nomeao e agrupamento 2 ou mais usurios no podem ter arquivos com o mesmo nome (coliso)
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Diretrio linear a dois nveis


Cada usurio possui o seu prprio diretrio
Informao mantida na raiz (master directory) ! Cada entrada corresponde a um subdiretrio (usurio)

Resolve parcialmente o problema de coliso de nomes e mas no resolve o problema de organizao dos arquivos

Oliveira, Carissimi, Toscani

Silberchatz, Galvin, Gagne. Applied Operating System Concepts (1st Ed.) John Wiley & Sons, 2000.

Oliveira, Carissimi, Toscani

Silberchatz, Galvin, Gagne. Applied Operating System Concepts (1st Ed.) John Wiley & Sons, 2000. Sistemas Operacionais 70

Sistemas Operacionais

69

Diretrio em arvre
Generalizao do diretrio linear a dois nveis
Permite os usurios criar subdiretrios e organizar seus arquivos

Conceitos associados a um diretrio em rvore


Qualquer arquivo (ou subdiretrio) pode ser identificado de forma no ambgua atravs de seu caminho (pathname)
Conceito de diretrio corrente, caminho absoluto e caminho relativo

Possui um diretrio raiz (master)

Diretrio corrente (diretrio de trabalho):


Qualquer n da rvore
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Caminho absoluto
Quando se referencia um arquivo a partir da raiz da arvre ! e.g.: /spell/mail/prt/first
Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Caminho relativo
Quando se referencia um arquivo a partir do diretrio corrente ! e.g.: prt/first

Silberchatz, Galvin, Gagne. Applied Operating System Concepts (1st Ed.) John Wiley & Sons, 2000. Sistemas Operacionais 71

Sistemas Operacionais

72

Prs e contras da estrutura em rvore


Vantagem:
Procura eficiente por arquivos Possibilidade de agrupamento de arquivos

Diretrio estruturado em grafos acclicos


Generalizao da estrutura em rvore
Prov compartilhamento atravs de caminhos alternativos para um arquivo

Desvantagem:
Compartilhamento de arquivos
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Questo : copiar ou no arquivos a compartilhar?


Conceito de search path ! Lista de diretrios (caminhos absolutos) a pesquisar um arquivo
Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Silberchatz, Galvin, Gagne. Applied Operating System Concepts (1st Ed.) John Wiley & Sons, 2000. Sistemas Operacionais 74

Sistemas Operacionais

73

Aliases
Compartilhamento pode ser obtido atravs de aliases Link uma forma comum de alias
Ponteiro para outro arquivo ou subdiretrio

Problema da remoo de arquivos


Soluo 1:
Acesso a um link simblico dangling detectado no momento do acesso ao arquivo (no resolvido para nome vlido)

Link uma entrada na estrutura de diretrio


Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Soluo 2:
Preservar o arquivo enquanto houver referncias a ele ! Contador de links ativos ! Lista de links

Soft link (simblico): fornece o caminho do arquivo Hard link: fornece a localizao (bloco) do arquivo no disco

Oliveira, Carissimi, Toscani

Sistemas Operacionais

75

Oliveira, Carissimi, Toscani

Remover um link implica em remover apenas a sua entrada na estrutura de diretrio, no o arquivo que aponta

Soluo 3:
No permitir compartilhamento

Sistemas Operacionais

76

Prs e contras de diretrios estruturados em grafos


Vantagem:
Compartilhamento de arquivos

Exemplos de aliases: UNIX


%ln index hlink %ln -s index slinl %ls -l -rw- - - - - - -rw- - - - - - lrwx rwx rwx
Instituto de Informtica - UFRGS

Contador de referncias 2 2 1 chavez chavez chavez chem chem chem 5228 5228 5 Mar 12 11:36 index Mar 12 11:36 hlink Mar 12 11:36 slinkindex

Desvantagem:
Estrutura mais complexa de manter Um arquivo pode possuir mais de um caminho de acesso ! e.g; Problemas para contabilizao de acessos, back-ups, etc... Remoo de um arquivo compartilhado ! Problema de dangling pointer Criao de laos atravs de aliases ! Necessita algoritmo para verificar se no cria um lao (desempenho)

Instituto de Informtica - UFRGS

Diretrio
Oliveira, Carissimi, Toscani

bloco arquivo index

Oliveira, Carissimi, Toscani

index hlink slink bloco slink

Sistemas Operacionais

77

Sistemas Operacionais

78

Exemplos de aliases: UNIX


%ln index hlink %ln -s index slinl %ls -l -rw- - - - - - -rw- - - - - - lrwx rwx rwx
Instituto de Informtica - UFRGS

Organizao de diretrios do UNIX


Baseado em parties Diretrio raiz do sistema de arquivos corresponde a uma partio especial (root) Conceito de ponto de montagem Pontos importantes:
Cada partio possui seu prprio sistema de arquivos Capacidade de integrar diferentes sistemas de arquivos em uma mesma hierarquia Sistemas de arquivos podem ser diferentes ! e.g.: ext2, FAT12, FAT32, NTFS, etc...

Contador de referncias 2 2 1 chavez chavez chavez chem chem chem 5228 5228 5 Mar 12 11:36 index Mar 12 11:36 hlink Mar 12 11:36 slinkindex
Instituto de Informtica - UFRGS
79

Diretrio
Oliveira, Carissimi, Toscani

bloco arquivo index

hlink slink

bloco slink

Oliveira, Carissimi, Toscani

index

Sistemas Operacionais

Sistemas Operacionais

80

Montagem de parties em um subdiretrio


Pontos de montagem

Partio 1 etc usr bin

Partio 2 joo maria ls

Partio 3 who Mail

Implementao de diretrios
Diretrios so arquivos especiais cujo contudo manipulado pelo sistema operacional Sendo um arquivo:
Utiliza os mesmos mecanismos de alocao, liberao e localizao de blocos do disco que arquivos comuns Possuem um descritor de arquivo

passwd

hosts so teste teste trab

trab1

trab2

etc

usr

bin

Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

passwd

hosts

joao

maria

ls

who

Mail

Duas formas bsicas de implementao de diretrios:


Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Conjunto de arquivos de descritores de arquivos Vetor de descritores

so

teste

teste

trab

trab1

trab2

Sistemas Operacionais

81

Sistemas Operacionais

82

Conjunto de arquivos de descritores de arquivos


Estrutura de diretrio corresponde a um conjunto de arquivos do tipo diretrio
Cada arquivo diretrio possui descritores de arquivos

Vetor de descritores
Uma parte do disco reservada para o armazenamento de descritores de arquivos (diretrios, regulares, etc...) Forma um diretrio nico (o vetor)
Arquivos e diretrios so identificados por sua posio nesse vetor

Instituto de Informtica - UFRGS

etc
Oliveira, Carissimi, Toscani

usr hosts

bin Descritores de arquivo

Arquivo diretrio raiz etc

Instituto de Informtica - UFRGS

raiz

Supem-se que o primeiro descritor descreve o diretrio raiz (/)


Arquivo diretrio etc passwd hosts Arquivo hosts Arquivo passwd raiz
Oliveira, Carissimi, Toscani

/ etc bin usr bin passwd hosts

passwd

etc passwd

usr hosts

Sistemas Operacionais

83

Sistemas Operacionais

84

Implementao de diretrios como tabelas


Um diretrio nada mais que uma tabela Trs implementaes mais utilizadas:
Lista no ordenada Lista ordenada Tabela de disperso (tabela hash)
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Organizao interna de uma partio


Uma partio um disco lgico Cada partio autocontida, isto , todas as informaes para acesso aos arquivos da partio esto contidas na prpria partio

Oliveira, Carissimi, Toscani

Vantages e desvantagens dessas implementaes so as tradicionais:


Simplicidade versus desempenho
Oliveira, Carissimi, Toscani

Diretrios e subdiretrios Descritores de arquivos da partio Blocos de dados Lista de blocos livres da partio

Formatao lgica corresponde a inicializao dessas estruturas de dados Normalmente um setor (bloco) especial do disco informa quais so as parties e quais parcelas do disco a partio ocupa
Sistemas Operacionais 86

Sistemas Operacionais

85

Parties primrias em um disco IDE


MBR Master Boot Record Tabela de parties Pr-boot Setor de boot Partio primria /dev/hda1
Instituto de Informtica - UFRGS Instituto de Informtica - UFRGS

Leituras complementares
R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. Editora Sagra-Luzzato, 2001.
Captulo 8, sees 8.7, 8.8 e 8.9

A. Silberchatz, P. Galvin, G. Gagne; Applied Operating System Concepts. Addison-Wesley, 2000, (1st edition).
Captulo 11
Setor de boot

Partio primria /dev/hda2


Oliveira, Carissimi, Toscani

W. Stallings; Operating Systems. (4th edition). Prentice Hall, 2001.


Captulo 12
Oliveira, Carissimi, Toscani

Partio primria /dev/hda3 Partio primria /dev/hda4


Sistemas Operacionais

Setor de boot

Setor de boot

87

Sistemas Operacionais

88