Sistemas Operacionais Toscani

124
Capítulo 1 2 a edição Revisão: Fev/2003 Sistemas Operacionais Introdução Sistemas Operacionais 2 Instituto de Informática - UFRGS Oliveira, Carissimi, Toscani 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 do computador e os programas dos usuários de forma a atingir esses dois objetivos Hardware Sistema Operacional Programas Sistemas Operacionais 3 Instituto de Informática - UFRGS Oliveira, Carissimi, Toscani Componentes genéricos de um sistema computacional (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 um problema (compiladores, jogos, banco de dados,...) Usuários Pessoas, máquinas, outros computadores,... Sistemas Operacionais 4 Instituto de Informática - UFRGS Oliveira, Carissimi, Toscani Componentes genéricos de um sistema computacional (2) Usuário 1 Usuário 2 Usuário 3 Usuário n . . . Compilador Editor de texto Browser Quake Sistema operacional Hardware

Transcript of Sistemas Operacionais Toscani

Page 1: 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

Page 2: Sistemas Operacionais Toscani

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

Page 3: Sistemas Operacionais Toscani

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...

Page 4: Sistemas Operacionais Toscani

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

Page 5: Sistemas Operacionais Toscani

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)

Page 6: Sistemas Operacionais Toscani

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

Page 7: Sistemas Operacionais Toscani

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

Page 8: Sistemas Operacionais Toscani

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)

Page 9: Sistemas Operacionais Toscani

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

Page 10: Sistemas Operacionais Toscani

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)

Page 11: Sistemas Operacionais Toscani

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

Page 12: Sistemas Operacionais Toscani

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

Page 13: Sistemas Operacionais Toscani

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

Page 14: Sistemas Operacionais Toscani

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

Page 15: Sistemas Operacionais Toscani

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

Page 16: Sistemas Operacionais Toscani

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

Page 17: Sistemas Operacionais Toscani

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

Page 18: Sistemas Operacionais Toscani

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

Page 19: Sistemas Operacionais Toscani

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

Page 20: Sistemas Operacionais Toscani

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();}

Page 21: Sistemas Operacionais Toscani

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

Page 22: Sistemas Operacionais Toscani

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

Page 23: Sistemas Operacionais Toscani

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)

Page 24: Sistemas Operacionais Toscani

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

Page 25: Sistemas Operacionais Toscani

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

Page 26: Sistemas Operacionais Toscani

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.

Page 27: Sistemas Operacionais Toscani

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

Page 28: Sistemas Operacionais Toscani

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...

Page 29: Sistemas Operacionais Toscani

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

Page 30: Sistemas Operacionais Toscani

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

Page 31: Sistemas Operacionais Toscani

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

Page 32: Sistemas Operacionais Toscani

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

Page 33: Sistemas Operacionais Toscani

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

Page 34: Sistemas Operacionais Toscani

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

Page 35: Sistemas Operacionais Toscani

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

Page 36: Sistemas Operacionais Toscani

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

Page 37: Sistemas Operacionais Toscani

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

Page 38: Sistemas Operacionais Toscani

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

Page 39: Sistemas Operacionais Toscani

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

Page 40: Sistemas Operacionais Toscani

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

Page 41: Sistemas Operacionais Toscani

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

Page 42: Sistemas Operacionais Toscani

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

Page 43: Sistemas Operacionais Toscani

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

Page 44: Sistemas Operacionais Toscani

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

Page 45: Sistemas Operacionais Toscani

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

Page 46: Sistemas Operacionais Toscani

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

Page 47: Sistemas Operacionais Toscani

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

Page 48: Sistemas Operacionais Toscani

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

Page 49: Sistemas Operacionais Toscani

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

Page 50: Sistemas Operacionais Toscani

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

Page 51: Sistemas Operacionais Toscani

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

Page 52: Sistemas Operacionais Toscani

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

Page 53: Sistemas Operacionais Toscani

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

Page 54: Sistemas Operacionais Toscani

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

Page 55: Sistemas Operacionais Toscani

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.

Page 56: Sistemas Operacionais Toscani

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)

Page 57: Sistemas Operacionais Toscani

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

Page 58: Sistemas Operacionais Toscani

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_

Page 59: Sistemas Operacionais Toscani

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

Page 60: Sistemas Operacionais Toscani

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

Page 61: Sistemas Operacionais Toscani

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

Page 62: Sistemas Operacionais Toscani

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.

Page 63: Sistemas Operacionais Toscani

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

Page 64: Sistemas Operacionais Toscani

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.

Page 65: Sistemas Operacionais Toscani

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

Page 66: Sistemas Operacionais Toscani

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

Page 67: Sistemas Operacionais Toscani

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)

Page 68: Sistemas Operacionais Toscani

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

Page 69: Sistemas Operacionais Toscani

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)

Page 70: Sistemas Operacionais Toscani

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)

Page 71: Sistemas Operacionais Toscani

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

Page 72: Sistemas Operacionais Toscani

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??

Page 73: Sistemas Operacionais Toscani

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

Page 74: Sistemas Operacionais Toscani

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

Page 75: Sistemas Operacionais Toscani

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

Page 76: Sistemas Operacionais Toscani

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

Page 77: Sistemas Operacionais Toscani

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

Page 78: Sistemas Operacionais Toscani

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

Page 79: Sistemas Operacionais Toscani

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

Page 80: Sistemas Operacionais Toscani

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

Page 81: Sistemas Operacionais Toscani

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

Page 82: Sistemas Operacionais Toscani

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)

Page 83: Sistemas Operacionais Toscani

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)

Page 84: Sistemas Operacionais Toscani

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

Page 85: Sistemas Operacionais Toscani

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

Page 86: Sistemas Operacionais Toscani

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)

Page 87: Sistemas Operacionais Toscani

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

Page 88: Sistemas Operacionais Toscani

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)

Page 89: Sistemas Operacionais Toscani

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)

Page 90: Sistemas Operacionais Toscani

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

Page 91: Sistemas Operacionais Toscani

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

Page 92: Sistemas Operacionais Toscani

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

Page 93: Sistemas Operacionais Toscani

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

Page 94: Sistemas Operacionais Toscani

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

Page 95: Sistemas Operacionais Toscani

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

Page 96: Sistemas Operacionais Toscani

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

Page 97: Sistemas Operacionais Toscani

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)

Page 98: Sistemas Operacionais Toscani

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

Page 99: Sistemas Operacionais Toscani

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

Page 100: Sistemas Operacionais Toscani

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

Page 101: Sistemas Operacionais Toscani

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

Page 102: Sistemas Operacionais Toscani

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

Page 103: Sistemas Operacionais Toscani

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

Page 104: Sistemas Operacionais Toscani

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)

Page 105: Sistemas Operacionais Toscani

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

Page 106: Sistemas Operacionais Toscani

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

Page 107: Sistemas Operacionais Toscani

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

Page 108: Sistemas Operacionais Toscani

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

Page 109: Sistemas Operacionais Toscani

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

Page 110: Sistemas Operacionais Toscani

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

Page 111: Sistemas Operacionais Toscani

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

Page 112: Sistemas Operacionais Toscani

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

Page 113: Sistemas Operacionais Toscani

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

Page 114: Sistemas Operacionais Toscani

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

Page 115: Sistemas Operacionais Toscani

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)

Page 116: Sistemas Operacionais Toscani

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)

Page 117: Sistemas Operacionais Toscani

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

Page 118: Sistemas Operacionais Toscani

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

Page 119: Sistemas Operacionais Toscani

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

Page 120: Sistemas Operacionais Toscani

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

Page 121: Sistemas Operacionais Toscani

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

Page 122: Sistemas Operacionais Toscani

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...

Page 123: Sistemas Operacionais Toscani

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

Page 124: Sistemas Operacionais Toscani

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