Sistemas Operacionais Toscani
-
Upload
ednaldo-dos-santos-marinho -
Category
Documents
-
view
252 -
download
4
Transcript of Sistemas Operacionais Toscani
Capítulo 12a edição
Revisão: Fev/2003
Sistemas OperacionaisIntrodução
Sistemas Operacionais 2
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Introdução
❚ O que se espera de um sistema de computação?❙ Execução de programas de usuários❙ Permitir a solução de problemas
❚ Sistema operacional é um programa colocado entre o hardware docomputador e os programas dos usuários de forma a atingir essesdois objetivos
Hardware
Sistema Operacional
Programas
Sistemas Operacionais 3
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Componentes genéricos de um sistemacomputacional (1)
❚ Hardware❙ Recursos básicos (memória, dispositivos de E/S, CPU).
❚ Sistema operacional❙ Controla e coordena o uso do hardware entre vários programas aplicativos e
usuários.❚ Programas aplicativos e de sistema
❙ Define como os recursos de hardware são empregados na solução de umproblema (compiladores, jogos, banco de dados,...)
❚ Usuários❙ Pessoas, máquinas, outros computadores,...
Sistemas Operacionais 4
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Componentes genéricos de um sistemacomputacional (2)
Usuário1
Usuário2
Usuário3
Usuárion. . .
Compilador Editor detexto
Browser Quake
Sistema operacional
Hardware
Sistemas Operacionais 5
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Sistema operacional: conceito
❚ Sistema operacional❙ Um programa que controla a execução de programas aplicativos❙ Interface entre aplicativos e o hardware
❚ Duas formas de ver um sistema operacional:❙ Alocador de recursos❙ Programa de controle
Sistemas Operacionais 6
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Objetivos do sistema operacional
❚ Tornar mais conveniente a utilização de um computador❙ “Esconder” detalhes internos de funcionamento
❚ Tornar mais eficiente a utilização de um computador❙ Gerenciamento “justo” dos recursos do sistema
❚ Facilitar a evolução do sistema (desenvolvimento, teste eatualização de novas facilidades)
Sistemas Operacionais 7
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Sistema operacional: interface entre usuário/computador
hardware
Sistema Operacional
Utilitários
Aplicativos Projetista sistema
operacional
Programador
Usuáriofinal
Sistemas Operacionais 8
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Serviços oferecidos pelo sistema operacional (1)
❚ Criação de programas❙ Editores, depuradores, compiladores
❚ Execução dos programas❙ Carga de programas em memória
❚ Acesso a dispositivos de E/S❚ Controle de acesso a arquivos❚ Acesso a recursos de sistema
❙ Proteção entre usuários
Sistemas Operacionais 9
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
❚ Contabilidade❙ Estatísticas❙ Monitoração de desempenho❙ Sinalizar upgrades necessários hardware (memória, disco, etc)❙ Tarifação de usuários
❚ Detecção de erros❙ Erros de hardware
! e.g.: erros de memória, falha em dispositivos de E/S, etc...❙ Erros de programação
! e.g.: overflow, acesso não-autorizado a posições de memória , etc...❙ Aplicação solicita recursos que o sistema operacional não pode alocar
(segurança, falta do recurso, etc)
Serviços oferecidos pelo sistema operacional (2)
Sistemas Operacionais 10
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
As diferentes “imagens” de um sistema operacional
❚ Sistema operacional na visão do usuário:❙ Imagem que um usuário tem do sistema❙ Interface oferecida ao usuário para ter acesso a recursos do sistema
! Chamadas de sistema! Programas de sistema
❚ Sistema operacional na visão de projeto❙ Organização interna do sistema operacional❙ Mecanismos empregados para gerenciar recursos do sistema
Sistemas Operacionais 11
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Chamadas de sistema
❚ Forma que programas solicitam serviços ao sistema operacional❙ Análogo a sub-rotinas
! Transferem controle para o sistema operacional invés de transferir paraoutro ponto do programa
❚ É o núcleo (kernel) do sistema operacional que implementa aschamadas de sistema❙ Existem chamadas de sistema associadas a gerência do processador, de
memória, arquivos e de entrada/saída❚ Variação: micro-kernel
❙ Serviços básicos são implementados pelo micro-kernel❙ kernel implementa demais serviços empregando esses serviços básicos
Sistemas Operacionais 12
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Programas de sistema
❚ Programas executados fora do kernel (utilitários)❚ Implementam tarefas básicas:
❙ Muitas vezes confundidos com o próprio sistema operacional! e.g. compiladores, assemblers, ligadores, etc
❙ Interpretador de comandos! Ativado sempre que o sistema operacional inicia uma sessão de trabalho
! e.g.: bash, tsch, sh, etc...! Interface gráfico de usuário (GUI)
! e.g.: Família windows, MacOs, etc...
Sistemas Operacionais 13
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Histórico de sistemas operacionais
❚ Primórdios:❙ Sistema operacional inexistente❙ Usuário é o programador e o operador da máquina❙ Alocação do recurso “computador” feito por planilha
❚ Evolução foi motivada por:❙ Melhor utilização de recursos❙ Avanços tecnológicos (novos tipos de hardware)❙ Adição de novos serviços
Sistemas Operacionais 14
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Sistemas em lote (batch)
❚ Introdução de operadores profissionais❙ Usuário não era mais o operador da máquina
❚ Job❙ Programa a ser compilado e executado, acompanhado dos dados de
execução (cartões perfurados)❙ Jobs são organizados em lote (batch)
! Necessidades semelhantes (e.g. mesmo compilador)❚ Passagem entre diferentes jobs continua sendo manual
Sistemas Operacionais 15
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Monitor residente
❚ Evolução:❙ Sequenciamento automático de jobs, transferindo o controle de um job a
outro❙ Primeiro sistema operacional (rudimentar)
❚ Monitor residente:❙ Programa que fica permanentemente em memória❙ Execução inicial❙ Controle é transferido para o job
! Cartões de controle❙ Quando o job termina, o controle retorna ao monitor❙ Centraliza as rotinas de acesso a periféricos disponibilizando aos programas
de usuário
Sistemas Operacionais 16
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Sistema batch multiprogramados (multitarefa)
❚ Monitor residente permite a execução de apenas um programa acada vez
❚ Desperdício de tempo de CPU com operações de E/S❚ Evolução:
❙ Manter diversos programas na memória ao mesmo tempo❙ Enquanto um programa realiza E/S, outro pode ser executado
CPU
E/SRequisição
E/STérmino
E/S
Desperdício CPU
tempo
RequisiçãoE/S
TérminoE/S
tempo
Multiprogramação
Sistemas Operacionais 17
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Multiprogramação
❚ Manter mais de um programa em “execução” simultaneamente❚ Duas inovações de hardware possibilitaram o surgimento da
multiprogramação❙ Interrupções
! Sinalização de eventos❙ Discos magnéticos
! Acesso randômico a diferentes jobs (programas) no disco! Melhor desempenho em acessos de leitura e escrita
Sistemas Operacionais 18
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Sistemas timesharing
❚ Tipo de multiprogramação❚ Usuários possuem um terminal
❙ Interação com o programa em execução❚ Ilusão de possuir a máquina dedicada a execução de seu programa
❙ Divisão do tempo de processamento entre usuários❙ Tempo de resposta é importante
Sistemas Operacionais 19
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Sistemas monousuário e multiusuário
❚ Sistemas monousuário❙ Projetados para serem usados por um único usuário
! e.g.; MS-DOS, Windows 3.x, Windows 9x, Millenium
❚ Sistemas multiusuário❙ Projetados para suportar várias sessões de usuários em um computador
! e.g.; Windows NT (2000), UNIX
Sistemas Operacionais 20
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Sistemas multitarefa e monotarefa
❚ Sistemas monotarefa❙ Capazes de executar apenas uma tarefa de cada vez
! e.g.; MS-DOS
❚ Sistemas multitarefas:❙ Capazes de executar várias tarefas simultaneamente❙ Existem dois tipos de sistemas multitarefa:
! Não preemptivo (cooperativo)! e.g.; Windows 3.x, Windows9x (aplicativos 16 bits)
! Preemptivo! e.g.; Windows NT, OS/2, UNIX, Windows9x (aplicativos 32 bits)
Sistemas Operacionais 21
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Sistemas distribuídos (1)
❚ Distribuir a realização de uma tarefa entre vários computadores❚ Sistema distribuído:
❙ Conjunto de computadores autônomos interconectados de forma a possibilitara execução de um serviço
❙ Existência de várias máquinas é transparente❙ Software fornece uma visão única do sistema❙ Palavra-chave: transparência
« A distributed system is one in which the failure of a computer you didn’t evenknow existed can render your own computer unusable » Leslie Lamport.
Sistemas Operacionais 22
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Sistemas distribuídos (2)
❚ Sistemas fracamente acoplados (loosely coupled system)❙ Máquinas independentes
! Cada máquina possui seu próprio sistema operacional❙ Comunicação é feita através de troca de mensagens entre processos
❚ Vantagens❙ Compartilhamento de recursos❙ Balanceamento de carga❙ Aumento confiabilidade
Sistemas Operacionais 23
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Sistemas paralelos (1)
❚ Máquinas multiprocessadoras possuem mais de um processador❚ Sistemas fortemente acoplados (tightly coupled system)
❙ Processadores compartilham mémoria e relógio comuns❙ Comunicação é realizada através da memória
❚ Vantagens:❙ Aumento de throughput (número de processos executados)❙ Aspectos econômicos❙ Aumento de confiabilidade
! Graceful degradation! Sistemas fail-soft
Sistemas Operacionais 24
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Sistemas paralelos (2)
❚ Symmetric multiprocessing (SMP)❙ Cada processador executa uma cópia idêntica do sistema operacional❙ Vários processos podem ser executados em paralelo sem perda de
desempenho para o sistema❙ A maioria dos sistemas operacionais atuais suportam SMP através do
conceito de multithreading❚ Asymmetric multiprocessing
❙ Cada processador executa uma tarefa específica:! e.g,; processador mestre para alocação de tarefas a escravos
Sistemas Operacionais 25
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Sistemas de tempo real
❚ Empregado para o controle de procedimentos que devemresponder dentro de um certo intervalo de tempo❙ e.g. experimentos científicos, tratamento de imagens médicas, controle de
processos, etc❚ Noção de tempo real é dependente da aplicação
❙ Milisegundos, minuto, horas, etc❚ Dois tipos:
❙ Hard real time! Tarefas críticas são completadas dentro de um intervalo de tempo
❙ Soft real time! Tarefa crítica tem maior prioridade que as demais
Sistemas Operacionais 26
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Leituras complementares
❚ R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. EditoraSagra-Luzzato, 2001.❙ Capítulo 1
❚ A. Silberchatz, P. Galvin, P. Gagne; Applied Operating SystemConcepts. Addison-Wesley, 2000, (1a edição).❙ Capítulo 1
❚ W. Stallings; Operating Systems. (4th edition). Prentice Hall, 2001.❙ Capítulo 2
Capítulo 22a edição
Revisão: Fev/2003
Sistemas OperacionaisMultiprogramação
Sistemas Operacionais 2
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Multiprogramação
❚ Tornar mais eficiente o aproveitamento dos recursos do computador❚ Execução simultânea* de vários programas
❙ Diversos programas são mantidos na memória❙ Conceitos necessários a multiprogramação
! Processo! Interrupção! Proteção entre processos
❚ Próprio sistema operacional é um programa
Sistemas Operacionais 3
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
O conceito de processo (1)
❚ Diferenciação entre o programa e sua execução❚ Programa:
❙ Entidade estática e permanente! Seqüência de instruções! Passivo sob o ponto de vista do sistema operacional
❚ Processo:❙ Entidade dinâmica e efêmera
! Altera seu estado a medida que avança sua execução❙ Composto por programa (código), dados e contexto (valores)
Sistemas Operacionais 4
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
O conceito de processo (2)
❚ Abstração que representa um programa em execução❚ Diferentes instâncias
❙ Um programa pode ter várias instâncias em execução, i.e., diferentesprocessos
❙ Mesmo código (programa) porém dados e momentos de execução (contexto)diferentes
❚ Forma pela qual o sistema operacional “enxerga” um programa epossibilita sua execução
❚ Processos executam:❙ Programas de usuários❙ Programas do próprio sistema operacional (daemons)
Sistemas Operacionais 5
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Ciclos de vida de um processo
❚ Criação❚ Execução❚ Término
Sistemas Operacionais 6
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Ciclos de vida de um processo: criação
❚ Momento da execução❚ Chamadas de sistemas
❙ e.g.: fork, spawn, etc❚ Podem ser associados a uma sessão de trabalho
❙ e.g.: login de usuários: login + senha → shell (processo)❚ Identificado por um número único (PID)
Sistemas Operacionais 7
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Ciclos de vida de um processo: execução (1)
❚ Processos apresentam dois ciclos básicos de operação❙ Ciclo de processador
! Tempo que ocupa a CPU❙ Ciclo de entrada e saída
! Tempo em espera pela conclusão de um evento (e.g. E/S)❚ Primeiro ciclo é sempre de processador
❙ Trocas de ciclos por:! CPU " E/S: chamada de sistema! E/S " CPU: ocorrência de evento (interrupção)
Sistemas Operacionais 8
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Ciclos de vida de um processo: execução (2)
❚ Processos❙ CPU bound
! Ciclo de processador >> ciclo de E/S❙ I/O bound
! Ciclo de E/S >> ciclo de processador❚ Sem quantificação exata❚ Situação ideal:
❙ Misturar processos CPU bound com I/O bound! Benefícios a nível de escalonamento
Sistemas Operacionais 9
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Ciclos de vida de um processo: término
❚ Final de execução (normal)❚ Por erros
❙ e.g: proteção, aritméticos, E/S, tentativa de execução de instruções inválidas,falta de memória, exceder tempo de limite
❚ Intervenção de outros processos (kill)❚ Log off de usuários
Sistemas Operacionais 10
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Relacionamento entre processos (1)
❚ Processos independentes❙ Não apresentam relacionamentos com outros processos
❚ Grupo de processos❙ Apresentam algum tipo de relacionamento
! e.g. filiação❙ Podem compartilhar recursos❙ Definição de hierárquia
Sistemas Operacionais 11
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Relacionamento entre processos (2)
❚ Hierárquia de processos:❙ Processo criador é processo pai❙ Processo criado é processo filho
❚ Representação através de uma árvore❙ Evolução dinâmica
❚ Semântica associada: O que fazer na destruição de um processo?❙ Toda a descendência “morre”❙ A descendência é herdada pelo processo “vô”❙ Postergar a destruição efetiva do processo pai até o final de todos processos
filhos
Sistemas Operacionais 12
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Estados de um processo
❚ Após criado o processo necessita entrar em ciclo de processador❚ Hipotéses:
❙ Processador não está disponível❙ Vários processos sendo criados
❚ Que fazer?❙ Criação de uma fila de aptos (p/ espera pelo processador)
Sistemas Operacionais 13
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Apto ExecutandoCriação
Dispatcher
Pausa
Término
Modelo simplificado a dois estados
❚ Manter uma fila de processos aptos a executar❙ Esperando pelo processador ficar livre
❚ Escalonador (dispatcher):❙ Atribui o processador a um processo da fila de aptos❙ Pode prevenir um único processo de monopolizar o processador
Sistemas Operacionais 14
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Limitação do modelo simplificado
❚ Causas para um processo não executar❙ Esperando pelo processador
! Aptos para executar❙ Esperando pela ocorrência de eventos externos
! Bloqueado❚ Escalonador não pode selecionar um processo bloqueado, logo
modelo a dois estados não é suficiente❙ Criação de novos estados
Sistemas Operacionais 15
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Modelo de 5 estados (1)
❚ Executando (Running)❚ Apto (Ready)❚ Bloqueado (Blocked)❚ Criação (New)❚ Destruição (Exit)
Sistemas Operacionais 16
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Criação Apto Executando Destruição
Bloqueado
Ocorrênciade evento
(interrupçao)
Seleção Término
Tempo/voluntário
Chamada desistema
Modelo a 5 estados (2)
❚ Necessidade de filas
Sistemas Operacionais 17
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Processos suspensos
❚ Processador é mais rápido que operações de E/S❙ Possibilidade de todos processos estarem bloqueados esperando por E/S
❚ Liberar memória ocupada por estes processos❙ Transferidos para o disco (swap)
❚ Estado bloqueado assume duas situações:❙ Bloqueado com processo em memória❙ Bloqueado com processo no disco
❚ Necessidade de novos estados❙ Bloqueado, suspenso (Blocked, suspend)❙ Apto, suspenso (Ready, suspend)
Sistemas Operacionais 18
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Razões para suspender um processo
❚ Swapping:❙ SO necessita liberar memória para executar um novo processo
❚ Solicitação do usuário❙ Comportamento típico de depuradores
❚ Temporização:❙ Processo deve ter sua execução interrompida por um certo período de tempo
❚ Processo suspender outro processo❙ e.g. sincronização
Sistemas Operacionais 19
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
CriaçãoAdmissão Admissão
Suspenso
Seleção
Tempo/voluntário
Apto,suspenso Apto
BloqueadoBloqueado,suspenso
Event(ocorr.)
Ativo
Evento(ocorr.)
Ativo
Suspenso
Executando Destruição
Evento(espera)
Diagrama de estados de processos
Sistemas Operacionais 20
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Suporte de hardware à multiprogramação
❚ O compartilhamento de recursos comuns implica em garantir que aexecução incorreta de um programa não influencie a execução deoutro programa
❚ A implementação da multiprogramação explora características dohardware dos processadores
❚ Mecanismos básicos:❙ Dois modos de operação❙ Interrupção❙ Proteção de periféricos, memória e processador
Sistemas Operacionais 21
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Modos de operação do processador
❚ Arquitetura de processadores oferecem mecanismos paradiferenciar pelo menos dois modos diferentes de operação❙ Modo supervisor (privilegiado/protegido)
! Possibilita a execução de todas as instruções do processador! Modo de execução sistema operacional
❙ Modo usuário! Certas instruções (privilegiadas) não podem ser executadas! Modo de execução dos processos usuários
❚ Chaveamento de modos:❙ Interrupção (modo usuário → modo protegido)❙ Instrução (modo protegido → modo usuário)
Sistemas Operacionais 22
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Mecanismo de interrupção (1)
❚ Sinaliza a ocorrência de algum evento❚ Provoca a execução de uma rotina especial
❙ Tratador de interrupção❚ Ciclo de execução de uma interrupção
❙ Prepara a transferência de controle para o tratador (salvamento do contextode execução)
❙ Desvia controle para tratador❙ Retorna execução (restaura contexto de execução)
Sistemas Operacionais 23
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Mecanismo de interrupção (2)
❚ Tipos de interrupção❙ Hardware: ocorrência de evento externo❙ Software: execução de uma instrução específica❙ Exceção: erros de execução (overflow, undeflow...)
❚ Identificadas por um número❙ Vetor de interrupção
❚ Prioridades❚ Instruções privilegiadas
Sistemas Operacionais 24
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Proteção de periféricos
❚ Instruções de E/S são privilegiadas❚ Como processos usuários realizam operações de E/S já que estas
são instruções privilegiadas?❙ Chamadas de sistema
Sistema Operacional Instrução retorno
Interrupção de softwareProcessousuário
Modoprotegido
Modousuário
Sistemas Operacionais 25
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Chamada de sistema
❚ Método empregado para um processo usuário solicitar serviços aosistema operacional.❙ Normalmente baseada em interrupções de software (traps)❙ Aciona a rotina de tratamento de interrupção
! Identifica serviço requisitado! Verifica validade dos parâmetros! Executa o serviço! Retorna ao processo do usuário
Sistemas Operacionais 26
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Proteção de memória (1)
❚ Necessário para evitar que usuário corrompa espaços de memórianão-pertencentes a seus processos
❚ Baseado em facilidades da arquitetura do processador:❙ Registrador de base❙ Registrador de limite
❚ Faixa de endereçamento fora da área delimitada pelos registradoresbase e limite é protegida
❚ Possível proteger dispositivos de E/S quando a técnica E/Smapeada em memória é empregada
Sistemas Operacionais 27
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Proteção de memória (2)
≥ <V V
F FInterrupção
(acesso ilegal)memória
CPUEnd.
Sistemaoperacional
Usuário 1
Usuário 2
Usuário 3Reg. de limiteReg. de base
Sistemas Operacionais 28
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Proteção do processador
❚ Para garantir a execução do sistema operacional uma interrupçãode tempo (timer) ocorre periodicamente
❚ Interrupção de tempo:❙ Empregada para implementar multiprogramação❙ Mantém contabilização de tempo para o sistema operacional (relógio)
❚ Instruções relacionadas com a programação do tempo sãoprivilegiadas
Sistemas Operacionais 29
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Leituras complementares
❚ R. Oliveira, A. Carissimi, S. Toscani Sistemas Operacionais EditoraSagra-Luzzato, 2001.❙ Capítulo 2.
❚ A. Silberchatz, P. Galvin Operating System Concepts. 4th edition.Addison-Wesley.❙ Seções 2.1, 2.2, 2.5, 4.1, 4.2 e 4.3
Capítulo 32a edição
Revisão: Fev/2003
Sistemas OperacionaisProgramação
concorrente
Sistemas Operacionais 2
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Introdução
❚ Programa executado por apenas um processo é dito de programaseqüêncial❙ Existe apenas um fluxo de controle
❚ Programa concorrente é executado por diversos processos quecooperam entre si para realização de uma tarefa (aplicação)❙ Existem vários fluxos de controle❙ Necessidade de interação para troca de informações (sincronização)
❚ Emprego de termos❙ Paralelismo real: só ocorre em máquinas multiprocessadoras❙ Paralelismo “aparente” (concorrência): máquinas monoprocessadoras❙ Execução simultânea versus estar “em estado de execução” simultâneamente
Sistemas Operacionais 3
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Programação concorrente
❚ Composta por um conjunto de processos seqüenciais que seexecutam concorrentemente
❚ Processos disputam recursos comuns❙ e.g. variáveis, periféricos, etc...
❚ Um processo é dito de cooperante quando é capaz de afetar, ou serafetado, pela execução de outro processo
Sistemas Operacionais 4
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Motivação para programação concorrente
❚ Aumento de desempenho:❙ Permite a exploração do paralelismo real disponível em máquinas
multiprocessadoras❙ Sobreposição de operações de E/S com processamento
❚ Facilidade de desenvolvimento de aplicações que possuem umparalelismo intrínsico
Sistemas Operacionais 5
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Desvantagens da programação concorrente
❚ Programação complexa❚ Aos erros “comuns” se adicionam erros próprios ao modelo
❙ Diferenças de velocidade relativas de execução dos processos❚ Aspecto não-determinístico
❙ Díficil depuração
Sistemas Operacionais 6
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Especificação da paralelismo
❚ Necessidade de especificar o paralelismo definindo:❙ Quantos processos participarão❙ Quem fará o que❙ Dependência entre as tarefas (Grafo)
❚ Notação para expressar paralelismo❙ fork/wait (fork/join)❙ parbegin/parend
Sistemas Operacionais 7
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Fork/wait
Processo B Processo C
Processo A
fork B;fork C;
...wait C;
wait B;
Bloqueado
Sistemas Operacionais 8
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Parbegin/parend
❚ Comandos empregados para definir uma seqüência de comandos aserem executados concorrentemente
❚ A primitiva parend funciona como um ponto de sincronização(barreira)
Processo B
Processo C
Processo A
ParbeginTarefa B;Tarefa C;Parend
Bloqueado
Sistemas Operacionais 9
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Comentários gerais
❚ Primitivas de mais alto nível para descrição do paralelismo do tipoparbegin/parend podem ser traduzidas por pré-compiladores e/ouinterpretadores para primitivas de mais baixo nível
❚ Processos paralelos podem ser executados em qualquer ordem❙ Duas execuções consecutivas do mesmo programa, com os mesmos dados
de entrada, podem gerar resultados diferentes! Não é necessariamente um erro
❙ Possibilidade de forçar a execução em uma determinada ordem
Sistemas Operacionais 10
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
O problema do compartilhamento de recursos
❚ A programação concorrente implica em um compartilhamento derecursos❙ Variáveis compartilhadas são recursos essenciais para a programação
concorrente❚ Acessos a recursos compartilhados devem ser feitos de forma a
manter um estado coerente e correto do sistema
Sistemas Operacionais 11
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Exemplo: relação produtor-consumidor (1)
❚ Relação produtor-consumidor é uma situação bastante comum emsistemas operacionais
❚ Servidor de impressão:❙ Processos usuários produzem “impressões”❙ Impressões são organizadas em uma fila a partir da qual um processo
(consumidor) os lê e envia para a impressora
P1
P2
Pn
PC
Produtores
Consumidor
Sistemas Operacionais 12
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Exemplo: relação produtor-consumidor (2)
❚ Suposições:❙ Fila de impressão é um buffer circular❙ Existência de um ponteiro (in) que aponta para uma posição onde a
impressão é inserida para aguardar o momento de ser efetivamente impressa❙ Existência de um ponteiro (out) que aponta para a impressão que está sendo
realizada
5 4 3 2 1
P1
Pd
outinP2
Sistemas Operacionais 13
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
outin
7 6 5 4 3 2 1
P1
Pd
P2
Exemplo: relação produtor-consumidor (3)
❚ Seqüência de operações:❙ 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)
❚ Estado incorreto:❙ Impressão de P1 é perdida❙ Na posição 6 não há uma solicitação válida de impressão
Sistemas Operacionais 14
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
O problema da seção crítica
❚ Corrida (race condition)❙ Situação que ocorre quando vários processos manipulam o mesmo conjunto
de dados concorrentemente e o resultado depende da ordem em que osacessos são feitos
❚ Seção crítica:❙ Segmento de código no qual um processo realiza a alteração de um recurso
compartilhado
Sistemas Operacionais 15
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Necessidade da programação concorrente
❚ Eliminar corridas❚ Criação de um protocolo para permitir que processos possam
cooperar sem afetar a consistência dos dados❚ Controle de acesso a seção crítica:
❙ Garantir a exclusão mútua
Exit_section
Entry_section
Seção crítica
Sistemas Operacionais 16
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Propriedades para exclusão mútua
❚ Regra 1 - Exclusão mútua❙ Dois ou mais processos não podem estar simultâneamente em uma seção
crítica❚ Regra 2 - Progressão
❙ Nenhum processo fora da seção crítica pode bloquear a execução de umoutro processo
❚ Regra 3 - Espera limitada❙ Nenhum processo deve esperar infinitamente para entrar em uma seção
crítica❚ Regra 4
❙ Não fazer considerações sobre o número de processadores, nem de suasvelocidades relativas
Sistemas Operacionais 17
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Obtenção da exclusão mútua
❚ Desabilitação de interrupções❚ Variáveis especiais do tipo lock❚ Alternância de execução
Sistemas Operacionais 18
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Desabilitação de interrupções
❚ Não há troca de processos com a ocorrência de interrupções detempo ou de eventos externos
❚ Desvantagens:❙ Poder demais para um usuário❙ Não funciona em máquinas multiprocessadoras (SMP) pois apenas a CPU
que realiza a instrução é afetada (violação da regra 4)
Seção crítica
CLI ;Desliga interrupções
STI ;Ativa interrupções
Sistemas Operacionais 19
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Variáveis do tipo lock
❚ Criação de uma variável especial compartilhada que armazena doisestados:❙ Zero: livre❙ 1: ocupado
❚ Desvantagem:❙ Apresenta Race conditions
While (lock==1);lock=1;
lock=0;Seção crítica
Sistemas Operacionais 20
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Alternância
❚ Desvantagem❙ Teste contínuo do valor da variável compartilhada provoca o desperdício do
tempo do processador (busy waiting)❙ Viola a regra 2 se a parte não crítica de um processo for muito maior que a do
outro
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 21
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Implementação de mecanismos para exclusão mútua
❚ Algorítmica:❙ Combinação de variáveis do tipo lock e alternância (Dekker 1965, Peterson
1981)❚ Primitivas:
❙ Mutex❙ Semáforos❙ Monitor
Sistemas Operacionais 22
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Mutex
❚ Variável compartilhada para controle de acesso a seção crítica❚ CPU são projetadas levando-se em conta a possibilidade do uso de
múltiplos processos❚ Inclusão de duas instruções assembly para leitura e escrita de
posições de memória de forma atômica.❙ CAS: Compare and Store
! Copia o valor de uma posição de memória para um registrador interno eescreve nela o valor 1
❙ TSL: Test and Set Lock! Lê o valor de uma posição de memória e coloca nela um valor não zero
Sistemas Operacionais 23
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
enter_region: tst register,flagcmp register,0jnz enter_regionret
leave_region: mov flag,0ret
lock(flag);
unlock(flag);
Seção crítica
Primitivas lock e unlock
❚ O emprego de mutex necessita duas primitivas
Sistemas Operacionais 24
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Primitivas lock e unlock: problemas (1)
❚ Busy waiting (spin lock)❚ Confiar no processo (programador)
! Fazer o lock e o unlock corretamente❚ Inversão de prioridades
lock(m)
lock(m)
unlock(m)
Outros processos
Troca de processo
Bloqueado fazendobusy wait
Sistemas Operacionais 25
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Primitivas lock e unlock: problemas (2)
❚ Solução:❙ Bloquear o processo ao invés de executar busy waiting❙ Baseado em duas novas primitivas
! sleep: Bloqueia um processo a espera de uma sinalização! wakeup: Sinaliza um processo
Sistemas Operacionais 26
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Semáforos
❚ Mecanismo proposto por Dijkstra (1965)❚ Duas primitivas:
❙ P (Proberen, testar)❙ V (Verhogen, incrementar)
❚ Semáforo é um tipo abstrato de dados:❙ Um valor inteiro❙ Fila de processo
Sistemas Operacionais 27
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Implementação de semáforos
❚ Primitivas P e V
❚ Necessidade de garantir a atomicidade nas operações deincremento (decremento) e teste da variável compartilhada s.valor❙ Uso de mutex
❚ Dependendo dos valores assumidos por s.valor❙ Semáforos binários: s.valor = 1❙ Semáforos contadores: s.valor = n
P(s): s.valor = s.valor - 1 Se s.valor < 0 { Bloqueia processo (sleep); Insere processo em S.fila; }
V(s): s.valor = s.valor + 1 Se S.valor <=0 { Retira processo de S.fila; Acorda processo (wakeup); }
Sistemas Operacionais 28
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Semáforos versus mutex
❚ Primitivas lock e unlock são necessariamente feitos por um mesmoprocesso❙ Acesso a seção crítica
❚ Primitivas P e V podem ser realizadas por processos diferentes❙ Gerência de recursos
Sistemas Operacionais 29
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Troca de mensagens
❚ Primitivas do tipo mutex e semáforos são baseadas nocompartilhamento de variáveis❙ Necessidade do compartilhamento de memória❙ Sistemas distribuídos não existe memória comum
❚ Novo paradigma de programação❙ Troca de mensagens
❚ Primitivas❙ send e receive❙ RPC (Remote Procedure Call)
Sistemas Operacionais 30
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Processo BProcesso A
send(dst, msg)
Bloqueado recv(src, msg)
Primitivas send e receive (1)
❚ Diferentes comportamentos em função da semântica das primitivassend e receive
❚ Funcionamento básico:
Processo BProcesso A
recv(src, msg)
Bloqueado send(dst, msg)
Sistemas Operacionais 31
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Primitivas send e receive (2)
❚ Bibliotecas de comunicação❙ e.g. sockets, MPI, PVM, etc.
❚ Grande variedade de funções❙ Ponto a ponto❙ Em grupo❙ Primitivas para testar status e andamento de uma comunicação❙ Diferentes semânticas
! Bloqueante! Não bloqueante! Rendez vous
Sistemas Operacionais 32
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Remote Procedure Call (1)
❚ Base de comunicação do DCE❚ Composto por :
❙ núcleo executivo (run time)❙ Interfaces para a geração de aplicações (Interface de programação)
Sistemas Operacionais 33
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Remote Procedure Call (2)
Call S
Send
Cliente Servidor
Recv
Unpack
return
Pack Pack
SendRecv
UnpackStub (cliente) Stub (servidor)
❚ Linguagem própria para descrever funções (chamada/definição)❚ Compilador (rpcgen) para gerar stubs e ligar com programa aplicativo❚ comunicação é toda gerada pelo run-time de forma transparente
Run timewait
Call S return
Sistemas Operacionais 34
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Deadlock
❚ Situação na qual um, ou mais processos, fica impedido deprosseguir sua execução devido ao fato de cada um estaraguardando acesso a recursos já alocados por outro processo
Sistemas Operacionais 35
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Condições para ocorrência de deadlocks (1)
❚ Para que ocorra um deadlock quatro condições devem sersatisfeitas simultâneamente:
1. Exclusão mútua:❙ Todo recurso ou está disponível ou está atribuído a um único processo
2. Segura/espera:❙ Os processo que detem um recurso podem solicitar novos recursos
Sistemas Operacionais 36
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
3. Recurso não-preemptível:❙ Um recurso concedido não pode ser retirado de um processo por outro❙
4. Espera circular:❙ existência de um ciclo de 2 ou mais processos cada um esperando por um
recurso já adquirido (em uso) pelo próximo processo no ciclo
Condições para ocorrência de deadlocks (2)
A
R1 R2
B
solicitação
em uso
em uso
solicitação
Sistemas Operacionais 37
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Estratégias para tratamento de deadlocks
❚ Ignorar❚ Deteção e recuperação
❙ Monitoração dos recursos liberados e alocados❙ Eliminação de processos
❚ Impedir ocorrência cuidando na alocação de recursos❙ Algoritmo do banqueiro
❚ Prevenção (por construção)❙ Evitar a ocorrência de pelo menos uma das quatro condições necessárias
Sistemas Operacionais 38
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Leituras complementares
❚ R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. EditoraSagra-Luzzato, 2001.❙ Capítulo 3
❚ A. Silberchatz, P. Galvin, G. Gagne; Applied Operating SystemConcepts. Addison-Wesley, 2000, (1a edição).❙ Capítulo 6 e 7
❚ W. Stallings; Operating Systems. (4th edition). Prentice Hall, 2001.❙ Capítulo 5 e 6
Capítulo 42a edição
Revisão: Fev/2003
Sistemas OperacionaisGerência do processador
Sistemas Operacionais 2
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Sumário
❚ Implementação do conceito de processos e threads❚ Escalonamento
❙ Escalonadores não -preemptivos❚ Escalonamento
❙ Escalonamento preemptivos
Sistemas Operacionais 3
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Introdução
❚ Multiprogramação pressupõe a existência simultânea de váriosprocessos disputando o processador
❚ Necessidade de “intermediar” esta disputa de forma justa❙ Gerência do processador
! Algoritmos de escalonamento❚ Necessidade de “representar” um processo
❙ Implementação de processos! Estruturas de dados
Sistemas Operacionais 4
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Representação de processo
❚ Processo é um programa em execução❙ Áreas na memória para código, dados e pilha
❚ Possui uma série de estados (apto, executando, bloqueado, etc)para representar sua evolução no tempo, implica em:❙ Organizar os processos nos diferentes estados❙ Determinar eventos que realizam a transição entre os estados❙ Determinar quando um processo tem direito a “utilizar” o processador
❚ Necessário manter informações a respeito do processo❙ e.g.: prioridades, localização em memória, estado atual, direitos de acesso,
recursos que emprega, etc.
Sistemas Operacionais 5
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Bloco descritor de processo
❚ Abstração de processo é implementado através de uma estrutura dedados❙ Bloco descritor de processos (Process Control Block - PCB)
❚ Informações normalmente presentes em um descritor de processo❙ Prioridade❙ Localização e tamanho na memória principal❙ Identificação de arquivos abertos❙ Informações de contabilidade (tempo CPU, espaço de memória, etc)❙ Estado do processador (apto, executando, bloqueando, etc)❙ Contexto de execução❙ Apontadores para encadeamento dos próprios descritores de processo❙ etc
Sistemas Operacionais 6
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Os processos e as filas
❚ Um processo sempre faz parte de algumafila
❚ Geralmente a própria estrutura dedescritores de processos são empregadascomo elementos dessas filas:❙ Fila de livres
! Número fixo (máximo) de processos! Alocação dinâmica
❙ Fila de aptos❙ Fila de bloqueados
❚ Eventos realizam transição de uma fila aoutra
livres
Aptos
Executando
Bloqueado
0
1 23
4
5
Sistemas Operacionais 7
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Exemplo de bloco descritor de processos (1)
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];
❚ Estrutura de dados representado bloco descritor de processo
Sistemas Operacionais 8
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Exemplo de bloco descritor de processos (2)
struct desc_proc *desc_livre;struct desc_proc *espera_cpu;struct desc_proc *usando_cpu;struct desc_proc *bloqueados;
/* Inicialização das estruturas de controle */
for (i=0; i < MAX_PROCESS; i++)tab_desc[i].prox = &tab_desc[i+1];
tab_desc[i].prox = NULL;desc_livre = &tab_desc[0];
espera_cpu= NULL;usando_cpu= NULL;bloqueado = NULL;
❚ Estruturas de filas e inicialização
Sistemas Operacionais 9
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Tarefas típicas no PCB durante o ciclo de vida
❚ Criação❙ Alocação de áreas de memória para código, dados e pilha e de estruturas de
dados do sistema operacional❙ Inicialização do descritor de processo e inserção em filas do sistema
❚ Execução❙ Realizam das instruções da área de código
! Interação com sistema operacional via chamadas de sistema❙ Atualização do bloco descritor de processo
! Retratar estados e recursos que evoluem dinamicamente com a execução❙ Suscetível ao acionamento do escalonador/dispatcher em resposta a eventos
❚ Término❙ Liberação de recursos e estruturas de dados utilizadas
Sistemas Operacionais 10
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
O modelo de processo
❚ Processo é representado por:❙ Espaço de endereçamento: área p/ armazenamento da imagem do processo❙ Estruturas internos do sistema (tabelas internas, áreas de memória, etc)
! Mantidos no descritor de processos❙ Contexto de execução (pilha, programa, dados, etc...)
Pilha
PilhaDados
Processo
DadosCódigoSP PCEspaço de
usuário
Espaço de sistema
Sistemas Operacionais 11
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Exemplo: modelo de processo Unix (linux)
Texto
Dados inicializadosBSSData
Dados não inicializados
Heap
Pilha
0x0000000
0xFFFFFFFFÁrea dados (sisop)
4 Gbytes
Código
Stack Pointer (SP)
Program Counter (PC)
Sistemas Operacionais 12
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Pilha
PilhaDados
Processo 1
DadosCódigoSPPCEspaço de
usuário
Espaço de sistema
Pilha
PilhaDados
Processo n
DadosCódigoSPPC...
Vários processos
❚ Um fluxo de controle por processo (thread)❚ Troca de processo implica em atualizar estruturas de dados internas
do sistema operacional❙ e.g.; contexto, espaço de endereçamento, etc...
Sistemas Operacionais 13
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Vários fluxos em um único processo
❚ Um fluxo de instrução é implementadoatravés do contador de programa (PC) ede uma pilha (SP)
❚ Estruturas comuns compartilhadas❙ Código❙ Dados❙ Descritor de processo
❚ Conceito de thread
Pilha
PilhaDados
Processo 1
DadosCódigoSP2
PC1Espaço de usuário
Espaço de sistema
SP1
SP3 PC3
PC2
Sistemas Operacionais 14
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Multiprogramação pesada
❚ Custos de gerenciamento do modelo de processos❙ Criação do processo❙ Troca de contextos❙ Esquemas de proteção, memória virtual, etc
❚ Custos são fator Limitante na interação de processos❙ Unidade de manipulação é o processo (arquivo)❙ Mecanismos de IPC (Inter Process Communications) necessitam tratamento
de estruturas complexas que representam o processo e sua propriedades❚ Solução
❙ “Aliviar” os custos, ou seja, reduzir o “peso” das estruturas envolvidas
Sistemas Operacionais 15
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Multiprogramação leve
❚ Fornecido pela abstração de um fluxo de execução (thread)❙ Basicamente o conceito de processo
❚ Unidade de interação passa a ser função❚ Contexto de uma thread
❙ Registradores (Pilha, apontador de programa, registradores de uso geral)❚ Comunicação através do compartilhamento direto da área de dados
Sistemas Operacionais 16
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Implementação de threads
❚ Threads são implementadas através de estruturas de dadossimilares ao descritor de processo❙ Descritor de threads❙ Menos complexa (leve)
❚ Podem ser implementadas em dois níveis diferentes:❙ Espaço de usuário❙ Espaço de sistema
Sistemas Operacionais 17
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Modelos de processos single Threaded e multithreaded
ThreadControlBlock
UserStack
UserStack
KernelStack
KernelStack
UserAddressSpace
UserAddressSpace
ProcessControlBlock
ProcessControlBlock
ThreadSingle-Threaded Multithreaded
ThreadControlBlock
UserStack
KernelStack
Thread
ThreadControlBlock
UserStack
KernelStack
Thread
Sistemas Operacionais 18
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Modelo N:1
❚ Threads a nível de usuário❙ User level threads ou ainda process scope
❚ Todas as tarefas de gerenciamento de threads é feito a nível daaplicação❙ Threads são implementadas por uma biblioteca que é ligada ao programa❙ Interface de programação (API) para funções relacionadas com threads
! e.g; criação, sincronismo, término, etc❚ O sistema operacional não “enxerga” a presença das threads❚ A troca de contexto entre threads é feita em modo usuário pelo
escalonador embutido na biblioteca❙ Não necessita privilégios especiais❙ Escalonamento depende da implementação
Sistemas Operacionais 19
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Implementação modelo N:1
Pilha
PilhaDados
Processo
DadosCódigo
Espaço de usuário
Espaço de sistema
SPPC
PC1 SP1
PC2 SP2
PCn SPn
Biblioteca
Escalonadorbiblioteca
…
Escalonadorsistema operacional
CPU
CPU virtual
Sistemas Operacionais 20
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Vantagens e desvantagens
❚ Vantagens:❙ Sistema operacional divide o tempo do processador entre os processos
«pesados» e, a biblioteca de threads divide o tempo do processo entre asthreads
❙ Leve: sem interação/intervenção do sistema operacional❚ Desvantagens:
❙ Uma thread que realiza uma chamada de sistema bloqueante leve aobloqueio de todo o processo
! e.g.; operaçoes de entrada/saída❙ Não explora paralelismo em máquinas multiprocessadoras
Sistemas Operacionais 21
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Modelo 1:1
❚ Threads a nível do sistema❙ kernel level threads ou ainda system scope
❚ Resolver desvantagens do modelo N:1❚ O sistema operacional “enxerga” as threads
❙ Sistema operacional mantém informações sobre processos e sobre threads❙ Troca de contexto necessita a intervenção do sistema operacional
❚ O conceito de threads é considerado na implementação do sistemaoperacional
Sistemas Operacionais 22
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Implementação modelo 1:1
Pilha
PilhaDados
Processo
DadosCódigo
Espaço de usuário
Espaço de sistema
SPPC
PC1 SP1
PC2 SP2
PCn SPn
…
Escalonadorsistema operacional
CPU
CPU virtual
CPU virtual
CPU virtual
Sistemas Operacionais 23
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Vantagens e desvantagens
❚ Vantagens:❙ Explora o paralelismo de máquinas multiprocessadoras (SMP)❙ Facilita o recobrimento de operações de entrada/saída por cálculos
❚ Desvantagens:❙ Implementação “mais pesada” que o modelo N:1
Sistemas Operacionais 24
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Modelo M:N
❚ Abordagem que combina os modelos N:1 e 1:1❚ Oferece dois níveis de escalonamento
❙ Nível usuário: threads sobre unidade de escalonamento❙ Nível sistema: unidades de escalonamento sobre processador
❚ Dificuldade é parametrizar M e N
Sistemas Operacionais 25
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Implementação modelo M:N
Pilha
PilhaDados
Processo
DadosCódigo
Espaço de usuário
Espaço de sistema
SPPC
PC1 SP1
PC2 SP2
PCn SPn
Escalonadorsistema operacional
CPU
CPU virtual
CPU virtual
Escalonadorbiblioteca
…
biblioteca
Sistemas Operacionais 26
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Porque utilizar threads ?
❚ Permitir a exploração do paralelismo real oferecido por máquinasmultiprocessadores (modelo M:N ou 1:1)
❚ Aumentar número de atividades executadas por unidade de tempo(throughput)
❚ Diminuir tempo de resposta❙ Possibilidade de associar threads a dispositivos de entrada/saída
❚ Sobrepor operações de cálculo com operações de entrada e saída
Sistemas Operacionais 27
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Vantagens de multithreading
❚ Tempo de criação/destruição de threads é inferior que tempo decriação/destruição de um processo
❚ Chaveamento de contexto entre threads é mais rápido que tempode chaveamento entre processos
❚ Como threads compartilham o descritor do processo que as porta,elas dividem o mesmo espaço de endereçamento o que permite acomunicação por memória compartilhada sem interação com onúcleo
Sistemas Operacionais 28
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Leituras complementares
❚ R. Oliveira, A. Carissimi, S. Toscani Sistemas Operacionais EditoraSagra-Luzzato, 2001.❙ Capítulo 4.
❚ A. Silberchatz, P. Galvin; Operating System Concepts. (4th edition).Addison-Wesley, 1994.❙ Capítulo 4
Sistemas Operacionais 29
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Sumário
❚ Implementação do conceito de processos e threads❚ Escalonamento
❙ Escalonadores não -preemptivos❚ Escalonamento
❙ Escalonamento preemptivos
Sistemas Operacionais 30
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Escalonamento
❚ O escalonador é a entidade do sistema operacional responsável porselecionar um processo apto para executar no processador
❚ O objetivo é dividir o tempo do processador de forma justa entre osprocessos aptos a executar
❚ Típico de sistemas multiprogramados: batch, time-sharing,multiprogramado ou tempo real❙ Requisitos e restrições diferentes em relação a utilização da CPU
❚ Duas partes:❙ Escalonador: política de seleção❙ Dispatcher: efetua a troca de contexto
Sistemas Operacionais 31
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Objetivos do escalonamento
❚ Maximizar a utilização do processador❚ Maximizar a produção do sistema (throughput)
❙ Número de processos executados por unidade de tempo❚ Minimizar o tempo de execução (turnaround)
❙ Tempo total para executar um determinado processo❚ Minimizar o tempo de espera
❙ Tempo que um processo permance na lista de aptos❚ Minimizar o tempo de resposta
❙ Tempo decorrido entre uma requisição e a sua realização
Sistemas Operacionais 32
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Situações típicas para execução do escalonador
❚ Dependem se o escalonador é preemptivo ou não, se consideraprioridades ou não, etc...❙ Sempre que a CPU estiver livre e houver processos aptos a executar❙ Criação e término de processos❙ Um processo de mais alta prioridade ficar apto a executar❙ Interrupção de tempo
! Processo executou por um período de tempo máximo permitido❙ Interrupção de dispositivos de entrada e saída❙ Interrupção por falta de página (segmento) em memória
! Endereço acessado não está carregado na memória (memória virtual)❙ Interrupção por erros
Sistemas Operacionais 33
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Eventos de transição de estados
Criação
Apto Executando
Destruição
Bloqueado
Ocorrência de evento(interrupção)
Seleção
TérminoInterrupção por tempo
ou voluntária
Sincronização ourequisição de E/S
Admissão
Sistemas Operacionais 34
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Chaveamento de contexto (dispatcher)
Apto
Salva estado PCB0
Restaura estado PCB1
Salva estado PCB1
Restaura estado PCB0
Apto
Apto
Processo 0 Processo 1
PCB: Process Control Block
Sistemas Operacionais 35
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Níveis de escalonamento
❚ Longo prazo❚ Médio prazo❚ Curto prazo
Sistemas Operacionais 36
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Escalonador longo prazo
❚ Executado quando um novo processo é criado❚ Determina quando um processo novo passa a ser considerado no
sistema, isto é, quando após sua criação ele passa a ser apto❙ Controle de admissão
❚ Controla o grau de multiprogramação do sistema❙ Quanto maior o número de processos ativos, menor a porcentagem de
tempo de uso do processador por processo
Sistemas Operacionais 37
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Escalonador médio prazo
❚ Associado a gerência de memória❙ Participa do mecanismo de swapping
❚ Suporte adicional a multiprogramação❙ Grau de multiprogramação efetiva (diferencia aptos dos aptos-suspensos)
Sistemas Operacionais 38
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Escalonador de curto prazo
❚ Mais importante❚ Determina qual processo apto deverá utilizar o processador❚ Executado sempre que ocorre eventos importantes:
❙ Interrupção de relógio❙ Interrupção de entrada/saída❙ Chamadas de sistemas❙ Sinais (interrupção software)
Sistemas Operacionais 39
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Diagrama de escalonamento
CPUEscalonador de
médio prazo
Processos
Escalonadorde longo prazo
Interrupção de tempo
Usuáriosinterativos
Fila de aptos
Fila de suspensos (apto)
Filas de suspensos (bloqueado)
Fila de bloqueadosEvento Espera por evento
TérminoEscalonador curto prazo
Sistemas Operacionais 40
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Tipos de escalonador
❚ Um vez escalonado, o processo utiliza o processador até que:❙ Não preemptivo:
! Término de execução do processo! Execução de uma requisição de entrada/saída ou sincronização! Liberação voluntária do processador a outro processo (yield)
❙ Preemptivo:! Término de execução do processo! Execução de uma requisição de entrada/saída ou sincronização! Liberação voluntária do processador a outro processo (yield)! Interrupção de relógio! Processo de mais alta prioridade esteja pronto para executar
Sistemas Operacionais 41
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Algoritmos de escalonamento (1)
❚ Algoritmo de escalonamento seleciona qual processo deve executarem um determinado instante de tempo
❚ Existem vários algoritmos para atingir os objetivos doescalonamento
❚ Os algoritmos buscam:❙ Obter bons tempos médios invés de maximizar ou minimizar um determinado
critério❙ Privilegiar a variância em relação a tempos médios
Sistemas Operacionais 42
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Algoritmos de escalonamento (2)
❚ Algoritmos não preemptivos (cooperativos)❙ First-In First-Out (FIFO) ou First-Come First-Served (FCFS)❙ Shortest Job First (SJF) ou Shortest Process Next (SPN)
❚ Algoritmos preemptivos❙ Round robin (circular)❙ Baseado em prioridades
❚ Existem outros algoritmos de escalonamento❙ High Response Ratio Next (HRRN)❙ Shortest Remaining Time (SRT)❙ etc...
Sistemas Operacionais 43
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
FIFO - First In First Out (1)
❚ First-Come, First-Served (FCFS)❚ Simples de implementar
❙ Fila❚ Funcionamento:
❙ Processos que se tornam aptos são inseridos no final da fila❙ Processo que está no início da fila é o próximo a executar❙ Processo executa até que:
! Libere explicitamente o processador! Realize uma chamada de sistema (bloqueado)! Termine sua execução
Sistemas Operacionais 44
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
FIFO - First In First Out (2)
❚ Desvantagem:❙ Prejudica processos I/O bound
❚ Tempo médio de espera na fila de execução:❙ 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.
������
A
0 12 20 35 40
��B
��������
C
��D
ProcessoABCD
Tempo128
155
Sistemas Operacionais 45
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
SJF - Shortest Job First (1)
❚ Originário do fato que o menor tempo de médio é obtido quando seexecuta primeiro os processos de menor ciclo de processador (I/Obound)
A
0 40
������
B
����C
���
D
��
5 13 25
ProcessoABCD
Tempo128
155
Tempo médio: (0 + 5 + 13 + 25)/4 = 10.75 u.t
Sistemas Operacionais 46
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
SJF - Shortest Job First (2)
❚ Algoritmo ótimo, isto é, fornece o menor tempo médio de esperapara um conjunto de processos
❚ Processos I/O bound são favorecidos❚ Dificuldade é determinar o tempo do próximo ciclo de CPU de cada
processo, porém:❙ Pode ser empregado em processos batch (long term scheduler)❙ Prever o futuro com base no passado
Sistemas Operacionais 47
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Prevendo o futuro... (1)
❚ Pode ser feito utilizando os tempos de ciclos já passados erealizando uma média exponencial
:se-Define 5.10 , 4.
1)-(n passados ciclos dos informação a armazena 3.CPU de ciclo próximo o para previsto valor 2.
CPU de ciclo enésimo do tempo 1.
≤≤
==
=
+
ααττ 1n
nt
( ) .11 nnn t ταατ −+=+
❚ Fator α tem o efeito de considerar, de forma ponderada, os ciclosanteriores de processador
Sistemas Operacionais 48
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Prevendo o futuro... (2)
❚ Não considera o último ciclo de processador, só o passado (α =0)❙ τn+1 = τn
❚ Considera apenas o último ciclo de processador (α = 1)❙ τn+1 = tn
❚ Tipicamente se emprega α =0.5❙ Tem o efeito de considerar o mesmo peso para a história atual e a história
passada
τn+1 = α tn+(1 - α) α tn -1 + ... +(1 - α ) j α tn-j + …+(1 - α ) n+1 τ0
Sistemas Operacionais 49
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Exemplo de “previsão do futuro”
0
2
4
6
8
10
12
14
0 1 2 3 4 5 6 7
RealPrevisto
Parâmetros: α=0.5 τ0=10Ciclo de cpu:
Real: 6 4 6 4 13 13 13Previsto: 10 8 6 6 5 9 11 12
Sistemas Operacionais 50
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Leituras complementares
❚ R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. EditoraSagra-Luzzato, 2001.❙ Capítulo 4
❚ A. Silberchatz, P. Galvin; Operating System Concepts. (4th edition).Addison-Wesley, 1994.❙ Capítulo 4, 5 e 6
Sistemas Operacionais 51
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Sumário
❚ Implementação do conceito de processos e threads❚ Escalonamento
❙ Escalonadores não -preemptivos❚ Escalonamento
❙ Escalonamento preemptivos
Sistemas Operacionais 52
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Tipos de escalonador (lembrando...)
❚ Um vez escalonado, o processo utiliza o processador até que:❙ Não preemptivo:
! Término de execução do processo! Execução de uma requisição de entrada/saída ou sincronização! Liberação voluntária do processador a outro processo (yield)
❙ Preemptivo:! Término de execução do processo! Execução de uma requisição de entrada/saída ou sincronização! Liberação voluntária do processador a outro processo (yield)! Interrupção de relógio! Processo de mais alta prioridade esteja pronto para executar
Sistemas Operacionais 53
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Eventos de transição de estados
Criação
Apto Executando
Destruição
Bloqueado
Ocorrência de evento(interrupção)
Seleção
TérminoInterrupção por tempo
ou prioridade
Sincronização ourequisição de E/S
Admissão
Sistemas Operacionais 54
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Escalonadores preemptivos
❚ Por interrupção de tempo❙ Round robin (circular)
❚ Por prioridades
Sistemas Operacionais 55
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
RR - Round Robin (1)
❚ Similar ao algoritmo FIFO, só que:❙ Cada processo recebe um tempo limite máximo (time-slice, quantum) para
executar um ciclo de processador❚ Fila de processos aptos é uma fila circular❚ Necessidade de um relógio para delimitar as fatias de tempo
❙ Interrupção de tempo
����A
0 40
����
B
�C
D
����
3 6 9 12 15 18 2823 34
���������������
Sistemas Operacionais 56
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
RR - Round Robin (2)
❚ Por ser preemptivo, um processo perde o processador quando:❙ Libera explicitamente o processador (yield)❙ Realize uma chamada de sistema (bloqueado)❙ Termina sua execução❙ Quando sua fatia de tempo é esgotada
❚ Se quantum → ∞ obtém-se o comportamento de um escalonadorFIFO
Sistemas Operacionais 57
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Problemas com o Round Robin
❚ Problema 1: Dimensionamento do quantum❙ Compromisso entre overhead e tempo de resposta em função do número de
usuários (1/k na presença de k usuários)❙ Compromisso entre tempo de chaveamento e tempo do ciclo de processador
(quantum)❚ Problema 2: Processos I/O bound são prejudicados
❙ Esperam da mesma forma que processos CPU bound porém muitoprovavelmente não utilizam todo o seu quantum
❙ Solução:! Prioridades: Associar prioridades mais altas aos processos I/O bound
para compensar o tempo gasto no estado de espera (apto)
Sistemas Operacionais 58
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Escalonamento com prioridades
❚ Sempre que um processo de maior prioridade que o processoatualmente em execução entrar no estado apto deve ocorrer umapreempção❙ A existência de prioridades pressupõem a preempção❙ É possível haver prioridade não-preemptiva
❚ Escalonador deve sempre selecionar o processo de mais altaprioridade segundo uma política:❙ Round-Robin❙ FIFO (FCFS)❙ SJF (SPN)
Sistemas Operacionais 59
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Implementação de escalonador com prioridades
❚ Múltiplas filas associadas ao estado apto❚ Cada fila uma prioridade
❙ Pode ter sua própria política de escalonamento (FIFO, SJF, RR)
CPU
EventoFila de bloqueados Espera por evento
Preempção
Fila apto 0Dispatch Término
Fila apto 1
Fila apto n
Prioridade 0
Prioridade 1
Prioridade n
Sistemas Operacionais 60
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Exemplo: pthreads
❚ A política de escalonamento FIFO com prioridade considera:❙ Quando um processo em execução é 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 execução “passa a vez” para um outro processo ele
é inserido no final da fila de sua prioridade
Sistemas Operacionais 61
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Como definir a prioridade de um processo?
❚ Prioridade estática:❙ Um processo é criado com uma determinada prioridade e esta prioridade é
mantida durante todo o tempo de vida do processo❚ Prioridade dinâmica:
❙ Prioridade do processo é ajustada de acordo com o estado de execução doprocesso e/ou do sistema! e.g; ajustar a prioridade em função da fração do quantum que foi
realmente utilizada pelo processo:q = 100 msProcesso A utilizou 2ms ! nova prioridade = 1/0.02 = 50Processo B utilizou 50ms ! nova prioridade = 1/0.5 = 2
Sistemas Operacionais 62
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Problemas com prioridades
❚ Um processo de baixa prioridade pode não ser executado❙ Postergação indefinida (starvation)
❚ Processo com prioridade estática pode ficar mal classificado e serpenalizado ou favorecido em relação aos demais❙ Típico de processos que durante sua execução trocam de padrão de
comportamento (CPU bound a I/O bound e vice-versa)❚ Solução:
❙ Múltiplas filas com realimentação
Sistemas Operacionais 63
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Múltiplas filas com realimentação
❚ Baseado em prioridades dinâmicas❚ Em função do tempo de uso da CPU
a prioridade do processo aumenta ediminui
❚ Sistema de envelhecimento (agging)evita postergação indefinida
CPU
EventoFila de bloqueados Espera por evento
Preempção
Fila apto 0 DispatchTérmino
Fila apto 1
Fila apto n
Possibilidade detrocar de fila
Sistemas Operacionais 64
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Estudo de caso: escalonamento UNIX (1)
❚ Múltiplas filas com realimentação empregando round robin em cadauma das filas
❚ Prioridades são re-avaliadas uma vez por segundo em função de:❙ Prioridade atual❙ Prioridade do usuário❙ Tempo recente de uso da CPU❙ Fator nice
❚ Prioridades são divididas em faixas de acordo com o tipo do usuário❚ A troca dinâmica das prioridades respeita os limites da faixa
Sistemas Operacionais 65
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Escalonamento UNIX (1)
❚ Prioridades recebem valores entre 0 e 127 (menor o valor númerico,maior a prioridade)❙ 0-49: processos do kernel❙ 50-127: processo de usuário
❚ Ordem decrescente de prioridades❙ Swapper❙ Controle de dispositivos de entrada e saída orientados a bloco❙ Manipulação de arquivos❙ Controle de dispositivos de entrada e saída orientados a caractere❙ Processos de usuário
Sistemas Operacionais 66
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Escalonamento UNIX (2)
❚ Cálculo de prioridade de processos de usuário:❙ Fator nice: valor variando entre 0 (mais prioritário) a 39 (menos prioritário),
sendo 20 o valor default❙ Uso recente do processador (p_cpu )
❙ Onde:! load_average é o número médio de processos aptos no último segundo! PUSER é valor de base de prioridade para usuários (50)
( )
nicepdecaycpup
PUSERusrprip
averageload
averageloaddecay
_24
__
1_2
_2
×+×+=
+××=
Sistemas Operacionais 67
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Estudo de caso: escalonamento Linux
❚ Duas classes em função do tipo de processos (threads)❙ Processos interativos e batch❙ Processos de tempo real
❚ Políticas de escalonamento do linux (padrão POSIX)❙ SCHED_FIFO: FIFO com prioridade estática
! Válido apenas para processos de tempo real❙ SCHED_RR: Round-robin com prioridade estática
! Válido apenas para processos de tempo real❙ SCHED_OTHER: Filas multinível com prioridades dinâmicas (time-sharing)
! Processos interativos e batch
Sistemas Operacionais 68
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Escalonamento linux (tempo real)
❚ Linux implementa dois tipos de prioridade❙ Estática: exclusivamente processos de tempo real❙ Dinâmica: processos interativos e batch
❚ Prioridade é definida pelo usuário e não é modificada peloescalonador❙ Somente usuários com privilégios especiais
❚ Seleciona sempre processos de mais prioridade para executar❙ Executa segundo a política selecionada: SCHED_FIFO ou SCHED_RR
❚ Processo em tempo real tem preferência (prioridade) sobreprocessos interativos e batch
Sistemas Operacionais 69
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Escalonamento linux (timesharing)
❚ Baseado no uso de créditos e prioridade❚ Sistema de créditos:
❙ Cada processo executa um certo número de créditos❙ O processo com maior crédito é o selecionado❙ Cada interrupção de tempo o processo em execução perde um crédito❙ Processo que atinge zero créditos é suspenso (escalonador médio prazo)❙ Se no estado apto não existir processos com créditos é realizado uma
redistribuição de créditos para todos os processos (qualquer estado)
prioridadeCréditos
Créditos +=2
Sistemas Operacionais 70
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Estudo de caso: escalonamento windows 2000
❚ Unidade de escalonamento é a thread❚ Escalonador preemptivo com prioridades❚ Prioridades organizadas em duas classes:
❙ Tempo real: prioridade estática (níveis 16-31)❙ Variável: prioridade dinâmica (níveis 0-15)
❚ Cada classe possui 16 níveis de prioridades❙ Cada nível é implementado por uma fila em uma política round-robin
! Múltiplas filas: classe de tempo real! Múltiplas filas com realimentação: classe de tempo variável
❙ Threads da classe tempo real tem precedência sobre as da classe variável
Sistemas Operacionais 71
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Escalonamento windows 2000 (classe variável)
❚ Dois parâmetros definem a prioridade de uma thread:❙ Valor de prioridade de base do processo❙ Prioridade inicial que indica sua prioridade relativa dentro do processo
❚ Prioridade da thread varia de acordo com uso do processador❙ Preemptada por esgotar o quantum: prioridade reduzida❙ Preemptada por operação de E/S: prioridade aumentada❙ Nunca assume valor inferior a sua prioridade de base, nem superior a 15
❚ Fator adicional em máquina multiprocessadoras: afinidade!❙ Tentativa de escalonar uma thread no processador que ela executou mais
recentemente.! Princípio: reaproveitamento de dados na memória cache
Sistemas Operacionais 72
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Escalonamento não preemptivo com prioridades
❚ SJF é um forma de priorizar processos❙ A prioridade é o inverso do próximo tempo previsto para ciclo de CPU
❚ Processos de igual prioridade são executados de acordo com umapolítica FIFO
❚ Problema de postergação indefinida (starvation)❙ Processo de baixa prioridade não é alocado a CPU por sempre existir um
processo de mais alta prioridade a ser executado❙ Solução:
! Envelhecimento❚ O conceito de prioridade é mais “consistente” com preempção
❙ Processo de maior prioridade interrompe a execução de um menos prioritário
Sistemas Operacionais 73
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Leituras complementares
❚ R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. EditoraSagra-Luzzato, 2001.❙ Capítulo 4, Capítulo 9 (seção 9.4), Capítulo 10 (seção10.4)
❚ A. Silberchatz, P. Galvin; Operating System Concepts. (4th edition)Addison-Wesley, 1994.❙ Capítulo 5
❚ A. Silberchatz, P. Galvin, G. Gane; Applied Operating SystemConcepts. (1st edition). Addison-Wesley, 2000.❙ Capítulo 4, 5 e 6
❚ W. Stallings; Operating Systems. (4th edition). Prentice Hall, 2001.❙ Capítulo 9
Capítulo 52a edição
Revisão: Fev/2003
Sistemas OperacionaisEntrada e saída
Sistemas Operacionais 2
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Sumário
❚ Princípios básicos de hardware❙ Arquitetura de computadores
❚ Gerência de entrada e saída❙ Software de entrada e saída
❚ Disco magnético
Sistemas Operacionais 3
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Princípios básicos de hardware
❚ Periférico é um dispositivo conectado a um computador de forma apossibilitar sua interação com o mundo externo
❚ Os periféricos são conectados ao computador através de umcomponente de hardware denominado de interface
❚ As interfaces são interconectadas aos barramentos internos de umcomputador❙ Elemento chave na coordenação da transferências de dados
❚ Interfaces se utilizam de um processador dedicado a realização econtrole das operações de entrada e saída❙ Controladoras
Sistemas Operacionais 4
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Arquitetura de entrada e saída
❚ Dispositivo de entrada e saída possui um parte mecânica e outraeletrônica
Barramento
CPU
Memória
Disco
rede
Vídeo
Sistemas Operacionais 5
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Dispositivos de entrada e saída (1)
❚ Classificados como:❙ Orientado a caractere
! Unidade de transferência é o caractere! e.g.; teclado, interface serial
❙ Orientado a bloco! Unidade de transferência de dados é um bloco de caracteres (fixo)
! e.g.; disco, fitas DAT
❚ Esquema de classificação não é perfeito pois alguns dispositivosnão se enquadram nestas situações❙ e.g.; relógio, memória de vídeo mapeada em espaço de E/S
Sistemas Operacionais 6
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Dispositivos de entrada e saída (2)
❚ Dispositivos de entrada e saída podem ser classificados de acordocom o tipo de entidade que interagem❙ Com usuário
! e.g.; vídeo, teclado, mouse, impressora, etc❙ Com dispositivos eletrônicos
! e.g; discos, fitas, atuadores, controladores, etc❙ Com dispositivos remotos
! e.g.; modem, interfaces de rede
Sistemas Operacionais 7
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Dispositivos de entrada e saída (3)
❚ Apresentam características próprias❙ Taxa de transferência de dados❙ Complexidade de controle❙ Unidade de transferência
! Caractere, bloco ou stream❙ Representação de dados
! Esquemas de codificação❙ Tratamento de erros
! Depende do tipo de dispositivo
Sistemas Operacionais 8
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Tipos de conexão e transferência de dados
❚ Em função da interconexão física das interfaces com os periféricospodem ser classificadas em dois tipos:❙ Interface serial❙ Interface paralela
❚ Interface serial❙ Apenas uma linha para transferência de dados (bit à bit)
❚ Interface paralela❙ Mais de uma linha para transferência de dados
! e.g.; n x 8 bits
Sistemas Operacionais 9
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Como controladoras e sistema operacionalinteragem?
❚ Controladora é programada via registradores de configuração❙ Recebem ordens do processador❙ Fornecem estados de operação❙ Leitura e escrita de dados do periférico
❚ Registradores são "vistos" como posições de memória❙ E/S mapeada em espaço de E/S❙ E/S mapeada em espaço de memória
Sistemas Operacionais 10
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Mapeamento em espaço de memória e emespaço de entrada e saída
❚ Espaço de endereçamento:❙ Conjunto de endereços de memória que o processador consegue endereçar❙ Definido no projeto de processador
! Pode haver um único espaço de endereçamento! Pode haver um espaço de endereçamento dedicado a entrada e saída
❚ Instruções específicas para acessar um ou outro espaço deendereçamento❙ e.g. mov, in, out
Sistemas Operacionais 11
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Mapeamento em espaço de memória
❚ Um único espaço de endereçamento❚ No projeto do computador se reserva uma parte de sua área de
endereçamento para acesso a periféricos (controladoras)❚ Instruções de acesso a memória do tipo mov end, dado podem
tanto referenciar uma posição real de memória como um registradorassociado a um periférico de entrada/saída
❚ Exemplo:❙ Processadores da familia Motorola
Sistemas Operacionais 12
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Mapeamento em espaço de entrada e saída
❚ O processador possui duas áreas distintas de endereçamento❙ Espaço de memória: acessado via instruções de acesso de memória (mov)❙ Espaço de E/S: acessado via instruções de acesso específica (in, out)
❚ No projeto de um computador (sistema) usando tal processador épossível de utilizar os dois tipos de mapeamento para acesso aperiféricos de entrada e saída
❚ Exemplo:❙ Processadores da familia Intel
Sistemas Operacionais 13
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Exemplo de acesso a dispositivos
❚ Controladora de impressão onde um registrador fornece o “status”da impressão ( end. 315H) e outro corresponde ao envio do caractera ser impresso (end. 312H).
Mapeado em memória Mapeado em entrada e saída
Le_status: mov AL, 315H
Print_char: mov AL, 65Hmov 312H, AL
Le_status: in AL, 315H
Print_char: mov AL, 65Hout 312H, AL
Sistemas Operacionais 14
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Técnicas para realização de E/S
❚ E/S programada❚ E/S orientada a interrupções (interrupt driven)❚ Acesso direto a memória
Sistemas Operacionais 15
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
E/S programada (1)
❚ Toda interação entre o processador e o controlador é deresponsabilidade exclusiva do programador
❚ Ciclo de funcionamento:❙ Envio de comando a controladora❙ Espera pela realização do comando
❚ Módulo (controladora) de entrada/saída atualiza bits de estado daoperação
❚ Processador espera o término da operação (busy waiting)
Sistemas Operacionais 16
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Desvantagem E/S programada
❚ Desperdício do tempo do processador para verificar continuamenteo estado de uma operação de entrada e saída❙ Diferença de velocidade entre dispositivo de entrada e saída e processador
❚ Solução é inserir operações entre sucessivas consultas sobre oestado de uma operação de entrada e saída❙ Polling
❚ Problema é determinar a freqüência para a realização do polling
Sistemas Operacionais 17
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
E/S orientada a interrupção (interrupt driven)
❚ Método utilizado para evitar o desperdício de tempo do método depolling
❚ Processador é interrompido quando o módulo de E/S está pronto❚ Enquanto a interrupção não ocorre o processador está liberado para
executar outras tarefas❚ Processador é responsável por iniciar uma operação de entrada e
saída❚ Interrupção solicita atenção do processador para executar uma
rotina específica ao final da operação de entrada e saída❙ Tratador de interrupção
Sistemas Operacionais 18
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Desvantagem E/S orientada a interrupção
❚ Processador atua como um intermediário na transferência, poiscada palavra lida (escrita) passa pelo processador
Sistemas Operacionais 19
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Acesso direto a memória
❚ DMA (Direct Memory Access)❚ Transfere diretamente um bloco de dados entre a memória e o
módulo de E/S❚ O mecanismo de interrupção é utilizado para sinalizar final de tarefa❚ Processador é envolvido com a tarefa de E/S apenas no começo e
no final da transferência
Sistemas Operacionais 20
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Evolução de arquiteturas de entrada e saída
❚ Processador diretamente controla o periférico❚ Controlador ou módulo de E/S é adicionado
❙ Processador emprega E/S programada sem interrupções❙ Processador não necessita tratar detalhes dos dispositivos de E/S
❚ Controlador ou módulo de E/S porém baseado em interrupções❚ Transferência de dados em DMA❚ Módulo de E/S possui um processador separado❚ Processador de E/S
❙ computador dedicado ao processamento de E/S❙ Transferência de dados é feita, por exemplo, via rede
Sistemas Operacionais 21
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Leituras complementares
❚ R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. EditoraSagra-Luzzato, 2001.❙ Capítulo 5, seção 5.1
❚ A. Silberchatz, P. Galvin; Operating System Concepts. 4a edição.Addison-Wesley.❙ Capítulo 2
Sistemas Operacionais 22
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Sumário
❚ Princípios básicos de hardware❙ Arquitetura de computadores
❚ Gerência de entrada e saída❙ Software de entrada e saída
❚ Disco magnético
Sistemas Operacionais 23
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
O problema da gerência de entrada e saída
❚ Entrada e saída é extremamente lenta se comparada com avelocidade de processamento e de acesso a memória principal
❚ Multiprogramação possibilita que processos executem enquantooutros esperam por operações de entrada e saída
❚ Procedimento de swapping é entrada e saída❚ Eficiência no tratamento de entrada e saída é importante
Sistemas Operacionais 24
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Objetivos da gerência de entrada e saída
❚ Eficiência❚ Generacidade é importante
❙ Desejável que dispositivos sejam tratados da forma mais uniforme possível❚ Esconder os detalhes do serviço de entrada esaída em camadas de
mais baixo nível❚ Fornecer ao alto nível abstrações genéricas como read, write, open
e close❚ Envolve aspectos de hardware e de software
Sistemas Operacionais 25
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Princípios básicos de software de entrada e saída
❚ Subsistema de entrada e saída é software bastante complexodevido a diversidade de periféricos
❚ Objetivo é padronizar as rotinas de acesso aos periféricos de E/Sde forma a reduzir o número de rotinas❙ Permite inclusão de novos dispositivos sem alterar “visão” do usuário
(interface de utilização)❚ Para atingir esse objetivo o subsistema de E/S é organizado em
camadas
Sistemas Operacionais 26
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Estrutura em camadas do subsistema de E/S
driverteclado
driverSCSI
driverEIDE
driverfloppy
driverrede
Hardware
E/S independente do dispositivo
E/S nível de usuário
Interface padrão para drivers de dispositivos (API)
Softw
are
Sis
tem
a op
erac
iona
l
Sistemas Operacionais 27
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Organização lógica do software de E/S (1)
❚ Segue uma filosofia modular (três módulos base)❙ Dispositivo lógico de E/S
! Trata dispositivo como recurso lógico sem se preocupar com detalhes decontrole
! Oferece uma interface de programação ao processo usuário❙ Dispositivo físico de E/S
! aceita solicitações abstratas e converte para um tratamento específico! Bufferização
❙ Escalonamento e controle! Tratamento de interrupções e de status
❚ Organização não é única❙ Depende do tipo do dispositivo e de sua aplicação
Sistemas Operacionais 28
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Visão geral do software de E/S
❚ Tratador de interrupção❙ aciona driver ao final da operação
de transferência❚ Driver de dispositivo
❙ Configuração controladora e status❙ Recebimento de requisições
❚ E/S independente do dispositivo❙ Nomeação e proteção❙ Bufferização
❚ E/S a nível de usuário❙ Chamadas de E/S❙ Formatação de E/S
Tratador de Interrupção
Driver de dispositivo
E/S independente
E/S a nível de usuário4
3
2
1
Sistemas Operacionais 29
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Device driver
❚ Conjunto de estruturas de dados e funções que controlam um oumais dispositivos interagindo com o núcleo via uma interface bemdefinida
❚ Fornecido pelo fabricante do periférico❚ Vantagens:
❙ Isolar código específico a um dispositivo em um módulo a parte❙ Facilidade de adicionar novos drivers❙ Fabricantes não necessitam “mexer” no núcleo❙ Núcleo tem uma visão uniforme de todos os dispositivos através de uma
mesma interface
Sistemas Operacionais 30
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Funcionamento básico
❚ Núcleo aciona driver para:❙ Configurar dispositivo❙ Realizar acessos de leitura e escrita❙ Controlar e obter informações de status❙ Tratamento de interrupções
❚ Driver aciona núcleo para:❙ Efetuar gerenciamento de buffers❙ Escalonamento
Sistemas Operacionais 31
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Subsistema de E/S
❚ Porção do núcleo que controla a parte independente e interage como driver de dispositivo para manipular/tratar a parte dependente
❚ Responsável por:❙ Distribuição uniforme dos nomes (nomeação, espaço de nomes)❙ Proteção❙ Fornecer uma interface aos processos usuários (aplicativos)❙ Gerenciamento e desempenho do sistema de E/S
Sistemas Operacionais 32
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
/dev
ttyS0 ttyS1 ttyS3ttyS2
crw- - - - - - - 1 root tty 4,64 may 5 2000 /dev/tty0crw- - - - - - - 1 root tty 4,65 may 5 2000 /dev/tty1crw- - - - - - - 1 root tty 4,66 may 5 2000 /dev/tty2crw- - - - - - - 1 root tty 4,66 may 5 2000 /dev/tty3
Major number
Minor number
Exemplo: subsistema de E/S do UNIX
❚ Corresponde a visão lógica do dispositivo❚ Atribuição uniforme do nome independente do dispositivo❚ O UNIX é um exemplo clássico:
❙ Nome do dispositivo é um string❙ Discos (dispositivos) fazem parte do sistema de arquivos
Sistemas Operacionais 33
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Funcionalidades básicas do subsistema de E/S
❚ Escalonamento de E/S❙ Determinar a melhor ordem para o atendimento de requisições de E/S❙ Dividir de forma justa o acesso a periféricos
❚ Bufferização❙ Área de armazenamento temporário de dados
❚ Cache❙ Permitir o acesso rápido aos dados
❚ Spooling❙ Controlar acesso a dispositivos que atendem apenas uma requisição por vez
❚ Reserva de dispositivos❙ Controlar acesso exclusivo a dispositivos (alocação, desalocação, deadlock)
Sistemas Operacionais 34
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
E/S nível de usuário
❚ Disponibiliza a processos usuário (aplicação) operações de E/Satravés de bibliotecas ou chamadas de sistema
Sistemas Operacionais 35
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Interface de programação
❚ Bloqueante❙ Processo é suspenso até a conclusão da operação
! Fácil programação e compreensão❚ Não bloqueante
❙ Retorna imediatamente com os dados disponíveis no momento! Baseado em buffer
❚ Assíncrona❙ Processo continua sua execução enquanto a E/S é realizada
! Dificil programação! Necessário determinar o término da operação (signal versus polling)
Sistemas Operacionais 36
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Bloqueante
❚ O “controle” retorna a camada de aplicação somente após aconclusão da operação de entrada e saída
espera(busy waiting/bloqueado)
Driver do dispositivo
Tratador deinterrupções
Camada de Aplicação
Espaço deusuário
Espaço desistema
Transferência de dados
Pk Pk
Sistemas Operacionais 37
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Não bloqueante
❚ O “controle” retorna a camada de aplicação com os dadosdisponíveis no momento
Execução Pk
Driver do dispositivo
Tratador deinterrupções
Camada de Aplicação
Espaço deusuário
Espaço desistema
Transferência de dados
Pk
Sistemas Operacionais 38
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Assíncrona
❚ O “controle” retorna a camada de aplicação sem que a operação deentrada e saída tenha sido concluída❙ Programação (agendamento) de uma operação de E/S
Execução Pk
Driver do dispositivo
Tratador deinterrupções
Camada de Aplicação
Espaço deusuário
Espaço desistema
Transferência de dados
Pk
Sistemas Operacionais 39
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Leituras complementares
❚ R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. EditoraSagra-Luzzato, 2001.❙ Capítulo 5, seção 5.2
❚ A. Silberchatz, P. Galvin; Operating System Concepts. 4a edição.Addison-Wesley.❙ Capítulo 2
Sistemas Operacionais 40
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Sumário
❚ Princípios básicos de hardware❙ Arquitetura de computadores
❚ Gerência de entrada e saída❙ Software de entrada e saída
❚ Disco magnético
Sistemas Operacionais 41
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Dispositivos periféricos típicos
❚ Dispositivos de E/S são fundamentais para que um sistema sejautilizável
❚ Existe uma grande gama de dispositivos de E/S❙ Impossível de analisar todos❙ Princípio de funcionamento tem uma base comum
❚ Periférico mais importante é o disco por desempenhar um papelfundamental em diversos aspectos do sistema operacional❙ Armazenamento de dados❙ Suporte a implementação de memória virtual❙ Aspectos relacionados com tolerância a falhas e segurança de dados (RAID)
Sistemas Operacionais 42
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Disco magnético
❚ Um disco de plástico, ou metal, recoberto de material magnético❙ Pratos (platters)
❚ Dados são gravados e, posteriormente, recuperados através de um"mola" condutora (cabeçote de leitura e gravação)❙ Escrita: o cabeçote é submetido a uma tensão que gera um campo magnético
o qual magnetiza o disco com diferentes padrões de polaridades❙ Leitura: a variação do campo magnético gerado pela rotação do disco induz
uma corrente no cabeçote de leitura
Sistemas Operacionais 43
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Organização e formatação (1)
❚ Disco é organizado em uma seqüência de circulos concêntricos❙ Trilhas❙ Largura da trilha corresponde a largura do cabeçote de leitura/escrita
❚ Trilhas são separadas por gaps❙ Evitar problemas de alinhamentos
❚ Duas tecnologias definem o número de bits por trilhas❙ O número de bits por trilha é constante
! Trilhas mais internas possuem uma densidade maior bits/polegada! Discos com tecnologia CAV (Constant Angular Velocity)
❙ O número de bits por trilha depende se ela é mais interna ou mais externa! Discos com tecnologia CLV (Constant Linear Velocity)
! e.g.; CDROM
Sistemas Operacionais 44
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Organização e formatação (2)
W. Stallings. Operating Systems (4th Ed.), Prentice Hall, 2001.
Sistemas Operacionais 45
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Organização e formatação (3)
❚ Transferência de dados para o disco é feito em blocos❙ Tipicamente, bloco é menor que a capacidade de uma trilha
❚ Trilha é subdividida em unidades de tamanho fixo (setores)❚ Setor:
❙ Armazenamento de informações❙ Informações de controle
! e.g.; início e final do setor, ECC (Error Correcting Code)❚ A definição de trilhas e setores é feita pela formatação física
❙ Feita na fábrica
Sistemas Operacionais 46
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Organização e formatação (4)
Zona de dados
ECC
Inf. de controle
W. Stallings. Operating Systems (4th Ed.), Prentice Hall, 2001.
Sistemas Operacionais 47
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Características físicas (1)
❚ Cabeçote de leitura/escrita são montados sobre um braço❙ Fixo: um cabeçote por trilha❙ Móvel: cabeçote se desloca sobre as trilhas
❚ Removível versus não removível❙ Meio magnético (pratos) são montados fisicamente no braço ou não
! e.g.; disquete❚ Densidade dupla versus densidade simples
❙ Filme magnético é posto, ou não, nas duas superficies do prato
Sistemas Operacionais 48
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Características físicas (2)
❚ Múltiplos pratos (disk pack)❙ Vários pratos empilhados e centrados❙ Cada prato um cabeçote de leitura/escrita (braço móvel)❙ Cilindro: conjunto de trilhas de mesmo número em pratos diferentes
❚ Mecanismo do cabeçote leitura/escrita❙ Contato físico entre a superfície magnética e o cabeçote (floppy)❙ Distância fixa (air gap) da superfície magnética❙ Distância fixa (air gap) da superfície magnética quando o disco entra em
rotação (disco rígido)
Sistemas Operacionais 49
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Características físicas (3)
CilindroImaginário
Setor
Trilha
Cabeçote R/W (1 por superfície)
Superfície
Braço mecânico
Prato
Sistemas Operacionais 50
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Exemplo de especificações de disco
❚ Disco 4.1 Gigabytes❙ 255 cabeças❙ 63 setores de 512 bytes❙ 525 cilindros❙ Capacidade: 255 x 63 x 512 x 525
❚ Sexagésimo quarto setor mantém um mapa de setores na trilha❚ Tecnologia atual permite até 8 pratos com 16 cabeçotes
❙ Diferença no número de cabeçotes é lógico
Sistemas Operacionais 51
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Acesso a dados
❚ Menor unidade de transferência é um bloco lógico❙ Composto por um ou mais setores físicos
❚ Acessar dado implica em localizar trilha, superfície e setor❚ Dois métodos:
❙ Método CHS (Cylinder, Head, Sector)❙ Método LBA (Linear Block Addressage)
! Tradução do L-CHS (Logical) para P-CHS (Physical)❚ Discos modernos endereçam blocos lógicos sequencialmente
❙ Conversão de um bloco lógico para sua localização física! Não é um mapeamento direto por haver setores fisicamente defeituosos e
pelo número de setores por trilha não ser constante! Cilindros que possuem mesmo número de setores (zonas)
Sistemas Operacionais 52
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Desempenho do disco
❚ Para ler/escrever dados é necessário que o cabeçote de leitura eescrita esteja posicionada na trilha e no ínicio do setor desejados
❚ Três tempos envolvidos:❙ Tempo de posicionamento (seek time)
! Tempo necessário para posicionar o cabeçote de leitura/escrita na trilhadesejada
❙ Tempo de latência rotacional! Tempo necessário para atingir o início do setor a ser lido/escrito
❙ Tempo de transferência! Tempo para escrita/leitura efetiva dos dados
Sistemas Operacionais 53
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Temporização de acesso ao disco
Cabeçoteleitura/escrita
Seek time
Trilha
Setor
Transfertime
Latencytime
.trasnflatênciaseekacesso tttt ++=
Sistemas Operacionais 54
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Tempo de posicionamento (seek)
❚ Possui duas componentes:❙ Tempo de acionamento e aceleração do braço do cabeçote❙ Tempo de deslocamento até a trilha desejada
❚ Não é linear em função do número do trilhas❙ Tempo de identificação da trilha (confirmação)
❚ Tempo médio de seek❙ Dado fornecido pelo fabricante
! e.g.; 5 a 10 ms (tecnologia ano 2000)
Sistemas Operacionais 55
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Tempo de latência rotacional
❚ Definido pela velocidade de rotação do motor❙ e.g. (ano 2000):
! discos rígidos (5400 rpm a 10000 rpm)! unidades de floppy (300 rpm a 600 rpm)
❚ Considera-se o tempo médio❙ Nào se sabe a posição relativa do cabeçote com a do setor a ser lido❙ Metade do tempo de uma rotação
! e.g.; 3 ms para um disco de 10000 rpm ( 6 ms uma rotação )
Sistemas Operacionais 56
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Tempo de transferência
❚ Tempo de transferência de dados de/para disco depende davelocidade de rotação
T = tempo de transferênciab = número de bytes a serem transferidosN = número de bytes em uma trilhar = velocidade de rotação, nro de rotações por segundo
❚ Tempo médio de acesso é dado por:
rN
bT =
rN
b
rtT médioseekacesso ++=
2
1_
Sistemas Operacionais 57
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Exemplo
❚ Acessar um arquivo de dados de 1.3 Mbytes armazenado em discocom as seguintes características:Tseek_médio = 10 ms, 10000 rpms, 512 bytes por setor, 320 setores por trilha
Caso I: Acesso seqüêncial (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)
Caso II: Acesso randômico (leitura na base um setor por vez)Tacesso = 2560 x (10 ms + 3 ms + 0.01875 ms) = 33.328 s
Sistemas Operacionais 58
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Entrelaçamento (interleaving)
❚ Forma de aumentar o desempenho no acesso ao disco❚ Objetivo é evitar a latência rotacional em setores adjacentes❚ Técnica consiste em numerar os setores não mais de forma
contígua mas sim com um espaço entre eles
01
2
3
4
5
68 7
9
10
11
12
13
1415 0
1
23
4
5
6
8
7
9
10 11
12
13
14
15
Fator de entrelaçamento = 0
Disco 1 Disco 2
Fator de entrelaçamento = 2
Sistemas Operacionais 59
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Escalonamento do disco (1)
❚ Tratar E/S em disco de forma eficiente se traduz em obter um tempode acesso rápido e explorar ao máximo a largura de banda do disco❙ Se traduz em minimizar o tempo de posicionamento (seek)
❚ Largura de banda do disco é definida como sendo o número total debytes transferidos, divididos pelo tempo decorrido entre o primeiroacesso e a conclusão da transferência.
Sistemas Operacionais 60
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Escalonamento do disco (2)
❚ Algoritmos para reduzir o tempo de seek❙ Algoritmos de escalonamento do disco
! Forma de organizar o atendimento a requisições! FCFS, SSTF, SCAN, C-SCAN, etc
❚ Exemplo para análise❙ Disco organizado em 200 trilhas (0-199)❙ Posição inicial do cabeçote: trilha 53❙ Atender a seguinte fila de requisições:
98, 183, 37, 122, 14, 124, 65, 67
Sistemas Operacionais 61
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
FCFS - First Come First Served (1)
❚ Acessa na ordem em que as requisições são solicitadas❚ Para análise em questão obtem-se um deslocamento equivalente a
640 trilhas
Silberchatz, Galvin, Gagne. Applied Operating System Concepts (1st Ed.) John Wiley & Sons, 2000.Sistemas Operacionais 62
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
SSTF - Shortest Seek Time First (1)
❚ Seleciona a requisição com o menor tempo de seek em relação aposição atual do cabeçote de leitura/escrita
❚ Análogo ao escalonamento SJF (Shortest Job First)❙ Pode provocar postergação de uma requisição
Sistemas Operacionais 63
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
SSTF - Shortest Seek Time First (2)
❚ Deslocamento equivalente a 236 trilhas
Silberchatz, Galvin, Gagne. Applied Operating System Concepts (1st Ed.) John Wiley & Sons, 2000.Sistemas Operacionais 64
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
SCAN (1)
❚ O movimento do cabeçote inicia em uma extremidade do disco e semovimenta em direção a outra extremidade❙ Executa as requisições na ordem desta varredura❙ Ao chegar no outro extremo, inverte o sentido e repete o procedimento
❚ Conhecido como algoritmo do elevador
Sistemas Operacionais 65
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
SCAN (2)
❚ Deslocamento equivalente a 208 trilhas
Silberchatz, Galvin, Gagne. Applied Operating System Concepts (1st Ed.) John Wiley & Sons, 2000.Sistemas Operacionais 66
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
C-SCAN (1)
❚ Variação do algoritmo de SCAN❚ Procedimento é idêntico ao do algoritmo SCAN porém as
requisições são atendidas apenas em um sentido da varredura❙ Ao final da varredura o cabeçote é reposiconado no início do disco
❚ Fornece uma visão lógica onde o disco é tratado como uma filacircular❙ Oferece um tempo médio de acesso mais uniforme que o algoritmo SCAN
Sistemas Operacionais 67
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
C-SCAN (2)
Silberchatz, Galvin, Gagne. Applied Operating System Concepts (1st Ed.) John Wiley & Sons, 2000.
Sistemas Operacionais 68
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
C-LOOK
❚ Versão do C-SCAN❚ O cabeçote de leitura/escrita não necessita atingir o extremo do
disco para voltar ao início do disco
Sistemas Operacionais 69
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Outras variações de SCAN
❚ N-step-SCAN❙ Divide a fila de requisições em um certo número de filas de tamanho N❙ Cada fila é atendida separadamente utilizando SCAN❙ Novas requisições são inseridas em filas diferentes da que está sendo
atendida no momento da chegada destas requisições❚ FSCAN
❙ Baseada em duas filas❙ Um fila recebe todas as novas requisições enquanto a outra é empregada
para atender as requisições já feitas
Sistemas Operacionais 70
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Qual algoritmo de escalonamento é melhor?
❚ SSTF é o método comumente empregado❚ SCAN e C-SCAN apresentam um melhor desempenho em discos
que possuem um grande número de acesso❚ Fatores importantes
❙ Quantidade e tipo de requisições❙ Organização de arquivos e diretórios no disco (sistema de arquivos)
❚ O algoritmo de escalonamento deve ser escrito como um móduloseparado do sistema operacional para permitir sua substituição deforma fácil
Sistemas Operacionais 71
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
RAID: Redundant Array of Inexpensive Disks
❚ Conjunto de discos rigídos visto pelo sistema operacional como umúnico disco lógico
❚ Dados são distribuídos entre os diferentes discos físicos❙ Permite o acesso paralelo a dados aumentando o desempenho
❚ Possibilita o armazenamento de informações de paridade parapermitir a recuperação de dados em caso de problemas no disco❙ Aumento de possibilidade de falhas já que existem mais dispositivos
envolvidos❚ Diferentes níveis
Sistemas Operacionais 72
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
RAID nível 0
❚ Dados são distribuídos nos diferentes discos do array❙ Requisições a blocos de dados armazenados em discos distintos podem ser
efetuados em paralelo❚ O disco lógico é dividido em unidade de distribuição (strips)
❙ Strip pode ser blocos físicos, setores, etc...❙ Strip são mapeados de forma round-robin em n discos (stripes)❙ Técnica conhecida como stripping
W. Stallings. Operating Systems (4th Ed.), Prentice Hall, 2001.
Sistemas Operacionais 73
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
RAID nível 1
❚ Objetivo de RAID é fornecer uma redudância de dados parafornecer um certo grau de tolerância a falhas
❚ RAID 1 a redundância é obtida através da replicação dos dados❙ Strips são armazenados em 2 conjuntos distintos de discos físicos❙ Denominado de espelhamento (mirroring)
Sistemas Operacionais 74
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
RAID nível 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❙ Recuperação em caso de erro é simples
! Acessa dados do disco não danificado❚ Desvantagem:
❙ Custo: necessita o dobro do espaço do disco lógico em discos físicos
Sistemas Operacionais 75
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
RAID nível 2
❚ O conjunto de discos é sincronizado, isto é, todos os cabeçotesestão posicionados no mesmo ponto (trilha e setor)
❚ Todos discos são acessados na realização de uma requisição E/S❚ A unidade de stripping é byte ou palavra❚ Executa o cálculo de código de correção de erros considerando um
certo número de bits e armazena o resultado em discos separados
W. Stallings. Operating Systems (4th Ed.), Prentice Hall, 2001.
Sistemas Operacionais 76
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
RAID nível 2
❚ O número de discos redundantes é proporcional ao logaritmo daquantidade de dados armazenados no disco
❚ Requisição de E/S❙ Leitura: código de correção é calculado para os dados lidos e comparado com
o código de correção lido❙ Escrita: cálculo e gravação do código de correção
Sistemas Operacionais 77
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
RAID nível 3
❚ Similar ao RAID 2❚ Diferença é que existe apenas um disco de redundância
independente do número de discos para armazenamento de dados❚ Cálculo de um código de detecção de erro (paridade)
❙ Possível reconstruir dados de um disco falho a partir desta informação
W. Stallings. Operating Systems (4th Ed.), Prentice Hall, 2001.
Sistemas Operacionais 78
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
RAID nível 3: reconstrução de dados
❚ Exemplo:❙ Array composto por 5 discos físicos, onde discos 0 a 3 servem ao
armazenamento de dados e o disco 4 a paridade (redundância)
Paridade para o bit i de cada disco é calculado da seguinte forma:
Em caso de erro do disco 1, se pode reconstruir seus dados (bit a bit) realizandoo seguinte cálculo:
)(0)(1)(2)(3)(4 ixixixixix ⊕⊕⊕=
)(0)(2)(3)(4)(1 ixixixixix ⊕⊕⊕=
Sistemas Operacionais 79
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
RAID nível 4
❚ Diferença em relação aos níveis 2 e 3 é que os discos sãoindependentes podendo então satisfazer requisições em paralelo
❚ Redundância é obtida calculado-se a paridade bit a bit de cada stripe armazenando o resultado em disco de paridade
W. Stallings. Operating Systems (4th Ed.), Prentice Hall, 2001.
Sistemas Operacionais 80
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
RAID nível 5
❚ Organização é similar ao RAID 4❚ A informação de paridade é distribuída em todos os discos do array
de forma round-robin
W. Stallings. Operating Systems (4th Ed.), Prentice Hall, 2001.
Sistemas Operacionais 81
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
RAID nível 6
❚ Introduz um segundo cálculo de paridade para o mesmo conjuntode dados:❙ Paridade é calculada utilizando o esquema de OU exclusivo de RAID 4 e 5❙ Algoritmo adicional de verificação de dados
❚ Vantagem sobre demais esquemas de RAID é que dois discospodem falhar simultâneamente
W. Stallings. Operating Systems (4th Ed.), Prentice Hall, 2001.
Sistemas Operacionais 82
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
RAID nível 10
❚ Combinação dos níveis RAID 0 e RAID 1❚ O dados são divididos em strips (RAID 0) e após os discos de
armazenamento de dados são espelhados (RAID 1)
W. Stallings. Operating Systems (4th Ed.), Prentice Hall, 2001.
Sistemas Operacionais 83
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Software de RAID
❚ Configurações de RAID podem ser implementadas em hardware(firmware) ou em software
❚ RAID em hardware:❙ Diferentes discos físicos são organizados de forma a compor um disco lógico❙ Organização é configurada e gerenciada pelo controlador de disco❙ Controlador realiza a geração das informações de redundância (firmware)
❚ RAID em software:❙ Diferentes partições (discos lógicos) compõem um único disco❙ RAID é feito pelo driver de disco (software)❙ Normalmente implementa RAID nível 1 e RAID nível 5
Sistemas Operacionais 84
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Leituras complementares
❚ R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. EditoraSagra-Luzzato, 2001.❙ Capítulo 5, seção 5.3
❚ A. Silberchatz, P. Galvin, G. Gagne; Applied Operating SystemConcepts. Addison-Wesley, 2000.❙ Capítulo 12 e 13
❚ W. Stallings; Operating Systems. (4th edition). Prentice Hall, 2001.❙ Capítulo 11
Capítulo 62a edição
Revisão: Fev/2003
Sistemas OperacionaisGerência de memória
Sistemas Operacionais 2
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Introdução
❚ Multiprogramação implica em manter-se vários processos emmemória
❚ Memória necessita ser alocada de forma eficiente para permitir omáximo possível de processos
❚ Existem diferentes técnicas para gerência de memória❙ Dependem do hardware do processador
Sistemas Operacionais 3
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Considerações gerais
❚ Um sistema de memória possui pelo menos dois níveis:❙ Memória principal: acessada pela CPU❙ Memória secundária: discos
❚ Programas são armazenados em disco❙ Executar um programa se traduz em transferi-lo da memória secundária à
memória primária❚ Qualquer sistema operacional tem gerência de memória
❙ Monotarefa: gerência é simples❙ Multitarefa: complexa
❚ Algoritmos de gerência de memória dependem de facilidadesdisponíveis pelo hardware da máquina
Sistemas Operacionais 4
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Memória lógica e memória física
❚ Memória lógica❙ É aquela que o processo “enxerga”❙ Endereços lógicos são aqueles manipulados por um processo
❚ Memória física❙ Implementada pelos circuitos integrados de memória❙ Endereços físicos são aqueles que correspondem a uma posição real de
memória
Sistemas Operacionais 5
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Endereço lógico versus endereço físico
❚ Espaço lógico de um processo é diferente do espaço físico❙ Endereço lógico: gerado pela CPU (endereço virtual)❙ Endereço físico: endereços enviados para a memória RAM
❚ Programas de usuários “vêem” apenas endereços lógicos❚ Endereços lógicos são transformados em endereços físicos no
momento de execução dos processos
Sistemas Operacionais 6
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Unidade de gerência de memória
❚ Memory Management Unit (MMU)❚ Hardware que faz o mapeamento entre endereço lógico e endereço
físico
❚ Complexidade variável de acordo com a funcionalidade oferecida❙ Mecanismos de suporte para proteção, carga de programas, tradução de
endereços lógicos a endereços físicos, etc...
CPUEnd.lógico
MMUEnd.físico
Memória
Sistemas Operacionais 7
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Exemplos de MMU
Processador
Registrador LimiteInferior
Registrador LimiteSuperior
Memória< >
Interrupção(Endereço Ilegal)
Interrupção(Endereço Ilegal)
123 123
100 799
sim
não não
sim
Processador
Registrador de Limite Registrador de Base
Memória> +
Interrupção(Endereço Ilegal)
123 623
200 500
sim
não
Sistemas Operacionais 8
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Execução de programas
❚ Um programa deve ser transformado em um processo para podeser executado❙ Alocação de um descritor de processos❙ Alocação de áreas de memória para código, dados e pilha
❚ Transformação é feita através de uma série de passos, alguns coma ajuda do próprio programador❙ Compilação, diretivas de compilação e/ou montagem, ligação, etc...
❚ Amarração de endereços (binding)
Sistemas Operacionais 9
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Amarração de endereços (binding)
❚ Atribuição de endereços (posições de memória) para código edados pode ser feita em três momentos diferentes:❙ Em tempo de compilação
❙ Em tempo de carga
❙ Em tempo de execução❚ Diferenciação entre o endereço lógico e o endereço físico
❙ Como traduzir endereço lógico em endereço físico❙ Código absoluto e código relocável
Sistemas Operacionais 10
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Transformação de programa em processo
Programa
Compilador
objeto
Ligador
...
executável
Carregador
RAMBiblioteca
estáticaFase de compilação
Fase de ligação
Fase de carga
Sistemas Operacionais 11
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Carregador absoluto versus carregador relocador
❚ Programador não tem conhecimento onde o programa serácarregado na memória
❚ Endereço só é conhecido no momento da carga❙ Durante execução do programa sua localização física pode ser alterada
! e.g.; procedimento de swapping❚ Necessidade de traduzir endereços lógicos à endereços físicos❚ Relocação é a técnica que fornece realiza essa tradução
❙ Via software: carregador relocador❙ Via hardware: carregador absoluto
Sistemas Operacionais 12
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Código relocável
❚ Carregador relocador❙ Correção de todas as referências a memória de forma a corresponder ao
endereço de carga do programa❚ Necessidade de identificar quais endereços devem ser corrigidos
❙ Código relocável❙ Mapeamento das posições a serem corrigidas é mantida através de tabelas
❚ Código executável mantém informações de relocação na forma detabelas❙ No momento da carga o programa executável é interpretado e os endereços
corrigidos
Sistemas Operacionais 13
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Código absoluto
❚ Carregador absoluto❙ Não realiza correção de endereços no momento da carga do programa em
memória❚ Código executável absoluto não necessita manter tabelas de
endereços a serem corrigidos❚ Endereço de carga
❙ Fixo pelo programa (programador)❙ Qualquer
! Correção pode ser feita automáticamente, de forma transparente, a partirde registradores de base
Sistemas Operacionais 14
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Mecanismos básicos de gerência de memória
❚ Um programa (processo) para ser executado deve estar namemória❙ Onde deve ser carregado?
! Problema de alocação de memória❚ A alocação de memória depende de:
❙ Código absoluto versus código relocável❙ Necessidade de espaço contíguo ou não
❚ Necessidade de gerenciamento da memória❙ Determinação de áreas livres e ocupadas❙ Racionalizar a ocupação da memória
Sistemas Operacionais 15
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
PaginaçãoSegmentaçãoSegmentação com paginação
SimplesParticionadaContígua
Não contígua
Alocação
EstáticaDinâmica
Mecanismos para alocação de memória
❚ Até estudarmos memória virtual supor que para um programa serexecutada ele necessita estar carregado completamente emmemória
Sistemas Operacionais 16
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Alocação contígua simples
❚ Sistema mais simples❚ Memória principal é dividida em duas partições:
❙ Sistema operacional (parte baixa da memória)❙ Processo do usuário (restante da memória)
❚ Usuário tem controle total da memória podendo inclusive acessar aárea do sistema operacional❙ e.g. DOS (não confiável)
❚ Evolução:❙ Inserir proteção através de mecanismos de hardware + software
! Registradores de base e de limite! Memory Management Unit (MMU)
Sistemas Operacionais 17
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Alocação contígua particionada (1)
❚ Existência de múltiplas partições❚ Imposta pela multiprogramação❚ Filosofia:
❙ Dividir a memória em blocos (partições)❙ Cada partição pode receber um processo (programa)❙ Grau de multiprogramação é fornecido pelo número de partições
! Importante: não considerando a existência de swapping❚ Duas formas básicas:
❙ Alocação contígua com partições fixa (estática)❙ Alocação contígua com partições variáveis (dinâmica)
Sistemas Operacionais 18
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Alocação contígua particionada (2)
❚ O sistema operacional é responsável pelo controle das partiçõesmantendo informações como:❙ Partições alocadas❙ Partições livres❙ Tamanho das partições
OS
processo 5
processo 8
processo 2
OS
processo 5
processo 2
OS
processo 5
processo 2
OS
processo 5
processo 9
processo 2
processo 9
processo 3
Sistemas Operacionais 19
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Alocação contígua particionada fixa
❚ Memória disponível é dividida em partições de tamanho fixo quepodem ser do mesmo tamanho ou não
❚ Questões:❙ Processos podem ser carregados em qualquer partição?
! Depende se código é absoluto ou relocável❙ Número de processos que podem estar em execução ao mesmo tempo
! Sem swapping → igual ao número de partições (máximo)! Com swapping → maior que número de partições
❙ Programa é maior que o tamanho da partição! Não executa a menos que se empregue um esquema de overlay
Sistemas Operacionais 20
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Gerenciamento de partições fixas
❚ Com código absoluto❙ Um processo só pode ser carregado na área de memória (partição) para a
qual foi compilado❙ Pode haver disputa por uma partição mesmo tendo outras livres
! Processo é mantido no escalonador de longo prazo (termo)! Empregar swapping
❚ Com código relocável❙ Um processo de tamanho menor ou igual ao tamanho da partição pode ser
carregado em qualquer partição disponível❙ Se todas as partições estão ocupadas, duas soluções:
! Processo é mantido no escalonador de longo prazo (termo)! Empregar swapping (escalonamento a médio prazo)
Sistemas Operacionais 21
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Fragmentação Interna
❚ Problema da alocação fixa é uso ineficiente da memória principal❚ Um processo, não importando quão pequeno seja, ocupa uma
partição inteira❙ Fragmentação interna
8 M
8 M
5 M
8 M
8 MSist. Operacional
Fragmentaçãointerna
Sistemas Operacionais 22
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Sist. Operacional8 M
12 M
8 M
8 M
6 M
4 M
2 M
Paliativo para reduzir fragmentação interna
❚ Partições de tamanho diferentes
Sistemas Operacionais 23
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Algoritmos para alocação de partições fixas(1)
❚ Se código é absoluto a alocação é determinada na fase demontagem, compilação ou ligação
❚ Se código é relocável:❙ Partições de igual tamanho
! Não importa qual partição é utilizada❙ Partições de diferentes tamanhos
! Atribui o processo a menor partição livre capaz de armazená-lo! Processo são atribuídos a partições de forma a minimizar o desperdício
de memória (fragmentação interna)
Sistemas Operacionais 24
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Algoritmos para alocação de partições fixas(2)
NovosProcessos
Sisop Sisop
NovosProcessos
Uma fila por partição Uma fila paratodas partições
Sistemas Operacionais 25
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Alocação particionada dinâmica
❚ Objetivo é eliminar a fragmentação interna❚ Processos alocam memória de acordo com suas necessidades❚ Partições são em número e tamanho variáveis
SisOp
Processo 1 320 K
Processo 2
Processo 3
224 K
288 K
64 K
SisOp
Processo 1 320 K
Processo 3
224 K
288 K
64 K
Sisop
Processo 1 320 K
Processo 3 288 K
64 K
Processo 4 128 K96 K
Sistemas Operacionais 26
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Fragmentação externa
❚ A execução de processos pode criar pedaços livres de memória❙ Pode haver memória disponível, mas não contígua
! Fragmentação externa
SisOp
Processo 1 320 K
Processo 3 288 K
64 K
Processo 4 128 K96 K
Exemplo:
Criação processo 120K
Sistemas Operacionais 27
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Soluções possíveis fragmentação externa
❚ Reunir espaços adjacentes de memória❚ Empregar compactação
❙ Relocar as partições de forma a eliminar os espaços entre elas e criando umaárea contígua
❙ Desvantagem:! Consumo do processador! Acesso a disco
❚ Acionado somente quando ocorre fragmentação❚ Necessidade de código relocável
Sistemas Operacionais 28
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Gerenciamento de partições dinâmicas
❚ Determinar qual área de memória livre será alocada a um processo❚ Sistema operacional mantém uma lista de lacunas
❙ Pedaços de espaços livres em memória❚ Necessidade de percorrer a lista de lacunas sempre que um
processo é criado❙ Como percorrer essa lista??
Sistemas Operacionais 29
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Algoritmos para alocação contígua dinâmica
❚ Best fit❙ Minimizar tam_processo - tam_bloco❙ Deixar espaços livres os menores possíveis
❚ Worst fit❙ Maximizar tam_processo - tam_bloco❙ Deixar espaços livres os maiores possíveis
❚ First fit❙ tam_bloco > tam_processo
❚ Circular fit❙ Variação do first-fit
Sistemas Operacionais 30
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
20k
40k
30k
A
SisOp
A
C
20k
40k
30k
A
SisOp
A
C
20k
40k
30k
A
SisOp
A
C
Exemplos: Algoritmos alocação contígua dinâmica
Best-fit Worst-fit First-Fit
20k
40k
30k
A
SisOp
A
C
Sistemas Operacionais 31
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
SisOp
Processo 1 320 K
Processo 3 288 K
64 K
Processo 4 128 K96 K
Exemplo:
Criação processo 120k
Desvantagem de partições variáveis
❚ Tende a criar lacunas de memória livres que individualmente podemnão ser suficientes para acomodar um processo❙ Pode haver memória livre, mas não contígua
! Fragmentação externa
Sistemas Operacionais 32
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Soluções possíveis para fragmentação externa
❚ Reunir espaços adjacentes de memória❚ Empregar compactação
❙ Relocar as partições de forma a eliminar os espaços entre elas e criandouma área contígua
❙ Desvantagem:! Consumo do processador! Acesso a disco
❚ Acionado somente quando ocorre fragmentação❚ Necessidade de código relocável
Sistemas Operacionais 33
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
❚ Processo necessita estar na memória para ser executado❙ Se não há mais espaço em memória é necessário fazer um rodizio de
processos em memória
❚ Memória secundária suficientemente grande para armazenar cópiasde todos os processos de usuários → backing store
P2
P1
Swap out
Swap in
Memória
Swapping (1)
Sistemas Operacionais 34
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Swapping (2)
❚ Tempo do swap é proporcional ao tamanho do processo❙ Possui influência na troca de contexto
! Política de swapping! Escalonador de médio prazo (termo)
❚ Atenção!!! Processos que realizam E/S❙ Nunca realizar swap em processos que estão com E/S pendente❙ Utilizar buffers de E/S internos ao sistema
! Evitar que o E/S seja transferido a endereços de memória inválidos❚ Existem variantes do sistema de swapping utilizados em sistemas
como UNIX ou Microsoft Windows
Sistemas Operacionais 35
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Leituras complementares
❚ R. Oliveira, A. Carissimi, S. Toscani Sistemas Operacionais EditoraSagra-Luzzato, 2001.❙ Capítulo 6, seções 6.2 e 6.3
❚ A. Silberchatz, P. Galvin Operating System Concepts Addison-Wesley. 4th edition.❙ Capítulo 8, Seção 8.4
Sistemas Operacionais 36
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Introdução
❚ Problemas com alocação particionada❙ Necessidade de uma área contígua de memória (tamanho do processo)❙ Fragmentação interna (partições fixas) ou externa (partições variáveis)
❚ Nova abordagem é considerar a existência de um espaço deendereçamento lógico e de um espaço de endereçamento físico❙ O espaço de endereçamento físico não precisa ser contíguo❙ Necessita “mapear” o espaço lógico no espaço físico
! Dois métodos básicos:! Paginação! Segmentação
❚ Suposição: para ser executado o processo necessita estarcompletamente carregado em memória
Sistemas Operacionais 37
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Paginação (1)
❚ A memória física (sistema) e a memória lógica (processo) sãodividos em blocos de tamanho fixo e idênticos❙ Memória física dividida em blocos de tamanho fixo denominados de frames❙ Memória lógica dividide em blocos de tamanho fixo denominados de páginas
❚ Elimina a fragmentação externa e reduz a fragmentação interna
Sistemas Operacionais 38
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Paginação (2)
❚ Para executar um processo de n páginas, basta encontrar n frameslivres na memória❙ Páginas são carregadas em qualquer frame livre
❚ Necessidade de traduzir endereços lógicos (páginas) em endereçosfísicos (frames)
Processo A
Frame0
1
2
3
4
5
6
7
Página
0
1
2
3
Sistemas Operacionais 39
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Paginação: Endereço lógico
❚ Endereço lógico é dividido em duas componentes:❙ Número da página❙ Deslocamento dentro de uma página
❚ Tamanho da página (P) pode assumir qualquer tamanho porémemprega-se um tamanho potência de 2 para facilitar operações dive mod
Processo A
Página
0
1
2
3
EE = p + dp = E div Pd = E mod Pd
pdp
m bits
m-n n
E
Sistemas Operacionais 40
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Tradução de endereço lógico em endereço físico
End. Físico
f dp dCPU
End. lógico
f
Página/Frame
Tabela de páginas
Memória RAM
Sistemas Operacionais 41
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
dp
15 bits
2 13
Exemplo de paginação (1)
❚ Características do sistema:❙ Memória física: 64 kbytes (16 bits)❙ Tamanho processo (máx): 32 kbytes (15 bits)❙ Páginas 8 kbytes
❚ Paginação:❙ Número de frames: 64/8 = 8 (0 a 7) → 3 bits❙ Número de páginas: 32/8 = 4 (0 a 3) → 2 bits❙ Deslocamento: 8 kbytes → 13 bits
df
16 bits
3 13
End. Lógico
End.Físico
Sistemas Operacionais 42
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Exemplo de paginação (2)
End.
00002000400060008000A000C000E000
Frame
01
234567
Memória física
0 1100 1001 1000 100
CPUC98
100xxx
C980
End. lógico
End. físico
2 13
000 1100 1001 1000
3 13
Sistemas Operacionais 43
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Características da paginação
❚ Paginação é um tipo de relocação (via hardware)❚ Não gera fragmentação externa❚ Fragmentação interna é restrita apenas a última página❚ Importante:
❙ Visão do usuário: espaço de endereçamento contíguo❙ Visão do sistema: processo é «esparramado » na memória física
❚ n páginas são alocadas a n frames implicando na criação de umatabela de correspondência❙ Tabela de páginas
❚ Facilita implementação de proteção e compartilhamento
Sistemas Operacionais 44
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Tamanho da página
❚ Páginas grandes significam❙ Processos compostos por menos páginas (tabela de páginas menores)❙ Aumento da fragmentação interna na última página
❚ Páginas pequenas significam❙ Processos compostos por mais páginas (tabela de página maiores)❙ Diminuição da fragmentação interna na última página
❚ Objetivos conflitantes❚ Tamanho da página é imposto pelo hardware (MMU)
❙ Valores típicos variam entre 1 kbyte e 8 kbytes
Sistemas Operacionais 45
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Questões relacionadas com a gerência de páginas
❚ A gerência de memória deve manter controle de áreas livres eocupadas
❚ Inclusão de mecanismos de proteção❙ Evitar que um processo acesse área (páginas) de outros processos❙ Garantir que um processo acesse apenas endereços válidos❙ Garantir acessos autorizados a uma posição de memória
! e.g.: páginas read-only, read-write, etc.❚ Inclusão de mecanismos de compartilhamento
❙ Permitir que dois ou mais processos dividam uma área comum! e.g.: páginas de código de um aplicativo do tipo editor de texto
Sistemas Operacionais 46
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Proteção
❚ Proteção de acesso é garantida por definição:❙ Processos acessam somente suas páginas → end. válidos❙ Endereço inválido apenas na última página
! Se houver fragmentação interna❚ Inclusão de bits de controle na tabela de página (por entrada)
❙ Indicação se a página é de leitura, escrita ou executável❚ Bit de validade:
❙ Página pertence ou não ao end. lógico do processo
Sistemas Operacionais 47
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Exemplo de proteção
End.
00002000400060008000A000C000E000
Frame
01234567
Memória física
ProcessoPag.1
Pag.0Pag.3
Pag.2
válido
Tabela depáginas
P0
Sistemas Operacionais 48
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Compartilhamento de páginas
❚ Código compartilhado❙ Uma cópia do código (read-only, re-entrante) pode ser compartilhada entre
vários processos (e.g.; editores de texto, compiladores, etc...)❙ O código compartilhado pertence ao espaço lógico de todos os processos
❚ Dados e código próprios❙ Cada processo possui sua própria área de código e seus dados
Sistemas Operacionais 49
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
01234567
Memória física
Exemplo de compartilhamento
End.
00002000400060008000A000C000E000
Frame
Processo 1
P0/P1P3
P2
Válido/Compartilhado
Tabela depáginas
Processo 2
Válido/Compartilhado
Tabela depáginas
P1
P3
P0
Sistemas Operacionais 50
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Implementação da tabela de páginas
❚ Sistema operacional deve manter :❙ Frames livres/alocados❙ Número de frames e de páginas de um processo❙ Uma entrada para cada frame e para cada processo
❚ Como implementar a tabela de páginas?❙ Registradores❙ Memória
Sistemas Operacionais 51
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Implementação da tabela de páginas via registradores
❚ Tabela de páginas é mantida por um conjunto de registradores❙ Cada página um registrador❙ No descritor de processo devem ser mantidas cópias dos registradores
! Troca de contexto: atualização dos registradores❚ Desvantagem é o número de registradores
Sistemas Operacionais 52
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Implementação da tabela de páginas em memória
❚ Tabela de páginas é mantida em memória❙ Page-table base register (PTBR): início da tabela de páginas❙ Page-table length register (PTLR): tamanho em número de entradas.
❚ Cada acesso a dado/instrução necessita, no mínimo, dois acessos amemória❙ Número de acesso depende da largura da entrada da tabela de página e de
como a memória é acessada (byte, word, etc...)
+ Acesso 1 (frame da página)
End. lógico End. físico
Acesso 2(dado/instr.)PTBR
Sistemas Operacionais 53
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Translation look-aside buffers (TLBs)
❚ Uma espécie de meio termo entre implementação via registradorese via memória
❚ Baseada em uma memória cache especial (TLB) composta por umbanco de registradores (memória associativa)
❚ Idéia é manter a tabela de páginas em memória com uma cópiaparcial da tabela em um banco de registradores (TLB)❙ Página acessada está na TLB (hit): similar a solução de registradores❙ Página acessada não está na TLB (miss): similar a solução via memória
Sistemas Operacionais 54
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Key value
Registradores associativos
❚ Registradores associativos permitem a busca de valores porconteúdo, não por endereços❙ Pesquisa paralela
❚ Funcionamento:❙ Se valor “key” está na memória associativa, se obtém valor (value).
Sistemas Operacionais 55
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Implementação da tabela de páginas via TLB
End. Físico
f d
p dCPU
End. lógico
f
Página/Frame
TLB
Tabela de páginas
Hit TLB
Miss TLB
Memória RAM
PTBR
+
Sistemas Operacionais 56
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Aspectos relacionados com o uso de TLB
❚ Melhora o desempenho no acesso a tabela de páginas❙ Tempo de acesso 10 vezes menor que uma memória RAM
❚ Desvantagem é o seu custo❙ Tamanho limitado (de 8 a 2048 entradas)❙ Uma única TLB (pertence a MMU) que é compartilhada entre todos os
processos! Apenas as páginas em uso por um processo necessitam estar na TLB
❚ Um acesso é feito em duas partes:❙ Se página está presente na TLB (hit) a tradução é feita❙ Se página não está presente na TLB (miss), consulta a tabela em memória e
atualiza entrada na TLB
Sistemas Operacionais 57
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Hit ratio (h)
❚ Probabilidade de qualquer dado referenciado estar na memória, nocaso, na TLB❙ Taxa de acerto: hit ratio❙ Seu complemento é a taxa de erro: miss ratio
( ) ( ) [ ]memmemtlbmemtlb
memmemtlb
memtlb
aaaaamedio
aaaacesso
aaacesso
ttthttht
tttt
ttt
++×−++×=
++=
+=
1
CPU TLB Mem.h
Mem.Mem.1-h
Sistemas Operacionais 58
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Exemplo: influência do hit ratio no desempenho
( ) ( )
( ) ( ) nst
ratiohit
nst
ratiohit
nst
nst
nst
nst
medio
medio
missacesso
hitacesso
memacesso
tlbacesso
12222002.012098.0
98.0_
14022020.012080.0
80.0_
22010010020
12010020
100
20
)(
)(
_
_
=×+×==
=×+×==
=++=
=+=
=
=CPU TLB Mem.
h
Mem.Mem.1-h
Sistemas Operacionais 59
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Paginação multinível
❚ Na prática as tabelas de página possuem tamanho variável❙ Como dimensionar o tamanho da tabela de páginas?
! Fixo ou variável conforme a necessidade?❙ Como armazenar a tabela de páginas?
! Contígüo em memória → fragmentação externa! Paginando a própria tabela
❚ A paginação multinível surge como solução a esses problemas❙ Diretórios de tabela de páginas (n níveis)❙ Tabelas de páginas
Sistemas Operacionais 60
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Exemplo: Paginação a dois níveis
❚ Processadores 80x86❙ End. Lógico: 4 Gbytes (32 bits)❙ Páginas: 4 kbytes❙ Tamanho da tabela de páginas: 4 Gbytes / 4 kbytes = 1048576 entradas
dt
32 bits
10 12
p
10
!!!!
!!!!
df
Memóriafísica
Diretório de tabela de páginas
Tabela depáginas
Sistemas Operacionais 61
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Paginação a três níveis
❚ Típico de arquiteturas de processadores de 64 bits
Nível 1 Nível 2 Nível 3 deslocamento
PáginaTabela depágina
Diretórioglobal
Diretóriointermediário
Sistemas Operacionais 62
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Tabela de páginas invertida
❚ Problema com tabela de páginas é o seu tamanho❚ Tabela de páginas invertida surge como uma solução
❙ Uma tabela de páginas para todo o sistema (não mais por processo)❙ Uma entrada para cada frame❙ Endereço lógico da página e a qual processo pertence
❚ Endereço lógico é formado por <process_id, página, deslocamento>❚ Cada entrada da tabela possui <process_id; página>❚ Tabela é pesquisada e retorna, se presente, o indice i associado a
entrada❙ Cada índice corresponde a um frame
Sistemas Operacionais 63
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Esquema tabela de páginas invertida
CPU pid d
Tabela depáginas
Pid | p
i d
Memóriafísica
Endereçológico
Endereçofísico
p
i
Sistemas Operacionais 64
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Leituras complementares
❚ R. Oliveira, A. Carissimi, S. Toscani Sistemas Operacionais EditoraSagra-Luzzato, 2001.❙ Capítulo 6, seção 6.5
❚ A. Silberchatz, P. Galvin Operating System Concepts. 4rd editionAddison-Wesley.❙ Seção 8.5
Sistemas Operacionais 65
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Segmentação
❚ Leva em consideração a visão de programadores e compiladores❚ Um programa é uma coleção de segmentos, tipicamente:
❙ Código❙ Dados alocados estaticamente❙ Dados alocados dinamicamente❙ Pilha
❚ Um segmento pode ser uma únidade lógica❙ e.g.: procedimentos (funções), bibliotecas
❚ Gerência de memória pode dar suporte diretamente ao conceito desegmentos
Sistemas Operacionais 66
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Esquema lógico da segmentação
1
32
4
1
4
2
3
Espaço de usuário
Espaço físico
Sistemas Operacionais 67
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Endereço lógico em segmentação
❚ Endereço lógico é composto por duas partes:❙ Número de segmento❙ Deslocamento dentro do segmento
❚ Os segmentos não necessitam ter o mesmo tamanho❚ Existe um tamanho máximo de segmento❚ Segmentação é similar a alocação particionada dinâmica
Sistemas Operacionais 68
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Tradução de endereço lógico em endereço físico
❚ Tradução é feita de forma similar a paginação (via tabela)❙ Tabela de segmentos
❚ Entrada na tabela de segmento:❙ base: endereço inicial (físico) do segmento na memória❙ limite: tamanho do segmento
❚ Necessidade de verificar a cada acesso se ele é válido❙ Hardware (comparador)
Sistemas Operacionais 69
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Esquema de tradução da segmentação
MemóriafísicaEnd.
Físico
s dCPU
End. lógico
base/limite
Tabela de segmentos
<
s d
Sistemas Operacionais 70
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Exemplo de tradução de endereço lógico em endereçofísico
Memória Lógica
Memória Física
000000000100010000110010000101
000000000100010000110010000101001100011101000010010101001011
10000100011001010011
01100011010111001111
10100101011011010111
C1C2C3C4
P1P2P3
D1D2D3D4
Tabela de Segmentos
Segmento Base
00
01
10
01000
00000
10100
C1C2C3C4C5C6
Limite
C5C6
0110
0100
0011
00000000010001000011
D1D2D3D4
000000000100010
P1P2P3
Segmento 00 - Código
Segmento 01 - Dados
Segmento 10 - Pilha
Sistemas Operacionais 71
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Implementação da tabela de segmentos
❚ Construção de uma tabela de segmentos❙ Cada segmento corresponde a uma entrada na tabela
❚ Cada segmento necessita armazenar dois valores:❙ Limite e base
❚ Análogo a tabela de páginas:❙ Registradores❙ Memória
Sistemas Operacionais 72
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Implementação 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 cópias dos registradores
! Troca de contexto: atualização dos registradores❚ Número de registradores impõem uma limitação prática ao tamanho
da tabela de segmentos (como na paginação)
Sistemas Operacionais 73
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Implementação da tabela de segmentos em memória
❚ Tabela de segmentos armazenada em memória❚ Segment-table base register (STBR): localização do início da tabela
de segmentos na memória❚ Segment-table length register (STLR): indica o número de
segmentos de um processo! Segmento é válido apenas se: s < STLR.
Sistemas Operacionais 74
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Problemas com implementação da tabela em memória
❚ Problemas similares ao da paginação:❙ Tabela pode ser muito grande❙ Dois acessos a memória para acessar um dado/instrução
❚ Solução:❙ Empregar uma TLB
❚ Observação (válida também para a paginação)❙ A consulta a tabela em memória provoca no mínimo 2 acessos a memória,
pois uma entrada na tabela pode representar mais de um acesso.
Sistemas Operacionais 75
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Implementação da tabela de segmentos via TLB
MemóriafísicaEnd.
Físico
s dCPU
End. lógico
Base/limite
base/limite
TLB
Tabela de segmentos
hit
miss
Base d
<
Sistemas Operacionais 76
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Aspectos de proteção e compartilhamento
❚ Os príncipios já estudados para paginação continuam válidos para asegmentação❙ e.g.; bits de proteção (rwx), bit de validade, bits de compartilhamento, etc..
❚ Segmentação adiciona a possibilidade de compartilhar apenastrechos da área de código
❚ Problema associado:❙ Segmentos compartilhados devem ter a mesma identificação (entrada) na
tabela de segmentos
Sistemas Operacionais 77
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Desvantagem da segmentação
❚ A segmentação provoca fragmentação externa quando segmentoscomeçam a ser liberar memória
❚ Mesmo problema de alocação partições variáveis com as mesmassoluções:❙ Concatenação de segmentos adjacentes❙ Compactação da memória
Sistemas Operacionais 78
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Solução para fragmentação externa
❚ A paginação é a solução natural para a fragmentação❚ Analisar o problema sob dois pontos extremos:
❙ Um processo é um único segmento❙ Cada byte é um segmento
! Sem fragmentação externa, nem interna! Não viável pelos overheads envolvidos! Similar a página de 1 byte
❚ Solução: meio termo entre os extremos❙ Fazer um segmento ser composto por um número fixo (e reduzido) de bytes❙ Equivale a ter o segmento dividido em internamente em blocos
Sistemas Operacionais 79
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Segmentação com paginação
❚ Recuperar as vantagens dos dois métodos em relação afragmentação:❙ Fragmentação interna: paginação apresenta, segmentação não❙ Fragmentação externa: segmentação apresenta, paginação não
❚ Solução se traduz em paginar segmentos
End. lógico s d
s dp
63
210
!64k 1 k
Segmento contento64 páginas de 1k
Sistemas Operacionais 80
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Leituras complementares
❚ R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. EditoraSagra-Luzzato, 2001.❙ Capítulo 6
❚ A. Silberchatz, P. Galvin, G. Gane; Applied Operating SystemConcepts. Addison-Wesley, 2000.❙ Capítulo 9
❚ W. Stallings; Operating Systems. (4th edition). Prentice Hall, 2001.❙ Capítulo 7
Capítulo 72a edição
Revisão: Fev/2003
Sistemas OperacionaisMemória virtual
Sistemas Operacionais 2
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Motivação
❚ Problemas da gerência de memória (modelo visto até o momento)❙ Todo o espaço lógico mapeado no espaço físico❙ O tamanho do programa é limitado pelo tamanho da memória❙ Desperdício de memória por manter armazenado código não utilizado
freqüentemente! e.g.; rotinas de tratamento de erro
❚ Um programa ocupando apenas um espaço de memória querealmente necessária permite uma economia substancial de espaçode memória❙ Espaço liberado permitiria a carga e execução simultânea de mais programas
Sistemas Operacionais 3
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Memória virtual: conceito
❚ Memória virtual é a técnica que permite a execução de um processosem que ele esteja completamente em memória❙ Separação do vínculo de endereço lógico do endereço físico
❚ Princípios básicos:❙ Carregar uma página/segmento na memória principal apenas quando ela for
necessária! Paginação por demanda! Segmentação por demanda
❙ Manter em memória apenas as página/segmentos necessários
Sistemas Operacionais 4
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Memória virtual: vantagens
❚ Aumento do grau de multiprogramação❚ Reduz o número de operações de E/S para carga/swap do
programa❚ Capacidade de executar programas maiores que a capacidade
disponível de memóriaPn
P0
!
FK
F0
!
Número de páginas maior que o número de frames (n > k)
Mémoria físicaMemória lógica(processo)
Sistemas Operacionais 5
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Princípio da localidade
❚ Base de funcionamento da memória virtual❚ Na execução de um processo existe uma probabilidade que
acessos a instruções e a dados sejam limitados a um trecho❙ Exemplos:
! Execução da instrução i+1 segue a execução da instrução i! Laços for, while, do-while! Acessos a elementos de vetores
❚ Em um determinado instante de tempo apenas esses trechos doprocesso necessitam estar em memória
❚ Possibilidade de “adivinhar” os trechos necessários a seqüência deexecução
Sistemas Operacionais 6
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Necessidades para implementação de memória virtual
❚ Hardware deve suportar paginação e/ou segmentação❚ Sistema operacional deve controlar o fluxo de páginas/segmentos
entre a memória secundária (disco) e a memória principal❚ Necessidade de gerenciar
❙ Areas livres e ocupadas❙ Mapeamento da memória lógica em memória física❙ Substituição de páginas/segmentos
Sistemas Operacionais 7
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Paginação por demanda (1)
❚ Forma mais comum de implementação de memória virtual❚ Similar a paginação com swapping
❙ Invés de ser realizado o swap-in/out de um processo, se realiza o swap-in/outde apenas uma página do processo (page-in/out)
Fn
F0
!
Fn
F0
!
Swap-in page-in
swapper pager
Paginação simples Paginação por demanda
Sistemas Operacionais 8
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Paginação por demanda (2)
❚ Carrega uma página para a memória principal somente quando elaé necessária
❚ Vem de encontro com a filosofia de memória virtual❙ Reduz operações de E/S
! Carrega apenas a(s) página(s) necessária(s)❙ Reduz quantidade de memória utilizada por processo❙ Aumenta grau de multiprogramação
Sistemas Operacionais 9
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
F0
!page-inPage-fault
6543210
gfedcba
Tab. Páginas
Paginação por demanda (3)
❚ Uma referência está sempre associada a uma página❙ Inválida❙ Página presente na memória/não presente na memória (page-fault)
❚ Necessita conhecimento de quais páginas estão na memóriasecundária e quais páginas estão na memória principal❙ Bit válido/inválido associado a cada entrada na tabela de páginas
Sistemas Operacionais 10
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Tratamento de page-fault (1)
!mov ax,m
! i
Sisop
Fn
F0
!
1 2
3
4
5
6
Sistemas Operacionais 11
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Tratamento de falta de página (page-fault) (2)
❚ Passos realizados (visão do sistema)1. Trap para sistema operacional2. Salvamento de contexto3. Detecção que a interrupção é por page-fault4. Verifica se referência é válida e determina localização da página no disco5. Solicita operação de leitura da página “faltante” do disco para o frame6. Passa processo da página “faltante” para estado suspenso e escalona outro
processo7. Interrupção do disco (final de transferência da página)8. Atualiza tabela de página9. Passa processo do estado suspenso para estado pronto
Sistemas Operacionais 12
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Desempenho da paginação por demanda (1)
❚ Taxa de falta de páginas → 0 ≤ p ≤ 1.0❙ p = 0; qualquer referência não gera falta de páginas❙ p = 1, qualquer referência provoca uma falta de página
❚ Tempo efetivo de acesso:
( ) faultpageacessoefetivo tptpt _1 ×+×−=
Ex.: tempo acesso: 100 nstempo page_fault: 25 mste =(1-p) x 100 + p x 25000000te = 100 + 24999900 x p → p=1/1000te ≅ 25 us (250 x tacesso)
Sistemas Operacionais 13
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Desempenho da paginação por demanda (2)
❚ Exemplo:❙ Objetivo de aumentar no máximo em 10% o tempo de acesso
110 ≅ 100 + p x 2500000010 ≅ 25000000pp = 0.0000004 (1 page fault a cada 250000 acessos)
❚ Como melhorar o desempenho?❙ Manter a taxa de falta de páginas (page fault) pequena❙ Acelerar procedimentos de leitura em disco
! Procedimento de swap (pager)
Sistemas Operacionais 14
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Implementação da memória virtual (1)
❚ A memória virtual pode ser implementada por:❙ Paginação por demanda❙ Segmentação por demanda❙ Segmentação com paginação (recai em paginação)
❚ O princípio de funcionamento é o mesmo porém é mais simples degerenciar paginação por demanda
Sistemas Operacionais 15
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Implementação da memória virtual (2)
❚ Memória física é um recursos limitado, é necessário então:❙ Política de carga de página❙ Política de localização da página❙ Política de substituição de página
❚ Partição de swap❙ Área específica do disco destinada a armazenar páginas (segmentos)❙ Organizado de forma diferente do sistema de arquivos para otimizar o acesso
Sistemas Operacionais 16
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Política de carga de páginas
❚ Carrega uma página para um frame❚ Duas situações:
❙ Frame livre: carrega página no frame❙ Não há frame disponível:
! Libera espaço transferindo página(s) da memória (pager-out) para o disco(área de swap)
! Política de substituição para seleção da página “vítima”❚ Otimizações:
❙ Carregar mais de uma página na memória❙ Nem toda página necessita pager-out:
! Páginas não modificadas! Páginas read-only (código)
Sistemas Operacionais 17
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Política de localização
❚ Determina na memória real a localização das páginas de umprocesso
❚ Realizado pelo hardware de paginação/segmentação doprocessador❙ Transparente sob o ponto de vista do sistema operacional
Sistemas Operacionais 18
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Substituição de páginas na memória
❚ As páginas físicas (frames) podem ficar totalmente ocupada amedida que páginas lógicas de processos são carregadas
❚ Necessidade de liberar uma página física (frame) para atender àfalta de página
❚ O algoritmo de substituição de páginas é responsável pela escolhade uma página “vítima”
Sistemas Operacionais 19
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Bits auxiliares
❚ Objetivo é auxiliar a implementação do mecanismo de substituiçãode páginas❙ Não são absolutamente necessários porém simplificam e tornam mais eficaz
o mecanismo de substituição de páginas❚ Bit de sujeira (dirty bit)
❙ Indica quando uma página foi alterada durante a execução do processo❙ Se página não foi alterada não é necessário salvar seu conteúdo no disco
❚ Bit de referência (reference bit)❙ Indica se uma página foi acessada dentro de um intervalo de tempo
❚ Bit de tranca (lock bit)❙ Evita que uma página seja selecionada como “vítima”
Sistemas Operacionais 20
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Política de substituição de páginas (1)
❚ Utilizado quando não há mais frames livres❚ Seleciona na memória uma página a ser substituída quando outra
página necessita ser carregada na memória❙ Problema é determinar a página menos necessária
❚ Certas páginas que não devem ser substituídas podem ser“grampeadas” a frames (frame locking), e.g.;❙ Código e estruturas de dados do sistema operacional❙ Buffers de E/S
Sistemas Operacionais 21
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Política de substituição de páginas (2)
❚ Selecionar para substituição uma página que será referenciadadentro do maior intervalo de tempo (algoritmo ótimo)❙ Impossível de se ter conhecimento do “futuro”❙ Emprego de aproximações
❚ Algoritmos para substituição de páginas❙ First-come-first-served (FCFS)❙ Least Recently Used (LRU)❙ Baseado em contadores
❚ String de referência:❙ Método para avaliar algoritmos de substituição de página❙ Geração randômica de endereços
Sistemas Operacionais 22
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
First-come-first-served (FCFS)
❚ Também denominado de First-In, First-Out (FIFO)❚ Frames na memória principal são alocados a páginas na forma de
um buffer circular❚ Simples implementação❚ Substitui a página que está a mais tempo na memória❚ Desvantagem é que a página substituída pode ser necessária logo
a seguir
Sistemas Operacionais 23
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 17 7 7 2 2 2 2 4 4 4 0 0 0 0 0 0 0 7 7 7- 0 0 0 0 3 3 3 2 2 2 2 2 1 1 1 1 1 0 0- - 1 1 1 1 0 0 0 3 3 3 3 3 2 2 2 2 2 1
15 Page-faultsPágina 0 foi substituída e em seguida referenciada!!
Exemplo: First-come-first-serverd (FCFS)
❚ Características do sistema❙ Memória física composta por 3 frames❙ Processo composto por uma memória lógica de 8 páginas
Sistemas Operacionais 24
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Least Recently Used (LRU)
❚ Premissa básica é que páginas acessadas recentemente por umprocesso serão novamente acessadas em um futuro “próximo”
❚ Página a ser substituída é a página referenciada a mais tempo❙ Pelo princípio da localidade, esta página deve ser a de menor probabilidade
de ser referenciada em futuro proximo❚ Desvantagem:
❙ Cada página deve possuir a “data” da última referência! Suporte raramente suportado pelas MMUs
Sistemas Operacionais 25
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Exemplo: Least Recently Used (LRU)
❚ Características do sistema❙ Memória física composta por 3 frames❙ Processo composto por uma memória lógica de 8 páginas
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 17 7 7 2 2 2 2 4 4 4 0 0 0 1 1 1 1 1 1 1- 0 0 0 0 0 0 0 0 3 3 3 3 3 3 0 0 0 0 0- - 1 1 1 3 3 3 2 2 2 2 2 2 2 2 2 7 7 7
12 Page-faults
Sistemas Operacionais 26
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Implementação de Least Recently Used (LRU)
❚ Contadores na tabela de páginas❙ Contador❙ Tempo da última referência (time stamp)❙ Desvantagem é o overhead
! Atualização da entrada na tabela de páginas! Seleção da página vítima
❚ Pilha❙ Página referenciada é inserida no topo da pilha❙ Topo da pilha está a página referenciada mais recentemente❙ Base da pilha está a página referenciada menos recentemente❙ Lista duplamente encadeada
Sistemas Operacionais 27
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Aproximações para algoritmo LRU
❚ Hardware (MMU) deve suportar bit(s) de referência❚ Bit(s) de referência podem ser utilizados para aproximar LRU
❙ Bit de referência = 1 (página acessada);❙ Bit de referência = 0 (página não acessada)❙ Substitui página cujo bit de referência é igual a zero
! Desvantagem: não se sabe o “uso passado” e a ordem❚ Melhoria:
❙ Incluir vários bits de referência adicionais (registrador)❙ A cada ∆t consulta o bit de referência e atualiza registrador (shift register)
Sistemas Operacionais 28
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Construção de histórico de bits de referência
Histórico dos Bits de Referência após cada amostragem
Tempo
P0
P1
P2
P3
P4
P5
P6
P7
Amostra
P3 P1
Amostra AmostraAmostra
P3 P1 P2 P0 P1 P2 P7 P2 P7 P0 P6
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
1
Páginas Acessadas
P0
P1
P2
P3
P4
P5
P6
P7
P0
P1
P2
P3
P4
P5
P6
P7
P0
P1
P2
P3
P4
P5
P6
P7
Sistemas Operacionais 29
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Algoritmo de segunda chance (1)
❚ Denominado também de algoritmo do relógio❚ Também baseado em bit de referência❚ Considera que páginas lógicas formam uma lista circular
❙ Apontador percorre a lista circular informando qual será a proxíma “vítima”❙ Se página apontada (sentido horário) tem o bit de referência=1, então:
! Posiciona bit de referência em zero e mantém página na memória! Substitui próxima página que tem bit de referência=0
Sistemas Operacionais 30
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Esquematização do algoritmo de segunda chance
0
1
2
3
4
56
7
8
n
.
.
.
Pag 9ref = 1
Pag 19ref = 1
Pag 1ref = 0
Pag 45ref = 0
Pag 191ref = 0
Pag 727ref = 1
Pag 13ref = 0
Pag 67ref = 1
Pag 33ref = 1
Pag 222ref = 0
0
1
2
3
4
56
7
8
n
.
.
.
Pag 9ref = 1
Pag 19ref = 1
Pag 1ref = 0
Pag 45ref = 1
Pag 191ref = 1
Pag 556ref = 0
Pag 13ref = 0
Pag 67ref = 1
Pag 33ref = 1
Pag 222ref = 0
próximo
ANTES DEPOIS
próximo
Sistemas Operacionais 31
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Algoritmo de segunda chance melhorado
❚ Considera além do bit de referência um bit de modificação (bit uso)❙ bit uso=0: quando a página é carregado na memória❙ bit uso=1: quando a página é modificada
❚ Durante pesquisa por página a ser substituída modifica bit dereferência de 1 para 0 (algoritmo do relógio)❙ Privilegia a substituição de frames com bit uso=0❙ 4 Combinações:
! 00: não referenciada, nem modificada! 01: não referenciada recentemente, porém modificada! 10: recentemente referenciada, mas não modificada! 11: recentemente referenciada, modificada
Sistemas Operacionais 32
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Variação do algoritmo de segunda chance
❚ Variação destinada a MMUs que não implementam bit de referência❚ Baseada em uma lista circular de páginas lógicas e um apontador
(algoritmo relógio) e uma lista de páginas físicas livres❚ Em caso de falta de página
❙ Remove uma página física da lista livres para a qual será lida a página faltosa❙ Página “vítima” é marcada como inválida e incluída na lista de livres❙ Se essa página “vítima” for acessada logo em seguida ela simplesmente é
retirada da lista de livres e inserida na lista de páginas lógicas válidas❚ O tempo de permanência da página na lista de livres oferece a ela
uma segunda chance de permanecer na memória
Sistemas Operacionais 33
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Algoritmos de substituição baseado em contadores
❚ A cada página é associado um contador de número de referências❚ Duas políticas básicas:
❙ Least Frequently Used (LFU)! Substitui a página que possui o menor valor
❙ Most Frequently Used (MFU)! Não substitui a página que possui o menor valor
❚ Algoritmos não utilizados❙ overhead❙ Comportamento não aproxima algoritmo ótimo
Sistemas Operacionais 34
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Alocação de páginas físicas (frames)
❚ Questão:❙ Como se deve alocar frames na presença de “n” processos ?
❚ Problemas:❙ Qual o mínimo necessário por processo ?❙ Quantas páginas físicas alocar para cada processo ?❙ De onde alocar os frames ?
Sistemas Operacionais 35
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Número mínimo de frames
❚ Um processo necessita um número mínimo de frames para executar❙ Definido pelo conjunto de instruções da máquina (modos de endereçamento)
! e.g;! INC MEM necessita duas páginas (código, dados)! MOV MEM,POS necessita três páginas (código, 2 de dados)
❚ Quanto menor o número de frames alocado a um processo maior ataxa de falta de páginas (page fault)❙ Queda de desempenho do sistema❙ Tentar manter o máximo de páginas em memória
❚ Número máximo de páginas mantidas em memória depende dacapacidade física da máquina
Sistemas Operacionais 36
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Algoritmos de alocação (quanto alocar ?)
❚ O problema consiste em determinar quantos frames serão alocadospara cada processo
❚ Dois algoritmos:❙ Alocação igualitária❙ Alocação proporcional
Sistemas Operacionais 37
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Alocação igualitária
❚ Princípio é dividir os m frames da memória física entre os nprocessos aptos a executar❙ Cada processo recebe m/n frames❙ A "sobra" pode compor um poll de frames livres❙ Número de frames é ajustado dinamicamente em função do grau de
multiprogramação❚ Desvantagem:
❙ Provoca distorções já que processo possuem diferentes necessidades dememória
Sistemas Operacionais 38
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
❚ Princípio é alocar frames ( f ) em função do tamanho do processo
si: memória virtual do processo pi
n: número de processos em estado aptom: número de frames
❚ A alocação deve ser reajustada dinâmicamente em função do graude multiprogramação
Alocação proporcional (1)
ms
sf
n
j j
ii ×=
∑ =1
Sistemas Operacionais 39
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Alocação proporcional (2)
❚ Empregar a prioridade de um processo, invés de seu tamanho,como critério de “peso”
❚ Se um processo Pi provoca uma falta de página❙ Seleciona como “vítima” um de seus frames❙ Seleciona como “vítima” um frame de um processo de prioridade mais baixa
Sistemas Operacionais 40
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
De onde alocar os frames ?
❚ Duas soluções possíveis:❙ Alocação local❙ Alocação global
Sistemas Operacionais 41
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Alocação local
❚ A gerência de memória define quantas páginas físicas cadaprocesso deve dispor
❚ Em caso de falta de páginas a substituição ocorre entre as própriaspáginas do processo que gerou a falta
❚ Desvantagens:❙ Definição do número de páginas físicas para cada processo❙ Impede que um processo utilize páginas físicas disponíveis pertencentes a
outros processos
Sistemas Operacionais 42
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Alocação global
❚ Uma lista única de gerência de páginas físicas compartilhada portodos processos
❚ Um processo pode receber uma página física de outro processo❚ Desvantagens:
❙ O conjunto de páginas físicas ocupado por um processo depende docomportamento dos outros processos
❙ Um processo de maior prioridade pode recuperar as páginas físicas de umprocesso de menor prioridade
❚ Apesar das desvantagens é o método mais comumente empregado❙ Privilegia o uso “intelegente” da memória física disponível da máquina
Sistemas Operacionais 43
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Thrashing
❚ Tratamento de uma falta de páginas é “caro” em tempo❙ Impacto de falta de páginas é grande para o desempenho do processo
❚ A medida que o número de páginas físicas alocadas a um processoa taxa de falta de páginas aumenta
❚ Um processo está em thrashing quando ele passa a maior parte doseu tempo de execução no processo de paginação
❚ Efeito “congelamento” diferente em função da política de alocaçãode páginas físicas❙ Alocação local implica no “congelamento” ao processo❙ Alocação global implica no “congelamento” do sistema
Sistemas Operacionais 44
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Conseqüências do thrashing
❚ Baixa taxa de uso da CPU para execução de processos de usuários❙ Sistema operacional pode “pensar” que está faltando processos aptos para
execução e permite a criação/adição de novos processos! Escalonador de médio e longo prazo
❚ Adição de processos implica em maior necessidade de frames❙ Agrava a situação
❚ Conclusão:❙ Existe um ponto onde o grau de multiprogramação compromete o
desempenho do sistema
Sistemas Operacionais 45
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Multiprogramação e Thrashing
❚ Para retirar um sistema do estado de thrashing é necessáriosuspender alguns processos temporariamente
❚ Mecanismo natural é o swapping❙ Não desejável por aumentar o tempo de resposta do processos
❚ Conclusão: “Mais vale prevenir que remediar !”
Sistemas Operacionais 46
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Prevenção do thrashing
❚ Memória virtual é baseada no princípio da localidade❚ Thrashing sempre que:
❙ Σ da memória necessária a localidade > memória física disponível (frames)❚ Solução é providenciar os frames necessários a execução do
processo. Duas abordagens:❙ Modelo de working-set❙ Método freqüência de falta de página
Sistemas Operacionais 47
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Modelo de working-set
❚ Baseado no princípio da localidade❚ Um parâmetro ∆ define a largura da janela do working-set❚ Princípio de base é examinar as últimas ∆ referências a páginas
❙ Se página está em uso: pertence ao working set❙ Se página não está em uso: eliminada do working set em ∆ unidades
...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...
t1 t2WS={1, 2, 5, 6, 7} WS={ 3,4}
∆ = 10 unidades
Sistemas Operacionais 48
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Definição e manutenção do working-set (1)
❚ Define-se WSSi como sendo o working-set size do processo Pi
❚ Problema é definir o ∆:❙ ∆ = valor pequeno: não abrange toda a localidade.❙ ∆ = valor grande: abrange várias
! ∆ = ∞ : abrange todo o programa.
❚ D = Σ WSSi é a quantidade total de frames necessários no sistema❙ 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)
Sistemas Operacionais 49
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Definição e manutenção do working set (2)
❚ Problema é calcular o working set❙ Aproximação é feita com interrupção de tempo mais bit(s) de referência
! aumento da freqüência de interrupção e do número de bits de referênciamelhora a precisão da aproximação
❚ Exemplo:
t1 t2t0
∆ = 10000 referências
Interrupção:- copia bit de referência para memória- zera bit de referência
5000 referências
Histórico:00:01:10:11
working set
Sistemas Operacionais 50
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Método freqüência de falta de página
❚ Objetivo é controlar a taxa de faltas de páginas para manter dentrode um limite razoável❙ Taxa maior que o máximo aceitável:
! Há processos que estão necessitando páginas físicas! Realiza o swap-out de alguns processos! Libera páginas físicas para processos que necessitam
❙ Taxa menor que o valor mínimo:! Desligar o mecanismo de swapping! Processos tem páginas física demais alocadas
! Pode liberar algumas
Sistemas Operacionais 51
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Método freqüência de falta de página (2)
Sistemas Operacionais 52
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Fatores adicionais
❚ Além dos algoritmos de substituição de página e da política dealocação propriamente ditos existem outros fatores a seremconsiderados no projeto de um sistema de memória❙ Pré-paginação❙ Seleção do tamanho da página
Sistemas Operacionais 53
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Pré-paginação
❚ Consiste em trazer para a memória todo o working-set de umprocesso❙ Possível para caso em que processos que estão realizando transições dos
estados bloqueado/suspenso para apto❚ Custo da pré-paginação deve ser menor que custo de tratamento de
falta de páginas❙ Qual fração (α) de páginas carregadas pela pré-paginação são efetivamente
utilizadas?! Vale a pena: se o custo de trazer (1- α) páginas é menor que o
tratamento de falta de α páginas.
Sistemas Operacionais 54
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Tamanho da página (1)
❚ Fatores a serem considerados na definição do tamanho de página❙ Fragmentação❙ Tamanho de estruturas internas do sistema operacional (tabelas de páginas)❙ Overhead das operações de E/S❙ Localidade
Sistemas Operacionais 55
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Tamanho da página (2)
❚ Menor a página, menor a quantidade de fragmentação interna❚ Menor a página, maior a quantidade de páginas por processo❚ Mais páginas por processo, maior tabelas de páginas❚ Maior a tabela de página, maior a necessidade de uso de memória
Sistemas Operacionais 56
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Tamanho da página (3)
❚ Menor é o tamanho da página, maior é o número de páginas quepodem ser mantidas na memória principal
❚ Execução tende a deixar em memória apenas as páginas que sãonecessárias (localidade).❙ Com muitas páginas, tendência é reduzir a taxa de page-fault
❚ Página grande tende a desperdiçar a memória pois mantém alémdas referências necessárias, outras não utilizadas❙ Tendência a aumentar a taxa de page-fault
Sistemas Operacionais 57
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Estrutura do programa
❚ Exemplo❙ Vetor A[1024, 1024] de inteiros❙ Cada linha é armazenada em uma
página
❚ Compilador re-organiza o código paraevitar page-faults
❙ Estrutura de dados❙ Pilha
❚ Programa 1 (1024 x 1024 page faults)for j := 1 to 1024 dofor i := 1 to 1024 do
A[i,j]=0;
❚ Programa 2 (1024 page faults)for i := 1 to 1024 dofor j := 1 to 1024 do
A[i,j]=0;
Sistemas Operacionais 58
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Estudo de caso: arquitetura Intel 386
❚ Esquema básico é o mesmo para a linha Pentium❚ Arquitetura do 80386 oferece suporte à segmentação com
paginação❚ Capacidade de utilizar:
❙ Segmentação pura❙ Paginação pura (2 níveis)
Sistemas Operacionais 59
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Endereço lógico arquitetura Intel
❚ Endereço lógico é formado por 48 bits divididos em:❙ Seletor (16 bits)
! Indica qual segmento está sendo acessado❙ Deslocamento (32 bits)
! Indica uma posição relativa dentro de um segmento❚ Instruções de máquinas são em 32 bits
❙ O valor do seletor é carregado em registradores específicos! Registradores de segmento (CS, DS, ES, SS, FS e GS)
❙ Instruções consideram sempre como referência um registrador de segmento
Sistemas Operacionais 60
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Formato do endereço lógico no Intel 386
Seletor Deslocamento
16 bits 32 bits
Índice T RPL
1 bit 2 bits13 bits
0 = Seletor da GDT (Global Descriptor Table)
1 = Seletor da LDT (Local Descriptor Table)
❙ Indice:! Aponta para uma entrada específica na LDT ou na GDT
❙ Bit T! Indica se acesso é na LDT ou na GDT
❙ Bits RPL! Associado ao mecanismo de proteção
Sistemas Operacionais 61
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Tradução de endereço lógico em físico
❚ Variação do procedimento estudado❚ Endereço lógico é transformado em um endereço linear❚ Interpretação do endereço linear depende se está sendo utilizado
segmentação ou paginação❙ Com segmentação o endereço linear é o endereço físico utilizado para
acessar uma posição na memória❙ Com paginação o endereço linear sofre um procedimento adicional de
transformação em endereço físico
Sistemas Operacionais 62
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Segmentação no Intel 80386
❚ Forma nativa de operação❚ Espaço lógico de endereçamento dividido em dois cada um
contendo uma tabela de segmentos a parte❙ LDT: Local Descriptor Table❙ GDT: Global Descriptor Table
❚ Cada tabela de segmentos possui até 8K entradas, cada umacontendo um descritor de segmento com 8 bytes❙ Tabela de segmento ocupa no máximo 64 Kbytes
Sistemas Operacionais 63
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Formato do descritor de segmento
❚ Endereço de base do segmento (32 bits)❚ Limite do segmento (20 bits)
❙ Interpretaçao desse valor depende da granularidade! Granularidade=0: valor é expresso em bytes
! Tamanho máximo de um segmento é 1 Megabyte! Granularidade=1: valor é expresso em páginas de 4 Kbytes
! Tamanho máximo de um segmento é 4 Gbytes (1 Mega páginas)❚ Controle de acesso (8 bits)❚ Bit de granularidade (1 bit)❚ Reservado para uso futuro (3 bits)
Sistemas Operacionais 64
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Esquema de segmentação no 80386
Tabela de segmentos(GDT ou LDT)
Endereço de base
Endereço físico
16 bits 32 bitsSeletor Deslocamento
Endereço lógico
+
32 bitsEndereço linear
Sistemas Operacionais 65
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Paginação no Intel 80386
❚ Uso opcional no 80386❙ Desativada no momento do reset do processador
❚ Características gerais:❙ Páginas de 4 Kbytes❙ Espaço de endereçamento linear como o espaço de endereçamento físico
possuem 4 Gbytes (232)! Máximo 1 Mega páginas
❙ Tabela de páginas considera dois níveis! Registrador (CR3) aponta para o diretório de tabela de páginas
❙ Diretório de tabela de páginas! 1 k entradas de 4 bytes! Cada entrada aponta para uma tabela de páginas
Sistemas Operacionais 66
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Esquema de paginação no 80386
Endereço Linear
10 bits 10 bits 12 bits
deslocamentopáginatabela
CR3
Diretório de Páginas
Tabela de Páginas
Tabela de Páginas
20 bits 12 bits
deslocamentopágina física
Endereço Físico
Sistemas Operacionais 67
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Leituras complementares
❚ R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. EditoraSagra-Luzzato, 2001.❙ Capítulo 7
❚ A. Silberchatz, P. Galvin, G. Gagne; Applied Operating SystemConcepts. Addison-Wesley, 2000, (1st edition).❙ Capítulo 10
❚ W. Stallings; Operating Systems. (4th edition). Prentice Hall, 2001.❙ Capítulo 8
Capítulo 82a edição
Revisão: Fev/2003
Sistemas OperacionaisSistema de arquivos
Sistemas Operacionais 2
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Introdução
❚ O sistema de arquivos é a parte mais vísivel do sistema operacional❚ Cria um recurso lógico a partir de recursos físicos através de uma
interface coerente e simples, fácil de usar❚ Mecanismo para armazenamento e acesso a dados e a programas❚ Duas partes básicas:
❙ Arquivos! Armazenamento de dados e de programas
❙ Diretórios! Organização e informações sobre arquivos
Sistemas Operacionais 3
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Objetivos do sistema de arquivos
❚ Fornecer mecanismos para usuários manipular arquivos e diretórios❚ Garantir a validade e coerência de dados
❙ Minimizar ou eliminar o risco de perda/alteração de dados❚ Otimizar o acesso❚ Fornecer suporte a outros sistemas de arquivos❚ Suporte a vários usuários (multiprogramação)
❙ Uso compartilhado (proteção e acesso concorrente)
Sistemas Operacionais 4
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Requisitos mínimos: ponto de vista do usuário
❚ Cada usuário deve ser capaz de:❙ Criar, apagar, ler e alterar arquivos❙ Controlar as permissões de acesso a seus arquivos❙ Nomear arquivos de forma simbólica❙ Estruturar os arquivos de forma a adequá-los a suas necessidades específicas
! Criação de diretórios e subdiretórios❙ Realizar back-ups e recuperar arquivos em caso de problemas
Sistemas Operacionais 5
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Requisitos mínimos: ponto de vista do sistema
❚ O sistema operacional deve ser capaz:❙ Descrever a localização de todos os arquivos e de seus atributos
! Via diretório❙ Gerenciar espaço físico do disco
! Alocar blocos livres a arquivos em criação/expansão! Liberar blocos de arquivos removidos! Mecanismos para localizar eficientemente blocos (setores) que compõem
arquivos
Sistemas Operacionais 6
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Conceitos básicos
❚ Arquivos❙ Recipientes que contêm dados
❚ Diretórios❙ Conjuntos de referências a arquivos
❚ Partição❙ Abstração que permite a partir do disco físico criar discos lógicos
Sistemas Operacionais 7
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Conceito de arquivo
❚ Informação pode ser armazenada em diferentes tipos de mídia❙ O sistema operacional deve oferecer uma visão uniforme da informação
independente do dispositivo físico de armazenamento! Visão lógica é o arquivo
❚ Arquivos são mapeados para dispositivos físicos❚ Arquivos possuem:
❙ Nome❙ Atributos❙ Estrutura interna❙ Tipo❙ Método de acesso❙ Operações
Sistemas Operacionais 8
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Nomes de arquivos
❚ O sistema de arquivos define um espaço de nomes❙ Conjunto de regras e convenções para identificar simbolicamente um arquivo
❚ Variam de sistema para sistema❙ Distinção entre letras maiúsculas e minúsculas❙ Obrigatoriedade ou não de uma extensão
! As vezes extensões são apenas convenções❙ Tamanho máximo de nome e da extensão (se houver)
Sistemas Operacionais 9
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Atributos de um arquivo
❚ Informações sobre arquivos❙ Nome: informação simbólica empregada para referenciar o arquivo❙ Tipo: binário, texto, executável, caracter, bloco❙ Localização: posição do arquivo em um determinado dispositivo E/S❙ Tamanho: número de bytes que compõem o arquivo❙ Proteção: controla acesso de leitura, escrita e execução ao arquivo❙ Hora e data de criação, identificação do usuário: informações destinadas a
proteção, segurança e monitoração❚ Varia de sistema operacional a sistema operacional❚ Atributos são mantidos em uma estrutura a parte
❙ Diretório
Sistemas Operacionais 10
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Estruturas de arquivos
❚ Seqüência de bytes❚ Seqüência de registros❚ Árvore
Sistemas Operacionais 11
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Seqüência de bytes
❚ Sistema operacional não “interpreta”o conteúdo do arquivo❙ Enxerga apenas bytes
❚ Interpretação é a nível do programade usuário
❚ Vantagem:❙ Flexibilidade
byte
Sistemas Operacionais 12
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Seqüência de registros
❚ Arquivo é “interpretado” como umaseqüência de registros, isto é❙ Tamanho fixo❙ Estrutura interna
❚ Operações lêem/escrevem registros❚ Emprego raro
registro
Sistemas Operacionais 13
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Árvore
❚ Conjunto de registros não necessariamente de mesmo tamanho❙ Possuem um campo de acesso (chave)
❚ Comum em mainframes❙ Método ISAM (Indexed Sequential Access Method)
OG L
PA F
DC C WP R
LH I
Sistemas Operacionais 14
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Tipos de arquivo
❚ Sistema operacional suporta vários tipos de arquivos❚ Tipos comuns:
❙ Regular! Arquivos de dados em ASCII e binário
❙ Diretório! Arquivos que mantém a estrutura (organização) do sistema de arquivos
❙ Arquivos especiais de caracter/bloco! Vinculados a dispositivos de entrada e saída
Sistemas Operacionais 15
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Exemplos de arquivos UNIX
executável (formato a.out)
biblioteca
Sistemas Operacionais 16
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Métodos de acesso
❚ Forma pela qual o conteúdo de um arquivo é acessado❚ Métodos elementares de acesso:
❙ Acesso seqüêncial❙ Acesso relativo
Sistemas Operacionais 17
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Acesso seqüêncial
❚ Acesso a um arquivo é feito através de primitivas (chamadas desistema) do tipo read e write
❚ Cada chamada de sistema read retorna ao processo os dadosseguintes àqueles que foram lidos na chamada anterior
❚ Método não adequado a todas aplicações❙ e.g.: acesso e atualização a cadastros de funcionários
Sistemas Operacionais 18
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Acesso relativo
❚ Provê uma chamada de sistema específica para indicar o ponto emque um arquivo deve ser lido/escrito
❚ Implementado através da abstração de “posição corrente noarquivo”
Sistemas Operacionais 19
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Outros tipos de acesso
❚ Os métodos seqüências e relativos não resolvem todos os tipos deacesso❙ e.g.: localizar um registro a partir do contéudo
❚ Necessidades de métodos de acesso mais sofisticados, tais comoseqüencial indexado, indexado, direto, hash, etc❙ Normalmente implementados por programas específicos❙ Baseados nos métodos de acesso seqüêncial e relativo
Sistemas Operacionais 20
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Operações básicas sobre arquivos
❚ Arquivo é um tipo abstrato de dados sobre o qual se pode efetuaruma série de operações❙ Criação (create)❙ Escrita (write) e leitura (read)❙ Reposicionamento em um ponto qualquer do arquivo (file seek)❙ Remoção (delete)❙ Abertura (open) e encerramento (close)❙ Adicionalmente: truncagem (truncate); renomeação (rename); appending, etc
❚ Geralmente correspondem a chamadas de sistema❙ Operações mais complexas podem ser criadas utilizando-se das operações
básicas
Sistemas Operacionais 21
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Controle de acesso
❚ Importante controlar o acesso aos arquivos devido a questões desegurança e de confidencialidade
❚ Objetivo é evitar acessos indevidos a arquivos❚ Baseado na identificação dos usuários
❙ Sistema de autenticação padrão (login name + senha)❙ Usuários possuem direitos de acessos
❚ Solução típica:❙ Lista de acesso e grupo
Sistemas Operacionais 22
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Listas de acesso
❚ Consiste em associar a cada arquivo e/ou diretório uma lista deacesso que determina que tipos de acessos são permitidos paracada usuário
❚ Maior inconveniente é o tamanho da lista❚ Uma solução consiste em:
❙ Criar classes de usuários! e.g.: proprietário, grupo, universo
❙ Tipos de acessos! e.g: read, write, modify, execute
Sistemas Operacionais 23
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Exemplo: UNIX
❚ Cada objeto oferece 3 bits (rwx) para três domínios diferentes:proprietário, grupo, e outros
❚ Problema de flexibilidade❙ Quando um usuário pertence a vários grupos ele é identificado por um grupo
primário e o arquivo (/etc/groups) mantém todos os grupos a que ele pertence
r w x r- - r - - 1 mary staff 214056 May 30 22:19 windbind.pdf
Sistemas Operacionais 24
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Outra abordagem: senhas
❚ Associar uma senha a cada arquivo❙ A grande desvantagem é o número de senhas
❚ Declaração de compartilhamento de arquivo e/ou subdiretório❙ Esquema utilizado pelo Macintosh e pelo Windows
Sistemas Operacionais 25
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Implementação de arquivos
❚ Arquivos são implementados através da criação, para cada arquivono sistema, de uma estrutura de dados
❚ Descritor de arquivo é um registro que mantém informações sobre oarquivo
❚ Informações típicas (atributos):❙ Nome do arquivo❙ Tamanho em bytes❙ Data e hora da criação, do último acesso, da última modificação❙ Identificação do usuário que criou o arquivo❙ Listas de controle de acesso❙ Local do disco físico onde o contéudo do arquivo foi colocado❙ etc
Sistemas Operacionais 26
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Tabelas de descritores de arquivos
❚ Descritores de arquivos são armazenados no próprio disco❙ Na realidade no mesmo disco lógico (partição)
❚ Problema de desempenho❙ Acesso ao disco para ler o descritor de arquivos é lento❙ Solução é manter descritor em memória enquanto o arquivo estiver em uso
! Indicação se arquivo está em uso normalmente é feito pelo própriousuário (aplicação) através de chamadas do tipo open e close
❚ Sistema de arquivos mantém os descritores de arquivos emmemória em uma estrutura de dados do sistema operacional❙ Tabela de descritores do arquivo abertos (TDAA)
Sistemas Operacionais 27
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Tabelas de arquivos abertos por processo
❚ Informações relacionadas com arquivos são de dois tipos:❙ Não variam conforme o processo que está acessando o arquivo
! e.g.: tamanho do arquivo❙ Dependem do processo que está acessando o arquivo
! e.g.: posição corrente❚ Informações dependentes do processo são armazenadas em uma
tabela a parte mantida pelo processo (TAAP)❙ e.g.: posição corrente no arquivo, tipo de acesso e apontador para a entrada
correspondente na TDAA❚ Entrada na TAAP serve para referenciar o arquivo
❙ File handle
Sistemas Operacionais 28
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Emprego conjunto das tabelas TAAP e TDAA
Arquivo B
Tabela de arquivosabertos processo 0
Arquivo A
Tabela deArquivos Abertos
Tabela de arquivosabertos por processo 1
PosCor=12LeituraPosCor=55Leitura & esc
PosCor=10Leitura
Descritor Arquivo B
Descritor Arquivo A
FileHandle
FileHandle
FileHandle
Sistemas Operacionais 29
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Leituras complementares
❚ R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. EditoraSagra-Luzzato, 2001.❙ Capítulo 8, seções 8.1, 8.2, e 8.3
❚ A. Silberchatz, P. Galvin; Operating System Concepts. Addison-Wesley, (4th edition).❙ Capítulo 10, seções 10.1, 10.2,10.4, e 10.5
Sistemas Operacionais 30
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Gerenciamento do dispositivo de armazenamento
❚ Problema: arquivos devem ser armazenados no disco!!❙ Unidade de manipulação dos dados no dispositivo fisico (bloco)
❚ Pontos a serem tratados:❙ Relação número de setores do disco que compõem um bloco
! Não necessita ser 1:1❙ Alocação de blocos no disco❙ Recuperação de blocos liberados❙ Localização de dados no disco
❚ Existe uma relação entre a política de alocação com a política degerência de espaço livre
Sistemas Operacionais 31
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Alocação do espaço em disco
❚ Como alocar espaço em disco de forma que os arquivos sejamarmazenados de forma eficiente e que permita acesso rápido❙ Alocar blocos livres suficientes para armazenar o arquivo❙ Blocos lógicos do disco são numerados sequencialmente
❚ Duas formas básicas:❙ Contigua (alocação contigua)❙ Não-contigua (alocação encadeada e alocação indexada)
00 01 02 03 04
05 06 .... 53 54
55 .... 72 73 74
... 96 97 98 ....
Sistemas Operacionais 32
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Alocação contígua
❚ Arquivo é uma seqüência de blocos lógicos contigüos alocados nomomento da criação
❚ Endereços no disco são lineares❙ bloco lógico i e i+1 são armazenados fisicamente em seqüência❙ Reduz a necessidade de seek já que blocos estão na mesma trilha
! No pior caso necessita apenas a troca de cilindro❚ Arquivo é descrito através de uma entrada na forma:
❙ Bloco físico inicial❙ Tamanho do arquivo em blocos
Sistemas Operacionais 33
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Esquema alocação contígua
Sistemas Operacionais 34
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Problemas com alocação contígua
❚ Problema 1: encontrar espaço para um novo arquivo❙ Técnicas de gerência de memória
! e.g.; first-fit, best-fit, worst-fit❙ Gera fragmentação externa
! Necessidade de compactação❚ Problema 2: determinar o espaço necessário a um arquivo
❙ Arquivos tendem a crescer, e se não há espaço contígüo disponível?! Aborta execução do programa com erro! Recopia o programa para uma zona maior
❙ Pré-alocar um espaço máximo para o arquivo! Fragmentação interna
Sistemas Operacionais 35
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Alocação encadeada
❚ Soluciona os problemas da alocação contígua❙ Relação a dimensionamento do tamanho e crescimento de arquivos
❚ Alocação é baseada em uma unidade de tamanho fixo (bloco lógico)❙ Análogo a paginação
❚ Arquivo é uma lista encadeada de blocos❙ Cada bloco contém um ponteiro para o próximo bloco
❚ Arquivo é descrito em uma entrada na forma:❙ Bloco inicial do arquivo❙ Bloco final do arquivo ou tamanho do arquivo em blocos
Sistemas Operacionais 36
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Esquema de alocação encadeada
Sistemas Operacionais 37
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Prós e contras da alocação encadeada
❚ Elimina a fragmentação externa❚ Arquivos podem crescer indefinidamente
❙ Não há necessidade de compactar o disco❚ O acesso a um bloco i implica em percorrer a lista encadeada
❙ Afeta o desempenho❙ Adequado para acesso seqüêncial a arquivos
❚ Confiabilidade❙ Erro provoca a leitura/escrita em bloco pertencente a outro arquivo
Sistemas Operacionais 38
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Exemplo: File Allocation Table (FAT)
❚ Variação de alocação encadeada❚ FAT é uma tabela de encadeamento de blocos lógicos
❙ Uma entrada na FAT para cada bloco lógico do disco (sistema de arquivos)❙ Composta por um ponteiro (endereço do bloco lógico)❙ Arquivo é descrito por uma seqüência de entradas na FAT, cada entrada
apontando para a próxima entrada
Sistemas Operacionais 39
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Sistema de arquivos FAT (MS-DOS)
❚ Organização lógica do disco:
❚ Diretório raiz possui tamanho fixo em função da capacidade do disco❙ Cada entrada possui 32 bytes
❚ Tamanho da File Allocation Table (FAT) é proporcional a capacidadedo disco
❚ Alocação é baseada em clusters (bloco lógico)❙ 2n setores (depende da capacidade do disco)
Setor 0
Setor n
FAT
Diretório raiz
Arquivos
Área reservada
Sistemas Operacionais 40
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
jeep 217
Diretório
Primeiro setor doarquivo
(start block)
618
399
400
217
0
618
399EOF 400
FAT
!
!
!
Esquema de funcionamento da FAT
❚ Desvantagem principal é o tempo de seek
Sistemas Operacionais 41
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Alocação indexada
❚ Busca resolver o problema de “ponteiros esparramados” pelo discoque a alocação encadeada provoca
❚ Mantém, por arquivo, um índice de blocos que o compõe❚ O índice é mantido em um bloco❚ Diretório possui um ponteiro para o bloco onde está o índice
associado a um determinado arquivo
Sistemas Operacionais 42
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Esquema de alocação indexada
Sistemas Operacionais 43
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Prós e contras da alocação indexada
❚ Permite o acesso randômico a blocos independentes de suaposição relativa no arquivo
❚ Tamanho máximo do arquivo é limitado pela quantidade deentradas suportadas pelo bloco
! Muito pequeno (limita tamanho do arquivo)! Muito grande (desperdiça espaço em disco)
❚ Solução é utilizar dois tamanhos de blocos, um para índice e outropara dados❙ e.g.: i-nodes e bloco de dados em sistemas UNIX
Sistemas Operacionais 44
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Variações em alocação indexada
❚ Buscam resolver o problema do tamanho do bloco de indices❚ Três métodos básicos:
❙ Encadeado❙ Multinível❙ Combinado
Sistemas Operacionais 45
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Método encadeado
❚ O índice mantém ponteiros para os blocos que compõem o arquivocom exceção da última entrada❙ Mantém um ponteiro para outro bloco onde índice continua
618
400
0
kk+1
300n
!
!
n-1
Bloco de dados(618)
500
NULL
kk+1
NULLn
!
!
n-1
Bloco de índices(300)
Bloco de dados(500)
Bloco de índices(0)
Sistemas Operacionais 46
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Método multinível
❚ Mantém um índice de índices❙ Não resolve completamente o problema de limite
4420
n-1n
!
10
0
n-1n
!0
n-1n
!
530700
310
Bloco de índicede índices (0)
Bloco de índices(310)
Bloco de índices(700)
Bloco de dados(10)
Bloco de dados(442)
Sistemas Operacionais 47
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Método combinado
❚ Métodos encadeado e multinível em uma única estrutura de dados❚ O que justifica essa combinação?
❙ Acesso otimizado a blocos de dados: método indexado❙ Limite de arquivos: multinível
4420
n-1n
!
0
n-1n
!
530700
310
Bloco combinado (0)
Bloco de índices(700)
Bloco de dados(310)
Bloco de dados(442)Ponteiros p/
bloco de dados
Ponteiros p/ bloco de índices
Sistemas Operacionais 48
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Exemplo: estrutura de i-nodes (UNIX)
128bytes
10
Sistemas Operacionais 49
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Problema com os métodos de alocação não-contigua
❚ Necessidade de acessar áreas específicas do disco para ler asinformações de encadeamento❙ Quantidade de seeks depende do tipo da estrutura (FAT ou descritores)
❚ Solução é manter em memória❙ Tradicionais problemas de área de memória ocupada e de confiabilidade
Sistemas Operacionais 50
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Resumo dos tipos de alocação
❚ Alocação contígua❙ Só armazena endereço do primeiro bloco❙ Acesso randômico é possível (bloco inicial + deslocamento)❙ Gera fragmentação externa no disco
❚ Alocação encadeada❙ Armazena endereço do primeiro bloco❙ Problema de desempenho (seek)❙ Não recomendado para acesso randômico
❚ Alocação indexada❙ Visa solucionar problemas dos tipos anteriores❙ Análise de desempenho (tamanho + tempo de acesso ) é complexa
! Depende da estrutura de índice e do tamanho de arquivo
Sistemas Operacionais 51
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Conclusão: qual o melhor método de alocação?
❚ Depende do tipo de acesso que o sistema faz a seus arquivos❙ Seqüêncial versus randômico
❚ Fator adicional:❙ Evolução tecnológica (novos hardwares) e de desempenho forçam a co-
existência de diferentes sistemas de arquivos❚ Necessidade de “fazer conviver” diferentes sistemas de arquivos em
um mesmo computador❙ Suporte a múltiplos sistemas de arquivos
Sistemas Operacionais 52
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Suporte a múltiplos sistemas de arquivos
❚ Fazer com que o sistema operacional suporte diversos sistemas dearquivos diferentes simultâneamente
❚ Solução inspirada na gerência de periféricos❙ Parte independente do dispositivo
! Serviços idênticos independente do tipo de sistema de arquivos❙ Parte dependente do dispositivo
! Interface padrão
CD-ROM Partição raw Disquete
Virtual File System (VFS)
Sistemas Operacionais 53
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Implementação de múltiplos sistemas de arquivos
❚ Cada partição 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)
❚ Descritor virtual❙ Informações comuns a todo sistema de arquivo (proteção, 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 código necessário aexecução de uma dada chamada de sistema (read, write, close,...)
! Informações sobre a gerência desse sistema de arquivos (blocos livres,ocupados, estrutura de diretórios, ...)
Sistemas Operacionais 54
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Múltiplos sistemas de arquivos: estrutura de dados
Tabela com descritores virtuaisdos arquivos abertos
tipocontador de usodados dependentes
. . .
tipocontador de usodados dependentes
. . .
. . .
Descritor do S.A. 1
open
read
write
dados
tab. descritores
. . .
������������
Tab. descritoresSist. Arq. 1
tamanholocalizaçãodireitosetc
. . .
. . .
Descritor do S.A. 2
open
read
write
dados
tab. descritores
. . .
������������
Tab. descritoresSist. Arq. 2
tamanholocalizaçãodireitosetc
. . .
. . .
Sistemas Operacionais 55
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Organização da cache de disco
❚ Objetivo é manter na memória principal uma certa quantidade deblocos do disco
❚ Não adiciona nem elimina funcionalidades ao sistema de arquivos❙ Função é melhorar o desempenho do sistema de arquivos
❚ Não confundir com a cache do processador❚ Normalmente a cache de disco é mantida em uma área da memória
principal e é controlada pelo sistema operacional❙ Pode ser global ou exclusiva (uma por sistema de arquivo suportado)
Sistemas Operacionais 56
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Funcionamento da cache de disco
❚ Em uma requisição de E/S verifica se o bloco está na cache❙ Sim: realiza o acesso a partir dessa cópia em memória❙ Não: realiza o acesso a partir do disco e carrega o bloco para a cache
❚ A modificação de valores é feito em blocos na cache❙ Problema de quando atualizar o disco após um bloco ter sido alterado
❚ Problema da perda de informações e da consistência do sistema dearquivos em caso de pane do sistema (falta de energia)
Sistemas Operacionais 57
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Políticas de atualização da cache
❚ Posterga ao máximo❚ Atualiza a cada intervalo de tempo❚ Atualiza imediatamente no disco❚ Atualiza imediatamente apenas informações sensíveis a
consistência do sistema do arquivo
Sistemas Operacionais 58
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Política de substituição
❚ A cache de disco é um recurso limitado❚ O que fazer quando um novo bloco deve ser inserido na cache e
não há espaço livre ?❙ Problema similar a gerência de memória virtual (substituição de páginas)
❚ Tipicamente a política Least-Recently-Used (LRU) é empregada
Sistemas Operacionais 59
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Implementação da política LRU
❚ Facilmente implementada através de uma lista duplamenteencadeada❙ Quando o bloco é acessado ele é removido de sua posição na lista e
colocado no início da lista❙ Todo bloco novo (acessado pela primeira vez) também é inserido no início da
lista❙ O bloco menos recentemente acessado é o último da lista
❚ Existe o problema de localizar rapidamente um bloco na lista❙ Emprego de função hash
Sistemas Operacionais 60
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Implementação da cache do sistema de arquivos
HASH( p a rtiç ã o , núm e ro d o b lo c o )
�����������
����������� conteúdo do bloco
informações adicionais
����������������
����������������
����������
����������
����������������
��������
����������
������������������
��������
����������
����������
����������
LRU - in íc io LRU - fim
Sistemas Operacionais 61
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Gerenciamento do espaço livre
❚ Necessário manter a informação de blocos livres e ocupados❚ Métodos básicos:
❙ Mapa de bits (bitmap)❙ Lista de blocos livres
❚ Ambos métodos consideram que os blocos no disco são numeradossequencialmente
00 01 02 03 ....
25 26 .... 53 54
55 .... 72 73 74
... 96 97 98 ....
Sistemas Operacionais 62
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Mapa de bits (bit map)
❚ Forma simples de gerenciar o espaço em disco❚ Cada bloco do disco possui um bit indicando se o bloco está livre ou
ocupado
)(_8
)(___
bytesblocotamanho
bytesdiscoCapacidademapbittamanho
×=
Disco
BlocoFísico
0123456789
10
1211
13
Mapa de Bits.
1415
0���
������
������ 0 1 0 1 0 1 0
0 0 1 1 0 0 0 0
Sistemas Operacionais 63
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Lista de blocos livres
❚ Os blocos livres são organizados em uma lista❚ Lista é mantida no próprio disco
❙ Problema é o tamanho da lista❙ Paliativo: a medida que o espaço em disco é ocupado a lista diminui de
tamanho liberando espaço do disco❚ Solução alternativa é manter uma lista de áreas livres ao invés de
uma lista de blocos livres❙ Endereço do bloco inicial da área livre e o seu tamanho
Sistemas Operacionais 64
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Gerência de espaço livre através de blocos livres
DiscoBlocoFísico
0123456789
10
1211
131415
����
������
����
2467
89
1011
1415
lógico
Sistemas Operacionais 65
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Leituras complementares
❚ R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. EditoraSagra-Luzzato, 2001.❙ Capítulo 8, seções 8.5 e 8.6
❚ A. Silberchatz, P. Galvin; Operating System Concepts. Addison-Wesley, 4th edition.❙ Capítulo 11 seção 11.3
Sistemas Operacionais 66
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Diretório
❚ Problema:❙ Quantidade (grande) de arquivos implica na necessidade de organizá-los
❚ Sistema de arquivos oferece duas formas de organização❙ Partição❙ Diretório
❚ Partição divide um disco em discos lógicos (virtuais), mas nãoresolve a organização de arquivos dentro desse disco lógico❙ No mínimo uma em um sistema❙ Onde “residem” os arquivos e os diretórios
Sistemas Operacionais 67
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
O conceito de diretório
❚ Estrutura de dados que contém informações sobre arquivos❙ Atributos básicos: nome, tipo, ...❙ Localização: dispositivo físico, end. Início, tamanho,...❙ Controle de acesso: proprietário, informações de acesso, ações permitidas,...❙ Utilização: data criação/modificação, nro de processos que o usam, locking,...
❚ Diretório é um arquivo pertencente ao sistema operacional❙ Acesso é feito via serviços do sistema operacional
❚ Tipos de operações em um diretório❙ Pesquisar❙ Criar e remover arquivos❙ Listar diretório❙ Atualizar diretório
Sistemas Operacionais 68
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Organização de diretório
❚ Cada entrada do diretório é um arquivo❚ Existem duas formas básicas para se organizar um diretório
❙ Linear❙ Em árvore
Sistemas Operacionais 69
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Diretório linear
❚ Mais simples❚ O diretório corresponde a uma lista de todos os arquivos do disco❚ Desvantagem:
❙ Problema de nomeação e agrupamento❙ 2 ou mais usuários não podem ter arquivos com o mesmo nome (colisão)
Silberchatz, Galvin, Gagne. Applied Operating System Concepts (1st Ed.) John Wiley & Sons, 2000.
Sistemas Operacionais 70
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Diretório linear a dois níveis
❚ Cada usuário possui o seu próprio diretório❙ Informação mantida na raiz (master directory)
! Cada entrada corresponde a um subdiretório (usuário)❚ Resolve parcialmente o problema de “colisão” de nomes e mas não
resolve o problema de organização dos arquivos
Silberchatz, Galvin, Gagne. Applied Operating System Concepts (1st Ed.) John Wiley & Sons, 2000.
Sistemas Operacionais 71
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Diretório em arvóre
❚ Generalização do diretório linear a dois níveis❙ Permite os usuários criar subdiretórios e organizar seus arquivos
❚ Possui um diretório raiz (master)
Silberchatz, Galvin, Gagne. Applied Operating System Concepts (1st Ed.) John Wiley & Sons, 2000.
Sistemas Operacionais 72
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Conceitos associados a um diretório em árvore
❚ Qualquer arquivo (ou subdiretório) pode ser identificado de formanão ambígua através de seu caminho (pathname)❙ Conceito de diretório corrente, caminho absoluto e caminho relativo
❚ Diretório corrente (diretório de trabalho):❙ Qualquer nó da árvore
❚ Caminho absoluto❙ Quando se referencia um arquivo a partir da raiz da arvóre
! e.g.: /spell/mail/prt/first❚ Caminho relativo
❙ Quando se referencia um arquivo a partir do diretório corrente! e.g.: prt/first
Sistemas Operacionais 73
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Prós e contras da estrutura em árvore
❚ Vantagem:❙ Procura eficiente por arquivos❙ Possibilidade de agrupamento de arquivos
❚ Desvantagem:❙ Compartilhamento de arquivos
❚ Questão é: copiar ou não arquivos a compartilhar?❙ Conceito de search path
! Lista de diretórios (caminhos absolutos) a pesquisar um arquivo
Sistemas Operacionais 74
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Diretório estruturado em grafos acíclicos
❚ Generalização da estrutura em árvore❙ Provê compartilhamento através de caminhos alternativos para um arquivo
Silberchatz, Galvin, Gagne. Applied Operating System Concepts (1st Ed.) John Wiley & Sons, 2000.
Sistemas Operacionais 75
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Aliases
❚ Compartilhamento pode ser obtido através de aliases❚ Link é uma forma comum de alias
❙ Ponteiro para outro arquivo ou subdiretório❚ Link é uma entrada na estrutura de diretório
❙ Soft link (simbólico): fornece o caminho do arquivo❙ Hard link: fornece a localização (bloco) do arquivo no disco
❚ Remover um link implica em remover apenas a sua entrada naestrutura de diretório, não o arquivo que aponta
Sistemas Operacionais 76
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Problema da remoção de arquivos
❚ Solução 1:❙ Acesso a um link simbólico dangling é detectado no momento do acesso ao
arquivo (não resolvido para nome válido)❚ Solução 2:
❙ Preservar o arquivo enquanto houver referências a ele! Contador de links ativos! Lista de links
❚ Solução 3:❙ Não permitir compartilhamento
Sistemas Operacionais 77
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Prós e contras de diretórios estruturados em grafos
❚ Vantagem:❙ Compartilhamento de arquivos
❚ Desvantagem:❙ Estrutura mais complexa de manter❙ Um arquivo pode possuir mais de um caminho de acesso
! e.g; Problemas para contabilização de acessos, back-ups, etc...❙ Remoção de um arquivo compartilhado
! Problema de dangling pointer❙ Criação de laços através de aliases
! Necessita algoritmo para verificar se não cria um laço (desempenho)
Sistemas Operacionais 78
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Exemplos de aliases: UNIX
%ln index hlink%ln -s index slinl%ls -l-rw- - - - - - - 2 chavez chem 5228 Mar 12 11:36 index-rw- - - - - - - 2 chavez chem 5228 Mar 12 11:36 hlinklrwx rwx rwx 1 chavez chem 5 Mar 12 11:36 slink→index
Diretório
indexhlinkslink
bloco arquivo index
bloco slink
Contador de referências
Sistemas Operacionais 79
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Exemplos de aliases: UNIX
%ln index hlink%ln -s index slinl%ls -l-rw- - - - - - - 2 chavez chem 5228 Mar 12 11:36 index-rw- - - - - - - 2 chavez chem 5228 Mar 12 11:36 hlinklrwx rwx rwx 1 chavez chem 5 Mar 12 11:36 slink→index
Diretório
indexhlinkslink
bloco arquivo index
bloco slink
Contador de referências
Sistemas Operacionais 80
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Organização de diretórios do UNIX
❚ Baseado em partições❚ Diretório raiz do sistema de arquivos corresponde a uma partição
especial (root)❚ Conceito de ponto de montagem❚ Pontos importantes:
❙ Cada partição possui seu próprio 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...
Sistemas Operacionais 81
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Montagem departições em umsubdiretório
usretc bin
whols Mailpasswd mariajoao
so teste
hosts
trabteste
trab2trab1
usretc bin whols Mail
passwd
mariajoão
so teste
hosts
trabteste
trab2trab1
Partição 1 Partição 3Partição 2
Pontos de montagem
Sistemas Operacionais 82
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Implementação de diretórios
❚ Diretórios são arquivos especiais cujo contéudo é manipulado pelosistema operacional
❚ Sendo um arquivo:❙ Utiliza os mesmos mecanismos de alocação, liberação e localização de
blocos do disco que arquivos “comuns”❙ Possuem um descritor de arquivo
❚ Duas formas básicas de implementação de diretórios:❙ Conjunto de arquivos de descritores de arquivos❙ Vetor de descritores
Sistemas Operacionais 83
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Conjunto de arquivos de descritores de arquivos
❚ Estrutura de diretório corresponde a um conjunto de arquivos dotipo diretório❙ Cada arquivo diretório possui descritores de arquivos
etc usr bin
passwd hosts
raiz Arquivodiretório etc
Arquivodiretório raiz
“etc” “passwd”“hosts”
Arquivo passwd
Arquivo hostsDescritoresde arquivo
Sistemas Operacionais 84
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Vetor de descritores
❚ Uma parte do disco é reservada para o armazenamento dedescritores de arquivos (diretórios”, regulares, etc...)
❚ Forma um diretório único (o vetor)❙ Arquivos e diretórios são identificados por sua posição nesse vetor
❚ Supõem-se que o primeiro descritor descreve o diretório raiz (“/”)
etc
usr
hostspasswd
/
bin
etc usr bin
passwd hosts
raiz
Sistemas Operacionais 85
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Implementação de diretórios como tabelas
❚ Um diretório nada mais é que uma tabela❚ Três implementações mais utilizadas:
❙ Lista não ordenada❙ Lista ordenada❙ Tabela de dispersão (tabela hash)
❚ Vantages e desvantagens dessas implementações são as“tradicionais”:❙ Simplicidade versus desempenho
Sistemas Operacionais 86
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Organização interna de uma partição
❚ Uma partição é um disco lógico❚ Cada partição é autocontida, isto é, todas as informações para
acesso aos arquivos da partição estão contidas na própria partição❙ Diretórios e subdiretórios❙ Descritores de arquivos da partição❙ Blocos de dados❙ Lista de blocos livres da partição
❚ Formatação lógica corresponde a inicialização dessas estruturas dedados
❚ Normalmente um setor (bloco) especial do disco informa quais sãoas partições e quais parcelas do disco a partição ocupa
Sistemas Operacionais 87
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Partições primárias em um disco IDE
MBRMaster Boot Record
Partição primária/dev/hda1
Tabela de partições
Setor de boot
Pré-boot
Setor de boot
Setor de boot
Setor de boot
Partição primária/dev/hda2
Partição primária/dev/hda3
Partição primária/dev/hda4
Sistemas Operacionais 88
Inst
itu
to d
e In
form
átic
a -
UF
RG
SO
liveir
a, C
aris
sim
i, T
osc
ani
Leituras complementares
❚ R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. EditoraSagra-Luzzato, 2001.❙ Capítulo 8, seções 8.7, 8.8 e 8.9
❚ A. Silberchatz, P. Galvin, G. Gagne; Applied Operating SystemConcepts. Addison-Wesley, 2000, (1st edition).❙ Capítulo 11
❚ W. Stallings; Operating Systems. (4th edition). Prentice Hall, 2001.❙ Capítulo 12