resumo-sistemasoperativos-joaomarques
TRANSCRIPT
-
7/31/2019 Resumo-SistemasOperativos-JoaoMarques
1/38
Resumo Sistemas Operativos 1/38 Joo Marques
Resumo Sistemas Operativos
Tema 1 INTRODUO
funo SO: gerir componentes e us-los de forma correcta; providenciar interface simples para HW
SO conjunto de programas que permitem uma interaco simplificada entre o utilizador e amquina
SO poro do SW k funciona em modo ncleo (MN); ex. liberdade para modificar compilador,mas no para modificar Clock Interrupt Handler; ex. gerir passwords (MU) ajudam SO
1.1. O que um Sistema Operativo?
Mquina virtual: Dar ao utilizador a iluso de dispor de uma mquina muito mais fcil de utilizar eprogramar do que o hardware.
Gestor de recursos: Efectuar a gesto dos diversos componentes da arquitectura de um
computador, impondo ordem na atribuio de recursos aos programas. Tirar mximo partido dosrecursos disponveis (Tempo de CPU, memria, etc) ; time multiplexing turnos ; spacemultiplexing cada um fica com parte dos recursos
1.2. Histria dos Sistemas Operativos 1 computador Charles Babbage (1792-1871) realizou k precisaria de SW Ada Lovelace
1 programadora linguagem Ada1) Primeira gerao (1945-1955): Vlvulas e rels mecnicos
computadores k enchiam salas inteiras
+ de 20000 vlvulas
ligar plugboard ao computador
clculos numricos, tabelas, etc2) Segunda gerao (1955-1965): transistores, sistemas por batchs
programador traz card para IBM 1401 1401 grava card em tape operador leva tape paraIBM 7094 7094 faz computao operador leva tape para 1401 1401 imprime output
3) Tereira gerao (1965-1980): ICs e multiprogramao
System/360 computador k daria para fazer as 2 coisas 1 a usar ICs + potente
SO do 360 demasiado complexo
Multiprogramao: dividir memria em vrias parties enquanto um trabalho espera porI/O, outro pode ser processado CPU ocupado quase 100% do tempo
Spooling: ler trabalhos das cards para o disco assim k eles chegam (1401 desnecessrio)
tempo de resposta enorme pequenos bugs dificis de corrigir timesharing variante da
multiprogramao computador fornece servio interactivo rpido para quem precisa commais urgncia
MULTICS poder computacional atravs de tomadas (tipo energia elctrica)
Minicomputadores srie PDP
UNIX desenvolvido a partir de um minicomputador por um trabalhador da MULTICS4) Quarta gerao (1980-presente): Computadores pessoais
LSI circuits chips com milhares de transistores num cm2 era dos PCs (microcomputadores)muito barato abre a possibilidade de toda a gente comprar um PC
1974 Intel 8080 precisava SO Garz Kildall CP/M K. pediu direitos e formouDigital Research
1980s IBM IBM PC precisava SO Bill Gates DOSMS-DOS
-
7/31/2019 Resumo-SistemasOperativos-JoaoMarques
2/38
Resumo Sistemas Operativos 2/38 Joo Marques
Gates vende SO a fabricantes MAS Kildall vende SO a utilizadores finais
inveno do GUI
Steve Jobs computador Apple Apple com GUI Lisa (fracasso)Macintosh (sucesso)
Mac + user friendly e + barato k Lisa Microsoft SO com GUI Windows funcionava sobre o MS-DOS Win95 freestanding
(SO)Win98 (16 bits)Win NT 32 bitsWinNT5 = Win2000WinMe
UNIX Linux GUI = X Windows
Network OS existncia de mltiplos computadores k se podem ligar uns aos outros e partilharficheiros
Distributed OS OS k gere vrios processadores Ontogeny recapitulates Phytogeny cada nova espcie passa pelo desenvolvimento de todos os
antecessores
1.3. A Diversidade de Sistemas Operativos (OS Zoo)
1) SO de Mainframes: processar vrios trabalhos simultneamente; nmero considervel de I/O2) SO de Servidores: funcionam em servidores; servem muitos utilizadores ao mesmo tempo;
permitem partilha de recursos de HW e SW3) SO de Sistemas Multiprocessador: gerem vrios processadores em termos de escalonamento, etc4) SO de Computadores Pessoais: providenciar interface amigvel ao utilizador; Windows, MacOS,
Linux, etc5) SO de Tempo-Real: cumprir metas de tempo; gerir evente k TM de ocorrer em determinado
momento hard real-time system; falhar meta pode ser aceitvel soft real-time system (udiodigital, sistemas multimdia)
6) SO Embebidos: PDAs, SO de aparelhos k no so computadores (TV, micro-ondas, tlmoveis, etc);PalmOS, Windows CE (Consumer Electronics)
7) SO de Smart Card: cartes de crdito; uma nica funo: pagamentos; orientados a Java
1.4. Reviso do Hardware dos Computadores1) Processadores
Processador (CPU): Elemento activo do sistema que executa processos. Obtm instrues damemria, descodifica-as e executa-as.
multiprogramao gurdar registos para posterior reutilizao
pipeline: fetch, decode, execute separados
superscalar CPU: fetch, decode holding buffer execute
Modo ncleo (Kernel Mode): Modo privilegiado do processador, para o qual todas as instruesesto disponveis. S o Sistema Operativo que tem acesso a este modo.
Modo utilizador (User Mode): Disponvel um subconjunto das instrues do CPU. neste modoque correm as aplicaes.
chamada ao sistema (system call): mecanismo usado para requisitar um servio do modoncleo do SO
2) Memria
Hierarquia da memria Registos: to rpidos qto a CPU Cache Memria Principal: RAM Discos Magnticos: + barato; lento; aparelho mecnico Tapes Magnticas: baratssimo, pode-se remover; usado para backups
-
7/31/2019 Resumo-SistemasOperativos-JoaoMarques
3/38
Resumo Sistemas Operativos 3/38 Joo Marques
Memria e Gesto de memria: Diviso estruturada da memria de modo a ser possvel ocarregamento de diversos programas na memria principal.
Realocao e Proteco: Existncia de mecanismos que permitam o crescimento da memria de
dados de um programa. (Base/Limit Registers)3) Dispositivos I/O
dispositivos I/O controlador, prprio dispositivo
controlador apresenta interface simples ao SO
driver do dispositivo (device driver) SW k fala com o controlador enviando instrues eaceitando respostas; funciona em MN
SO driver controlador dispositivo
Formas de colocar o Driver no Ncleo: ligar o ncleo ao driver e reiniciar (UNIX) entrar num ficheiro do SO dizendo k o driver necessrio e reiniciar (Windows) SO aceita novos driver sem reiniciar (USB, etc)
Formas de realizar Input e Output: busy waiting interrupt uso de um chip DMA (Direct Memory Access)
4) Buses
Principais:- IBM PC ISA (Industry Standard Architecture)- PCI (Peripheral Component Interconnect): usado com a maioria dos dispositivos I/O de alta
velocidade
Especializados:- IDE: ligao de dispositivos como discos e CD-ROMs
- USB (Universal Serial Bus): ligao dos dispositivos I/O de baixa velocidade, como teclado,rato; driver nico; ligados sem necessidade de reiniciar
- SCSI (Small Computer System Interface): ligaes de alto desempenho como discos rpidos,scanners e outros dispositivos que requerem muita potncia
Outros- IEEE 1394 (FireWire):ligao de cmeras digitais e outros dispositivos multimdia
Plug and Play: dispositivos I/O recebem automaticamente nveis de interrupt e endereos I/O
A tecnologia Plug and Play (PnP) , que significa ligar e usar, foi criada com o objectivo de fazercom que o computador reconhea e configure automaticamente qualquer dispositivo que sejainstalado, facilitando a expanso segura dos computadores e eliminando a configurao manual.
1.5. Conceitos dos Sistemas Operativos1) Processos
Um processo basicamente um programa em execuo. Num sistema multi-programado, vriosprocessos podem estar a correr simultaneamente. Contudo, quando existe um s processador,apenas um processo pode utiliz-lo em cada instante temporal. Os processos concorrem peloprocessador e cooperam entre si para realizar tarefas mais complexas.
Espao de endereamento: lista de localizaes na memria; contm o programa executvel eos seus dados
Tabela de processos (process table): tabela k guarda todas as informaes de um processoquando este suspenso de modo a poder continuar o trabalho onde parou
Processo-filho: processo criado por outro processo
-
7/31/2019 Resumo-SistemasOperativos-JoaoMarques
4/38
Resumo Sistemas Operativos 4/38 Joo Marques
Comunicao entre processos (ver Tema 2)2) Impasses (Impasses)
Impasse: situao em k 2 processos esto bloqueados pk cada um espera por algo k o outro j
tem3) Gesto de Memria
memria pode conter vrios programas ao mesmo tempo gesto e proteco
memria virtual (ver Tema 3)4) Input/Output
I/O gerido pelo SO (ver Tema 5)5) Ficheiros (Sistemas de Ficheiros)
Ficheirosmodelo abstracto do disco
Directoria forma de agrupar ficheiros
Sistema de Ficheiros hierarquia
Outros conceitos: path name, root directory, working directory, mounted file system, block
special files, character special files, pipe (ver Tema 4)6) Segurana
Exemplo: rwxr-x--x Owner / Other Group Members / Everyone else (directory x search)7) Shell esta parte tem k ser treinada no Ubuntu
SO pode ser visto como um cdigo que executa as chamadas ao sistema;
Interpretador de comandos, apesar de no ser parte do sistema operacional, faz uso daschamadas
ao sistema para interfacear o usurio e o SO
Exemplo: dir, ls, clear, cls.8) Reciclagem de Conceitos
Exemplo: contiguously allocated files em CD-ROMs
1.6. Chamadas ao Sistema (System Calls)
Uma chamada ao sistema (system call) o mecanismo usado pelo programa para requisitar umservio do SO, ou mais especificamente, do modo ncleo do SO.
Fazer uma chamada ao SO como realizar uma chamada a um procedimento, contudo chamadas aosistema so executadas em MN e chamadas a procedimentos em MU
Chamadas ao Sistema para Gesto de Processos: fork, waitpid, execve, exit
Chamadas ao Sistema para Gesto de Ficheiros: open, close, read, write, lseek, stat
Chamadas ao Sistema para Gesto de Directorias: mkdir, rmdir, link, unlink, mount, unmount
Chamadas ao Sistema Diversas: chdir, chmod, kill, time
1.7. Estrutura de um Sistema Operativo1) Sistemas Monolticos
exemplo mais comum de SO, no qual aparentemente no existe estrutura
qualquer funo do SO pode comunicar com qualquer uma das outras2) Sistemas em Camadas (Layered Systems)
SO estruturado segundo um conjunto de camadas funcionais
cada camada utiliza servios de camadas que lhe so interiores
cada camada uma mquina virtual com uma interface bem definida
camada mais baixa (gesto de processos) corresponde ao ncleo do sistema operativo
Camadas Camada 0: Gesto de Processos
-
7/31/2019 Resumo-SistemasOperativos-JoaoMarques
5/38
Resumo Sistemas Operativos 5/38 Joo Marques
Camada 1: Gesto de Memria Camada 2: Comunicao Operador-Processo Camada 3: Gesto de Input/Output
Camada 4: Programas do Utilizador Camada 5: Operador
3) Mquinas Virtuais
mquina implementada atravs de SW que executa programas como um computador real
cpia isolada, e totalmente protegida, de um sistema fsico
computador fictcio criado por um programa de simulao
cada processo recebe uma cpia exacta do computador actual4) Exokernel
cada utilizador recebe um clone exacto do computador actual
VM1: blocos 0-1023; VM2: blocos 1024-2047; etc
exokernel organiza recursos das vrias VM e impede-as de interferir umas com as outras
cada VM acha k tem o seu prprio disco5) Modelo Cliente-Servidor
mover cdigo para camadas superiores
retirar o mximo de cdigo do ncleo (kernel) deixando um microkernel
implementar maioria do SO em processos
processo cliente comunica com processo servidor atravs de mensagens k passam pelo ncleo
SO encontra-se organizado segundo mdulos volta de um ncleo (kernel)
ncleo geralmente pequeno (Micro-kernel), comunicando com o hardware e estabelecendo acomunicao entre os diversos mdulos
processo cliente e de processo servidor correm em modo utilizador
facilmente adaptvel a sistemas distribudos ; estrutura mais estvel (teoricamente...)
Tema 2 PROCESSOS, TAREFAS E IMPASSES
2.1. Processos
2.1.1. O Modelo de Processo
Processo: Entidade activa, que corresponde a um programa em execuo. Cada processo tem umespao de endereamento prprio. A gesto de processos da responsabilidade do sistemaoperativo, que utiliza estruturas de dados (process tables) que descrevem o contexto de execuode cada processo. O prprio sistema operativo tambm um conjunto de vrios processos.
Programa: Sequncia de instrues sem actividade prpria (no confundir com processo) Multi-programao: Num sistema multi-programado, mesmo que s exista um processador
possvel vrios processos estarem activos simultaneamente. Contudo, em cada instante temporal,apenas um deles pode utilizar o processador. A esta iluso de vrios processos correremaparentemente em paralelo, d-se o nome de pseudo-paralelismo. No devem ser feitas assunesem relao ordem de comutao do processador, devido a: Existncia de interrupes, Falta derecursos, Entrada de processos prioritrios. Depois de uma comutao do processador, o prximoprocesso a utiliz-lo escolhido pelo sequenciador de processos do SO. Os vrios processoscompetem entre si pela ateno do processador. Mas tambm podem trabalhar em conjunto paraa realizao de tarefas mais complexas. Esta cooperao exige ao SO a existncia de mecanismos desincronizao e comunicao entre processos.
-
7/31/2019 Resumo-SistemasOperativos-JoaoMarques
6/38
Resumo Sistemas Operativos 6/38 Joo Marques
2.1.2. Criao de Processos
Principais eventos que causam a criao de processos:
1. Inicializao do sistema2. Execuo de uma chamada ao sistema de criao de um processo por parte de outro processo3. Criao de um processo a pedido do utilizador4. Inicializao de um trabalho batch (batch job)
daemons: processos de fundo k aguardam sinais (e-mail, impresso, etc)
fork cpia exacta do processo paimas espao de endereamento diferentemodificaes nofilho no so visveis nem para o pai filho executa execve para mudar a sua imagem de memria
2.1.3. Terminao de Processos
Condies que causam a terminao de processos:1. Sada normal (voluntria): acaba o seu trabalho exit ; clique na cruz no canto da janela
2. Sada de erro (voluntria): compilao de um ficheiro k no existe pop-up dialog box3. Sada fatal (involuntria): erro causado pelo processo; bug; instrues ilegais; dividir por 04. Terminado (killed) por outro processo (involuntria): Processo A mata Processo B kill
2.1.4. Hierarquias de Processos (UNIX)
prcesso pai e processo filho continuam associados
processo filho pode criar + processos hierarquia
processo e seus descendentes Grupo de Processos
envio de um sinal (teclado) todo o grupo
UNIX processo init rvore de processos com init na raiz
Windows sem hierarquia de processos
2.1.5. Estados de um Processo
Em Execuo (Running): O processo est a utilizar o processador
Executvel (Ready): O processo est activo, mas est espera de ter a ateno do processador, quenesse instante est dedicado a outro processo
Bloqueado (Blocked): O processo est inactivo espera que termine uma operao de I/O espera que outro processo liberte recursos devido ocorrncia de uma page fault no possui recursos na memria principal
process-structured OS processos sequnciais e camada inferior com escalonador (Scheduler)
2.1.6. Implementao de Processos Cada vez que ocorre uma comutao de processos, o SO salvaguarda e actualiza informao
relevante na Process Table do processo que perdeu a CPU
os interrupts k causam as comutaes de processos
Passos de uma Interrupo:1. HW guarda program counter (entre outros) na pilha (stack)2. HW carrega o novo programa indicado no vector de interrupo3. procedimento em assembly guarda os registos4. procedimento em assembly gera nova pilha5. procedimento em C l input6. escalonador decide qual o prximo processo a trabalhar
-
7/31/2019 Resumo-SistemasOperativos-JoaoMarques
7/38
Resumo Sistemas Operativos 7/38 Joo Marques
7. controlo devolvido ao procedimento em assembly8. procedimento em assembly inicia novo processo
2.1.7. Escalonamento
2.1.7.1. Introduo ao Escalonamento Quando ocorre uma comutao de processos, o escalonador (scheduler) escolhe um processo para
o qual se atribui a CPU A escolha feita de acordo com um dado algoritmo de escalonamento Aps a escolha do sequenciador, o despachante (dispatcher) encarrega-se de colocar o processo em
execuo. timesharing trouxe complexidade aos algoritmos de escalonamento Comportamento dos Processos
impulso de computao (CPU burst) CPU utilizado impulso de I/O (I/O burst) espera-se por resposta de dispositivo externo
processos de computao (compute-bound) impulsos de computao longos
processos de I/O (I/O-bound) impulsos de computao curtos prioritrios Quando escalonar?
quando um processo criado lanar pai ou filho
quando um processo termina escolher outro
quando um processo bloqueia devia considerar-se razo do bloqueio, mas escolanador burro
quando ocorre uma interrupo I/O considerar processo k esperava pelo I/O
algoritmos de escalonamento no-preemptivos deixam funcionar processo at k bloqueie
algoritmos de escalonamento preemptivos deixam funcionar durante um tempo mximo
interrupo do relgio (clock interrupt) Categorias de Algoritmos de Escalonamento (dependem do tipo de sistema)
1. Sistema batch utilizador espera alg. no-preemptivos aumento do desempenho2. Sistema interactivo preempo essencial3. Sistema em tempo real preempo nem sempre necessria processos rpidos
Objectivos dos Algoritmos de Escalonamento
Todos os Sistemas
Justia garantir que todos os processos tero direito a tempo de CPU
Prioridades dar maior tempo de CPU aos processos com maior importncia
Equilbriomanter os recursos do sistema com uma taxa de ocupao equilibrada
Sistemas Batch
Throughputmaximizar o nmero de trabalhos por hora Turnaround timeminimizar tempo entre submisso e terminao
Utilizao da CPUmanter CPU sempre ocupada
Sistemas Interactivos
Tempo de Resposta deve ser curto (interaco)
Proporcionalidade responder s expectativas dos utilizadores (ex. ligar/desligar Internet)
Sistemas em Tempo-Real
Cumprir metas (deadlines) evitar perda de dados
Previsibilidade um mesmo programa deve ser correctamente executado,independentemente da carga do sistema (Sistemas Multimdia)
-
7/31/2019 Resumo-SistemasOperativos-JoaoMarques
8/38
Resumo Sistemas Operativos 8/38 Joo Marques
2.1.7.2. Escalonamento em Sistemas Batch First-Come First-Served
alg. no preemptivo; tem uma fila de espera
em caso de bloqueio, processo colocado no fim da fila Vantagem: simples, justo
Desvantagem: processos de computao demoram muito tempo a concluir Shortest Job First
Vantagem: diminui turnaround time Shortest Remaining Time Next
Vantagem: trabalhos novos e curtos so tratados rapidamente Three-Level Scheduling
admission scheduler seleco de uma mistura de processos de computao e de I/O; admitirtrabalhos curtos primeiro
memory scheduler espao insuficiente trabalho enviado para disco
grau de multiprogramao: quantidade de processos em memria CPU scheduler escolhe um processo para usar a CPU
2.1.7.3. Escalonamento em Sistemas Interactivos Round-Robin Scheduling
a cada processo atribudo o seu quantum alg. preemptivo
quantum: intervalo de tempo em k um processo autorizado a funcionar
quantum usado ou processo bloqueado processo colocando no fim da fila
ideia implcita todos os processos tm a mesma importncia
Desvantagens: quantums curtos muitas comutaes desperdio da CPU
quantums longos poucas comutaes tempo de resposta longo Soluo: quantum > impulso de CPU preempo raramente acontece eliminao da
preempo comutaes acontecem apenas quando so necessrias Priority Scheduling
existe prioridade
evitar monopolizao por parte dos processos de alta prioridade diminui-se as suasprioridades a cada interrupo do relgio OU atribui-se um quantum mximo
alg. k beneficia processos de I/O prioridade =
, onde f a fraco do ltimo quantum k um
processo usou
agrupar em classes de prioridade e usar Round-Robin dentro de cada classe prioridadesbaixas so tratadas quando prioridades altas esto vazias
Multiple Queues
diviso em classes
classe N N quantums
processo gasta quantum todos movido para classe seguinte Shortest Process Next
no se conhece o tempo de cada processo estimativas comportamentos anteriores Guaranteed Scheduling
N processos cada um recebe 1/N dos ciclos da CPU funciona com rcios Lottery Scheduling
distruio de bilhetes de lotaria
-
7/31/2019 Resumo-SistemasOperativos-JoaoMarques
9/38
Resumo Sistemas Operativos 9/38 Joo Marques
deciso de escalonamento sorteia-se um nmero
processos prioritrios recebem mais bilhetes aumento da probabilidade
processos k cooperam podem partilhar bilhetes (bloqueio) Fair-Share Scheduling
tem-se em considerao o dono (utilizador) do processo
cada utilizador recebe uma fraco da CPU
exemplo (50%): User 1 tem processos: A,B,C,D; User 2 tem processo X A,X,B,X,C,X,D,X,A,X,
2.1.7.4. Escalonamento em Sistemas em Tempo-Real
tempo papel essencial
dispositivos fsicos geram estmulos computador tem k reagir adequadamente num determinadointervalo de tempo
hard real timemetas absolutas
soft real time aceitvel perder-se uma meta ocasionalmente
dividir programa em vrios processos comportamento conhecido previamente muito curtos evento externo escalonador gere processos de modo a k todas as metas sejam cumpridas
eventos peridicosmesmo periodo
eventos aperidicos periodos diferentes
um sistema em tempo-real escalonvel s se
1
alg. estticos decises previamente tomadas alg. dinmicos decises tomadas na hora do escalonamento
2.2. Tarefas
2.2.1. O Modelo de Tarefa
Tal como os processos, as tarefas so tambm entidades activas. Um processo pode ser compostopor vrias tarefas que partilham o mesmo espao de endereamento. Processos diferentes possuemrecursos diferentes, mas um conjunto de tarefas dentro do mesmo processo partilha os mesmosrecursos.
Cada tarefa tem registos, program counter, stack e estado prprios (running, ready, blocked,terminated)
no existe proteco entre tarefas pk: (1) impossvel ; (2) desnecessrio, as tarefas cooperamentre si e no lutam entre si
cada tarefa tem a sua prpria pilha (stack)
uma tarefa pode criar outra com ou sem hierarquia thread_create
tarefa fecha-se a si prpria thread_exit
uma tarefa pode esperar por outra thread_wait
no h interrupes de relgio para tarefas escalonamento feito atravs da chamadathread_yield tarefas desistem voluntriamente da CPU para permitir k outras trabalhem
Algumas complicaes que as tarefas introduzem:
fork processo filho deve ter as mesmas tarefas k processo pai? tarefas bloqueadas?
partilha de dados se uma tarefa fecha um ficheiro enquanto outra o est a ler? geto dos pedidosde alocao de memria?
-
7/31/2019 Resumo-SistemasOperativos-JoaoMarques
10/38
Resumo Sistemas Operativos 10/38 Joo Marques
2.2.2. Utilizao de Tarefas
Razes principais da existncia de tarefas Decomposio de uma aplicao em vrias tarefas que se executam quase simultneamente
Facilidade de criao e destruio das tarefas Diviso em tarefas de computao (CPU-bound) e tarefas de I/O (I/O-bound)
Exemplos de utilizao de tarefas: Processador de texto podem existir tarefas para:
Ler input do teclado Reformatar o documento Salvar o documento automaticamente, etc.
Web Server dois tipos de tarefas dispatcher sempre que chega um pedido de pgina, a tarefa dispatcher lana uma
tarefa worker worker procura a pgina pedida na cache de pginas, caso no a encontre, ter que ir
busc-la ao disco Formas de construir um servidor:
Threads Parallelism, blocking system calls Single-threaded process No parallelism, blocking system calls Finite-state machine Parallelism, nonblocking system calls, interrupts
2.2.3. Implementar Tarefas no Espao do Utilizador
gerir as tarefas em MU
ncleo no sabe da existncia das tarefas
geridas pelos procedimentos thread_create,exit,wait,yield,etc.
cada processo tem a sua prpria tabela de tarefas (thread table)
Vantagens: podem-se usar tarefas num SO k no suporta tarefas comutao de tarefas muito rpida cada processo tem o seu prprio algoritmo de escalonamento
Desvantagens: chamadas de bloqueio podem interferir e bloquear outras tarefas quando ocorre uma falta de pgina (page fault), o processo bloqueado apesar de outras
tarefas ainda poderem funcionar como as interrupes no tm influncia no escalonamento de tarefas, uma tarefa pode
trabalhar indefinidamente se no usar thread_yield programadores querem tarefas que fiquem bloqueadas com frequncia
2.2.4. Implementar Tarefas no Ncleo
ncleo gere tarefas
tabela de tarefas nica situada no ncleo
criao/destruio de tarefas chamada ao ncleo ncleo actualiza tabela de tarefas
chamadas de bloqueio de tarefas chamadas ao sistema
qdo 1 tarefa bloqueia, ncleo escolhe outra (do mesmo ou de outro processo)
alto custo de criao/destruio de tarefas reciclagem de tarefas desactivada reactivada
-
7/31/2019 Resumo-SistemasOperativos-JoaoMarques
11/38
Resumo Sistemas Operativos 11/38 Joo Marques
2.2.5. Implementaes Hbridas
objectivo reunir vantagens das tarefas em espao do utilizador e das tarefas de ncleo
mistura desses dois mtodos
2.2.6. Activaes do Escalonador
implementao hbrida
imitar funcionalidades das tarefas de ncleo
qdo 1 tarefa bloqueia deixar funcionar 1 tarefa do mesmo processo
eficincia evitar transies desnecessrias entre MU e MN
uso de processadores virtuais
bloqueio ncleo notifica processo upcall escalonamento de tarefas (dentro do processo)
2.2.7. Tarefas Pop-Up
tarefa pop-up tarefa cuja criao causada pela chegada de uma mensagem
criao instantnea, devido tarefa ser nova e no ter histrico nenhuma informao precisa deser carregada
2.2.8. Tornar Cdigo de Tarefas-nicas em Multitarefas
maioria dos programas escritos para tarefas-nicas torn-los utilizveis para multitarefas
1 problema Variveis Globais: possvel soluo proibir variveis globais quase impossvel outra soluo atribuir a cada tarefa a sua prpria varivel global acesso complicado introduzir novos procedimentos de biblioteca (library procedures) para gerir essas variveis
globais privadas tarefa usa procedimento acessa apenas os seus prprios dados
2 problema Procedimentos de Biblioteca podem ser usados s por uma tarefa de cada vez: soluo 1 procedimento em uso deixa procedimento invlido k leva a crash soluo 2 atribuir a cada procedimento um bit adicional k indica se o procedimento est a ser
usado ou no elimina grande parte do paralelismo
3 problema Sinais (ncleo no sabe para k tarefa os deve enviar)
4 problema Pilhas (Stacks) ncleo no sabe quando k as tarefas precisam de mais espao
problemas corrigveis, mas solues difceis e solues tm k suportam tarefas-nicas tambm
2.2.9. Escalonamento de Tarefas
2 nveis de paralelismo processos e tarefas
Tarefas no Espao do Utilizador
escalonamento de processos e de tarefas separados alg. de escalonamento de tarefas comuns round-robin, priority ex: A1,A2,A3,B1,B2,B3,A1,A2,A3,
Tarefas no Ncleo ncleo escolhe tarefa (no tem k considerar o processo ao qual pertence) ex: A1,B1,A2,B2,A3,B3,A1,B1,
prefervel deixar trabalhar tarefas do mesmo processo para evitar comutaes entre processos
-
7/31/2019 Resumo-SistemasOperativos-JoaoMarques
12/38
Resumo Sistemas Operativos 12/38 Joo Marques
2.3. Comunicao entre Processos (Interprocess Comunnication IPC)
Modos de comunicao entre processos: Passagem de informao de um processo para outro
Processos no devem atrapalhar uns aos outros em regies crticas Ordem quando existe dependncia entre processos
tudo isto tb vlido para tarefas
2.3.1. Condies de Disputa (Race Conditions)
Uma condio de disputa uma situao que ocorre quando dois ou mais processos lem eescrevem (n)os mesmos dados e o resultado final depende do proceso que acedeu aos dados porltimo.
Exemplo: impressora, spooler directory, printer daemon
2.3.2. Regies Crticas
regio crtica seco do programa onde so efectuados acessos (para leitura e escrita) a recursospartilhados por dois ou mais processos
necessrio assegurar que dois ou mais processos no se encontrem simultaneamente na regiocrtica excluso mtua
assegura-se a excluso mtua recorrendo aos mecanismos de sincronizao fornecidos pelo SO
Estas afirmaes so vlidas tambm para as tarefas ( ainda mais crtico, pois todas as tarefasdentro do mesmo processo partilham os mesmos recursos)
Regras para programao concorrente (evitar condies de disputa):1. Dois ou mais processos no podem estar simultaneamente dentro de uma regio crtica2. No se podem fazer assunes em relao velocidade e ao nmero de CPUs3. Um processo fora da regio crtica no deve causar bloqueio a outro processo
4. Um processo no pode esperar infinitamente para entrar na regio crtica
2.3.3. Excluso Mtua com Espera Activa (Busy Waiting)1) Disabling Interrupts
assim k 1 processo entra na sua regio crtica, desliga as interrupes de modo a no serincomodado por outro processo. qdo sair, volta a ligar as interrupes
no se deve dar essa liberdade aos processos risco: um processo pode no reactivar asinterrupes
desligar interrupes permitido pelo ncleo e pode ser muito til, mas no aconselhvelcomo mecanismo de excluso mtua
2) Lock Variables
considerar uma varivel de trancar partilhada
0 pode entrar na regio crtica ; 1 no pode entrar
contm mesmo erro fatal de spooler directory pode levar a condies de disputa3) Strict Alternation
varivel k indica qual dos processos pode entrar na regio crtica
qdo um processo sai, muda o valor e outro (k corresponde quele valor) pode entrar
processos k esto fora testam varivel em espera activa (busy waiting)
esperas activas devem ser evitadas pk reduzem a eficincia do processador
mtodo no aconselhvel qdo temos processos lentos e rpidos viola Regra 34) Petersons Solution
alg. consiste em 2 procedimentos: enter_region, leave_region ; var.glob.: turn, interested[N]
-
7/31/2019 Resumo-SistemasOperativos-JoaoMarques
13/38
Resumo Sistemas Operativos 13/38 Joo Marques
enter_region[0] turn=0 interested[0]=TRUE leave_region[0] interested[0]=FALSE
processo 1 em espera activa at processo 0 sair da regio crtica5) The TSL Instruction (Test and Set Lock)
uma instruo do processador carrega num registo o valor lido de uma posio e de seguidaescreve nessa posio um valor diferente de zero (e.g. 1) compara valor lido com 0 se for0, entra; se no for 0, espera activa
enter_region TSL busy waiting ; leave_region lock=0
2.3.4. Sleep and Wakeup (Adormecer e Acordar)
Duas chamadas ao sistema que funcionam do seguinte modo:
Sleep() causa bloqueio ao processo que a invoca
Wakeup(PID) desbloqueia o processo identificado por PID
A utilizao destas duas chamadas evita esperas activas, e em conjunto com outros mecanismos(e.g. TSL) consegue-se garantir a excluso mtua
Problema lost Wakeup signal processo manda acordar o outro sem este ter adormecidoainda possvel soluo wakeup bit esta soluo no funciona sempre invlida
2.3.5. Semforos (Semaphores)
Um semforo consiste basicamente num nmero inteiro no negativo
Foram originalmente sugeridas duas operaes atmicas (indivisveis) sob o ponto de vista do SO:
UP(Sem) Incrementa em uma unidade o valor do semforo Sem
DOWN(Sem) Tenta decrementar em uma unidade o semforo Sem. Caso o semforo esteja a 0,o processo que invoca DOWN bloqueia at que o valor do semforo permita o decremento e aoperao seja finalizada
aces atmicas (atomic actions)
implementao de forma indivisvel considerar UP & DOWN como chamadas ao sistema desligar interrupes durante as suas execues
no caso de mltiplas CPUs proteger semforo com Instruo TSL permite apenas 1 CPU
semforos resolvem problemas de excluso mtua e problemas de sincronizao
2.3.6. Mutexes
qdo a funcionalidade de contagem dos semforos no necessria, usa-se uma verso simplificadade semforomutex
mutexes apenas servem para excluso mtua
mutex varivel k pode ter 2 estados: destrancado, trancado (unlocked, locked)
representao em integer
2 procedimentos: mutex_lock, mutex_unlock mutex_lock LOCKED thread_yield sem espera activa (no busy waiting)
Como que processos, que tm obviamente espaos de endereamento diferentes, podempartilhar um semforo? semforos guardados no ncleo acesso atravs de chamadas ao sistema a maioria dos SOs oferece maneira de os processos partilharem uma parte do seu espao de
endereamento com outros processos usar um ficheiro partilhado
-
7/31/2019 Resumo-SistemasOperativos-JoaoMarques
14/38
Resumo Sistemas Operativos 14/38 Joo Marques
2.3.7. Monitores
monitor primitiva de sincronizao de alto nvel; coleco de procedimentos, variveis eestruturas de dados k so agrupadas num tipo especial de mdulo ou pacote
propriedade importante dentro de um monitor, apenas um processo pode estar activo em cadainstante
tornar regies crticas em procedimentos de monitor
condition variables wait ou signal (parecido com sleep, wakeup)
diferena entre wait/signal e sleep/wakeup w/s no so interrompidos por escalonamento
nem semforos nem monitores funcionam em troca de informao entre mquinas pk estas nopartilham memria umas com as outras
2.3.8. Troca de Mensagens (Message Passing)
procedimentos de biblioteca: send, receive
Design de Mensagens
rede mensagens perdidas soluo: receptor envia mensagem de confirmao mensagem recebida, mas confirmao perdida evitar reenvio atribuir nmero (cdigo) a
cada mensagem de modo a poder reconhecer e ignorar uma transmisso j recebida autenticao tb um assunto muito importante
2.3.9. Barreiras
mecanismo de sincronizao para grupos de processos
algumas aplicaes so divididas em fases
regra s se segue para a fase seguinte quando todos os processos terminaram a fase actual
barreira limite entre fases (fronteira)
ex: clculo de matrizes de grande ordem
2.4. Problemas Clssicos de Comunicao entre Processos (Classical IPC Problems)1) Problema do Jantar dos Filsofos (The Dining Philosophers Problem)2) Problema do Leitor e Escritor (The Readers and Writers Problem)3) Problema do Barbeiro Adormecido (The Sleeping Barber Problem)
2.5. Impasses (Deadlocks) Um conjunto de processos est num impasse se cada um dos processos est bloqueado espera de
um sinal dependente de outro processo nesse conjunto.
2.5.1. Recursos
recurso
dispositivo de HW, pedao de informao, etc cada recurso s pode ser usado por um processo num determinado instante1) Recursos Preemptveis e No-preemptveis (Preemptable and Nonpreemptable Resources)
recurso preemptvel: pode ser tirado do processo que o possui sem prejudicar o resultado dacomputao (memria)
recurso no-preemptvel: se o recurso for tirado do processo antes de este o libertar, oresultado da computao ser incorreto (impressora, gravador de CD, etc)
Sequncia de eventos necessrios para usar um recurso:1. Requisitar o recurso disponvel continuar em 2. ; indisponvel sleep2. Usar o recurso3. Libertar o recurso
-
7/31/2019 Resumo-SistemasOperativos-JoaoMarques
15/38
Resumo Sistemas Operativos 15/38 Joo Marques
2) Aquisio de Recursos
associar um semforo a cada recurso DOWN usa recurso UP
ordem de requisio dos recursos deve ser sempre a mesma seno potencial impasse
2.5.2. Introduo aos Impasses1) Condies para um impasse (as 4 tm k estar presentes impasse)
1. Excluso Mtua: cada recurso est atribudo a um nico processo em um dado intervalo detempo
2. Espera com Reteno: um processo pode solicitar novos recursos quando ainda est a reteroutros recursos
3. No-preempo: um recurso concedido a um processo no lhe pode ser retirado fora;somente pode ser libertado pelo prprio processo
4. Espera Circular: existe uma cadeia circular de dependncia entre os processos2) Modelao de Impasses
quadrado n de recurso crculo n de processo
seta R-P recurso conedido ao processo
seta P-R processo bloqueado espera do recurso
ciclo impasse3) Estratgias para lidar com impasses
1. Ignorar totalmente a existncia dos impasses2. Detectar o impasse e recuperar o sistema aps a ocorrncia deste impasse3. Evitar a ocorrncia dos impasses em tempo de execuo, ao alocar os recursos aos processos4. Impedir ocorrncia de impasses, definindo regras que impedem a existncia de uma das quatro
condies necessrias.
2.5.3. Algoritmo da Avestruz (The Ostrich Algorithm)
ignorar o problema fingir que no existe
aceitvel se a probabilidade de impasse for muito baixa; custo da soluo for elevado
compromisso entre correco e convenincia/eficincia anlogo a muitos em engenharia.
2.5.4. Deteco de Impasse e Recuperao sistema no tenta prevenir impasses deixa-os acontecer para lhes tratar da sade :DA. Deteco
Algoritmo e deteco de Impasses (ciclos) analisa cada n segue setas caso encontreum n pelo qual j passou impasse
B.
Recuperaoa) Recuperao atravs da Preempo remove-se o recurso manualmenteb) Recuperao atravs de Rollback checkpoint recomear a partir de um checkpointc) Recuperao atravs da Terminao (Killing) de Processos matar processos at sair do
impasse (at destruir o ciclo) escolha cuidadosa do(s) processo(s) a matar
2.5.5. Preveno de Impasses (Deadlock Prevention) ideia garantir k uma das 4 condies de impasse nunca ocorre impasses impossveis1) Atacar a Excluso mtua
recorrer a processos auxiliares printer spooler
nem todos os recursos se prestam a spooling
-
7/31/2019 Resumo-SistemasOperativos-JoaoMarques
16/38
Resumo Sistemas Operativos 16/38 Joo Marques
a conteno no acesso a outros recursos (ex. disco, no caso do printer spooler) pode tambmdar origem a impasses
ideias importantes atribuio um recurso apenas quando necessrio ; minimizar o nmero de
processos que partilham um recurso2) Atacar a Espera com Reteno
pedir todos os recursos necessrios antes de iniciar tarefa problemas: (1) processo no sabe,previamente, quais os recursos k vai precisar; (2) processo pode bloquear recursosdesnecessriamente durante muito tempo
processo dever libertar todos os recursos que possui, quando o pedido de um recursoconduziria a um
bloqueio; quando desbloqueado, o processo ter que readquirir todos os recursos de novo3) Atacar a No-preempo
retirar recursos a um processo (sem a sua cooperao) invivel na maioria dos casos4) Atacar a Espera Circular
a um processo s pode ser atribudo um recurso de cada vez; tem k libertar recurso para poderrequisitar outro no aconselhvel exemplo: imprimir a partir de uma tape
numerao global de todos os tipos de recursos requisio feita por ordem eliminaimpassesMAS ordenao pode ser complicada pk nunca satisfaz todos
2.5.6. Outros Asuntos1) Two-Phase Locking
1 fase processo tranca (locks) todos os recursos k necessita
se encontrar algum recurso j utilizado por outro processo liberta todos os recursos reinicia 1 fase sem impasses
2 fase trabalho normal do processo
mtodo no aplicvel em geral sistemas de tempo-real h processos k no podem serreiniciados de qualquer maneira
2) Nonresource Deadlock
2 processos podem bloquear-se mutuamente (mesmo sem recursos) impasse
ex: ordem de DOWNs em semforos3) Starvation (Privao)
processos k nunca recebem ateno no um problema de impasse MAS sim de privao
ex: Shortest Job First se entram sempre trabalhos curtos os longos nunca so atendidos
evitar privao First-Come First-Served
Tema 3 GESTO DE MEMRIA
limitaes da memria hierarquia de memria Registos, Cache, Memria principal (RAM),Discos (memria secundria), Tapes
gestor de memria parte do SO k gere a hierarquia de memria da responsabilidade do sistema operativo gerir a memria disponvel no sistema:
Representao do estado da memria Atribuio de memria aos processos Libertao da memria Conjugao entre a memria principal e secundria
-
7/31/2019 Resumo-SistemasOperativos-JoaoMarques
17/38
Resumo Sistemas Operativos 17/38 Joo Marques
3.1. Gesto Bsica de Memria1) Monoprogramao sem Swapping nem Paging
Programas/processos executados um de cada vez
Formas simples de organizar a memria com um SO e um processo (de baixo para cima): SO em RAM, Pr. em Mem.mainframes e minicomputadores Pr. em Mem., SO em ROM Palmtop Computers, sistemas embutidos SO em RAM, Pr. em Mem., Drivers dos disp. em ROM 1s PCs (MS-DOS) ROM (BIOS)
Mediante um comando, o SO carrega o programa em memria principal, e este corre atterminar
2) Multiprogramao com Parties Fixas
dividir memria em N parties fixas (de tamanhos diferentes)
cada programa carregado numa partio com uma dimenso adequada
parte da partio no utilizada perdida
mltiplas filas de espera desvantagem: pode haver uma partio vazia desperdio
fila de espera nica partio livre carrega-se 1 trabalho da fila k l cabe manter interactividade manter sempre pelo menos uma partio pequena trabalhos
pequenos nunca esperam muito3) Modelar a Multiprogramao
processos passam uma fraco do tempo da sua existncia bloqueados em operaes de I/O se processos estiverem a correr, a probabilidade da CPU estar desocupada ser taxa de ocupao do CPU ser ento dada por 1 grau de multiprogramao
4) Anlise do Desempenho de Sistemas Multiprogramados
modelo anterior pode ser usado para analisar sistemas batch
exemplo: 4 jobs ; 1 job no perde muito qdo 2 adicionado, 5) Realocao e Proteco
A multi-programao trouxe dois problemas a resolver: realocao garantir que os endereos referenciados por um programa sejam os correctos
independentemente da posio de memria a partir da qual carregado proteco impedir que um programa aceda aos endereos de um outro programa
Solues: Registo Base a todos os endereos referenciados pelo programa soma-se o endereo
base da partio onde este carregado. Os programas so escritos como se o primeiroendereo fosse 0.
Registo Limite verifica-se se os endereos referenciados pelo programa se encontramdentro da partio que lhe atribuda
3.2. Swapping em sistemas batch, a gesto bsica de memria suficiente
em sistemas de timesharing e GUI, h demasiados processos no cabe tudo na memria tem khaver trocas (swapping) conforme os programas vo sendo utilizados
equema que envolve a memria principal e a memria secundria (disco)
swapping consiste em transferir processos da memria principal para o disco e vice-versa
transferir para o disco um processo bloqueado, e trazer para a RAM um processo pronto
estratgia utilizada em conjunto com parties de dimenses variveis
conduz proliferao de buracos (fragmentao) compactao da memria demorademasiado tempo
processos com tamanho fixo alocao de memria simples
-
7/31/2019 Resumo-SistemasOperativos-JoaoMarques
18/38
Resumo Sistemas Operativos 18/38 Joo Marques
processos k crescem alocao dinmica buraco adjacente : fcil caso no haja um buracoadjacente, troca-se (swap) outro(s) processo(s) OU o processo terminado (killed)
alocar um pouco de memria extra para permitir expanso do processo
se um processo tem 2 segmentos de expanso (data segment & stack segment), coloca-se datasegment em baixo a expandir-se para cima e stack segment em cima a expandir-se para baixo
1) Gesto de Memria com Bitmaps
estrutura-se a memria em unidades de alocao (blocos) de dimenso fixa
representa-se o estado da memria atravs de bitmaps
1 representa bloco ocupado
0 representa bloco livre
tamanho dos blocos tamanho do bitmap
desvantagem procurar buracos uma tarefa lenta2) Gesto de Memria com Listas Ligadas
listas ligadas indicam o bloco inicial e o nmero total de blocos de um processo (P) ou de um
buraco (H, de hole) Vantagem: fcil actualizao da lista ex: swap out substituir P por H fundir 2 Hs
Algoritmos: First Fit: procura o primeiro buraco da lista com dimenso suficiente Next Fit: variante do anterior, procura a partir do ponto em que foi encontrado um buraco
anteriormente Best Fit: procura o buraco com a dimenso que melhor se ajusta Worst Fit: procura o maior buraco disponvel, na esperana de que o espao que sobra
possa ainda ser utilizado por outros programas a carregar no futuro
aumento do desempenho dos algoritmos se se usar listas separadas: uma para Ps, outra para Hs
ordenar listas do + pequeno ao maior bloco desempenho de Best Fit
outro algoritmo Quick Fit mantm vrias listas de buracos, agrupados de acordo com assuas dimenses desvantagem: encontrar vizinhos (para possvel fuso de buracos) difcil
3.3. Memria Virtual programas demasiado grandes no cabem na memria dividir programas em overlays trabalho muito chato efectuado pelo programador dar esse trabalho ao computadormemria virtual no se usa o programa inteiro (visto k no cabe), usa-se apenas as partes necessrias1) Paginao (Paging)
Espao de endereamento virtual: Espao de endereamento que engloba a memria primriae secundria, tirando partido da sua dimenso pode ser muito superior da memria RAM
O endereamento virtual difere do swapping visto anteriormente; cada processo pode terpartes carregadas em memria principal, partes em memria secundria, ou em ambos os lados
Endereos reais: Endereos fsicos que correspondem ao acesso aos dispositivos de uma formadirecta
Endereos virtuais: Endereos utilizados internamente pelo sistema, e que no esto ligados aosdispositivos fsicos de uma forma directa; um endereo virtual pode ser muito diferente de umendereo real
endereos virtuais so convertidos em endereos reais atravs de estruturas e algoritmos nosquais intervm o SO e tambm uma unidade de hardware designada MMU (MemoryManagement Unit)
-
7/31/2019 Resumo-SistemasOperativos-JoaoMarques
19/38
Resumo Sistemas Operativos 19/38 Joo Marques
A funo da MMU converter endereos virtuais em endereos fsicos; notifica o sistema se forfeito um acesso a um endereo virtual que no corresponde fisicamente memria principal(page fault trap to kernel)
Paginao: Mtodo mais comum de gesto da memria virtual Pginas (pages): O espao de endereamento virtual divido em blocos de dimenso fixa
designadas por pginas. A dimenso de cada pgina uma potncia de 2
Molduras de pgina (page frames): A memria principal dividida em blocos com a capacidadede alojarem uma pgina
Faltas de pgina (Page faults) qdo acedida uma pgina que no se encontra na memria principal, ocorre uma page fault uma page fault uma excepo que causa bloqueio ao processo em questo carregamento da pgina em falta, da memria secundria para a memria principal efectuam-se as alteraes necessrias na page table, de modo a esta continuar consistente pode ser necessrio transferir uma outra pgina para a memria secundria, de modo a
libertar-se uma page frame nesse caso corre-se o algoritmo de substituio de pginas2) Tabelas de Pginas (Page Tables)
16 bits 4 bits nmero da pgina ; 12 bits offset
MMU troca 4 bits iniciais (endereo virtual) por outros bits (nmero da moldura de pgina) offset apenas copiado
tabela de pginas como uma funo f(n da pgina) = n da moldura de pgina
Cada processo tem associado ao seu espao de endereamento uma tabela de pginas
A tabela de pginas de cada processo tem que estar carregada em memria
Bit de presena: Indica se a pgina se encontra carregada na memria principal ou no
Assuntos importantes1. a tabela de pginas pode ser extremamente grande
2. o mapeamento tem de ocorrer com muita rapidez problema: guardar tabelas de pginas enormes na memria soluo: TP Multi-Nvel
Tabelas de pginas multi-nvel Guardam-se na memria uma tabela principal (directoria) e as tabelas dos restantes nveis,
que contm os descritores das pginas que esto a ser utilizadas pelo processo Estas tabelas tm uma dimenso muito mais pequena do que se fosse utilizado um esquema
com um s nvel
Estrutura de uma entrada de tabela de pginas N da pgina: indica n da moldura de pgina (principal razo da existncia de TPs) Bit de presena: indica se a pgina se encontra carregada na memria principal ou no Proteco: Bits de proteco da pgina (ex: read-only, rwx)
Modificao: bit k indica se a pgina foi modificada (dirty bit) Referncia: bit k indica se a pgina foi usada (grau de utilizao) Caching: bit k activa/desactiva caching
TLBs Translation Lookaside Buffers converso end.virt. para end.fs. consultar page table na memria acessos extra para minorar desperdcio de tempo feito por estes acessos MMUs contm geralmente
uma espcie de cache para pginas, designada TLB TLB mantm um conjunto de descritores das pginas acedidas mais recentemente cada processo tende a utilizar mais exaustivamente um pequeno conjunto de pginas quando uma pgina descartada da memria principal, tambm libertada a entrada
correspondente na TLB
-
7/31/2019 Resumo-SistemasOperativos-JoaoMarques
20/38
Resumo Sistemas Operativos 20/38 Joo Marques
faltas de TLB geridas pelo HW da MMU ou por SW (pelo SO)
Tabelas de pginas invertidas Uma entrada para cada pgina de memria
Cada entrada contm: o endereo virtual da pgina
o endereo fsico
o processo que dono da pgina Vantagem: diminui a memria necessria para armazenar a tabela Desvantagem: pode aumentar o tempo necessrio para procurar na tabela
3.4. Algoritmos de Substituio de Pginas (Page Replacement Algorithms)1) O algoritmo ideal
sempre que for necessria uma substituio de pginas, a que deveria sair ser aquela que sser utilizada daqui a mais tempo impossvel SOs no conseguem prever o futuro
aproximao tentar descartar as pginas que so pouco utilizadas, ou que j no soutilizadas h muito tempo, na esperana de que no venham a ser utilizadas brevemente
2) Algoritmo Not Recently Used (NRU)
quando ocorre uma page fault, este algoritmo classifica as pginas carregadas em memria
Utilizao de dois bits: R (Referenced): indica k a pgina foi acedida desde a ltima interrupo do relgio M (Modified): indica k a pgina foi modificada desde que foi carregada na memria principal
Estabelecem-se 4 classes diferentes, de acordo com R e M Classe 0: R=0 e M=0 Classe 1: R=0 e M=1 Classe 2: R=1 e M=0
Classe 3: R=1 e M=1 A pgina a substituir ser uma pgina aleatria pertencente classe mais baixa encontrada
3) Algoritmo First-In, First-Out (FIFO)
A pgina a substituir a que se encontra carregada h mais tempo na memria principal
fcil implementao lista com ndices de pginas a + antiga no topo e a + recente no fim
medida que as pginas vo sendo carregadas na memria, os seus ndices vo tambm sendoacrescentados ao fim da lista mantida pelo algoritmo
Problema: a pgina que foi carregada h mais tempo pode estar a ser utilizada4) Algoritmo da Segunda Chance (Second Chance)
Algoritmo baseado no FIFO, mas que utiliza o bit de referncia (R)
Antes de uma pgina ser descartada, analisa-se o bit R e, caso este se encontre a 1, ento
posto a 0, mas a pgina no descartada, analisando-se a prxima. A pgina a descartar ser a primeira que for encontrada com R=0
5) Algoritmo do Relgio
Semelhante ao algoritmo da segunda chance, mas a lista de pginas circular
Deste modo ganha-se eficincia pois deixa de ser necessrio retirar estruturas do topo da listapara as inserir no fim
6) Algoritmo Least Recently Used (LRU)
A pgina a substituir ser a que no acedida h mais tempo
Para tal, guarda-se para cada pgina uma marca temporal com o tempo do ltimo acesso
Teoricamente este algoritmo o que efectua a melhor escolha na pgina a substituir
Bom desempenho a um custo elevado
-
7/31/2019 Resumo-SistemasOperativos-JoaoMarques
21/38
Resumo Sistemas Operativos 21/38 Joo Marques
Na prtica, este algoritmo obriga existncia de um temporizador extra (pois as interrupes dorelgio so demasiado lentas)
Para alm disso, exige bastante espao para guardar as marcas temporais (e.g. 64 bits) sempre
que uma pgina acedida ex: N molduras de pginas matriz de ordem N
7) Algoritmo Not Frequently Used (NFU)
simulao do LRU em SW
Associado um contador a cada pgina carregada em memria, inicializado a zero quando apgina carregada
Sempre que ocorre uma interrupo do relgio, e para cada pgina, soma-se o valor do bit R aocontador
Problema: uma pgina muito acedida no incio, mas que depois deixe de ser acedida fica comum valor elevado no contador, pelo que poder persistir na memria
8) Algoritmo Aging
Variante do algoritmo NFU, que tenta resolver o problema descrito anteriormente Em vez de somar o bit R ao valor do contador, desloca-se o seu contedo para a direita com
entrada srie do bit R
Deste modo consegue-se que uma pgina muito acedida no passado, mas que j no est a serutilizada, fique com o valor do contador a zero aps algumas interrupes do relgio
Algoritmo com melhor relao custo/desempenho9) Algoritmo Working Set
Paginao a pedido (Demand paging): As pginas de um processo vo sendo carregadas medida que ocorrem page faults esta abordagem faz com que ocorram page faultsinicialmente, at ser estabelecido o Working Set do processo
Quando um grupo de processos comea a gerar page faults a um ritmo muito elevado diz-se que
se entrou numa fase de thrashing esta situao deve ser evitada a todo o custo O Working Set o conjunto de pginas utilizadas nos K ltimos acessos de memria
Se todo o Working Set de um processo est carregado em memria no ocorrem page faults
Tirando partido deste facto, existem algoritmos de substituio de pginas que funcionam tendoem conta o working set de um processo
A ideia ser substituir pginas que no se encontrem dentro do working set de um processo
qdo ocorre uma comutao de processos prepaging antes do processo correr, o SO carregapara a memria o Working Set
tempo virtual corrente (current virtual time) tempo k 1 processo usou desde k foi iniciado
Algoritmo encontrar pgina k no est no WS e retir-la10)Algoritmo WSClock
mistura entre Working Set e Relgio
3.5. Questes de Concepo de Sistemas de Paginao1) Polticas de alocao local vs global
exemplo: 3 processos A, B, C falta de pgina em A 2 hipteses:
trocar pgina do prprio processo (A)alg. de substituio de pginas local
trocar pgina de qquer processo (A,B,C)alg. de substituio de pginas global
alg. globais funcionam melhor qdo o Working Set pode variar
alocar um n de pginas proporcionais a cada processo no entanto, deve dar-se um mnimode pginas a cada processo processos pequenos tb devem ter hiptese de funcionar
gesto da alocao alg. PFF indica qdo ou alocao de pginas de um processo
-
7/31/2019 Resumo-SistemasOperativos-JoaoMarques
22/38
Resumo Sistemas Operativos 22/38 Joo Marques
atribuio de pginas faltas de pgina manter equilbrio entre estes 2 conceitos
por vezes, escolha alg. local/global independente do prprio alg. escolhido (FIFO, LRU, etc)
alg. do Working Set (ou WSClock) s faz sentido se for local
2) Controlo de Carga (Load Control) Problema: qdo um processo precisa de + mem. mas nenhum outro precisa de mem.
tendncia para faltas de pgina thrashing
Soluo: parar um (ou +) processo(s) troc-lo (swap) para o disco libertar mem.
escolher processo a parar de modo a k o processador no fique parado I/O-bound
mesmo com o Paging, o Swapping ainda necessrio3) Tamanho das Pginas (Page Size)
Argumentos a favor de pginas pequenas: programa pequeno desperdio de espao na pgina fragmentao interna pginas grandes grandes partes do programa em memria, mas no utilizadas
Argumentos a favor de pginas grandes:
pginas pequenas muitas pginas tabela de pginas enorme overhead: processamento ou armazenamento em excesso
s =tamanho mdio dos processos em bytes
p = tamanho das pginas
e = entrada na tabela de pginas
=
+
derivada(p):
+
iguala-se a 0 valor ptimo: = 2
: s=1MB, e=8bytes p=4KB4) Instrues Separadas e Espaos de Dados (Separate Instruction and Data Spaces)
maioria dos computadores tem espao de endereamento suficiente para programa e dados
problema: esp.ender. pequeno demais
soluo: esp.ender. separados para instrues (texto do programa) e dados I-space & D-space
paginao indepenente cada uma tem a sua tabela de pginas
este mtodo no traz complicaes e duplica o esp.ender. disponvel5) Pginas Partilhadas (Shared Pages)
partilhar programas + eficiente partilhar as pginas
I/D-spaces facilita partilha processos partilham a mesma TP para o seu I-space cada umtem TP diferentes para o seu D-space
ex: A,B partilham progr. A termina MAS programa no deve ser fechado pk B ainda o usa
dados podem ser partilhados em READ-ONLY6) Poltica de Limpeza (Cleaning Policy)
daemon de paginao: processo de fundo k verifica o estado da memria periodicamente eescreve as pginas sujas (dirty) no disco
gravar pginas modificadas na ltima hora pode ser pouco eficiente paging daemon acelera
paging daemon tenta manter um certo nmero de molduras de pgina livres
usa lista circular com apontador (tipo Relgio)7) Interface da Memria Virtual
programadores podem ter controlo sobre a memria
pode permitir k 2 processos partilhem a msm pgina do desempenho
memoria partilhada distribuda partilha de pginas por rede (vrias mquinas)8) Mapeamento de Ficheiros de Memria (Memory-Mapped Files)
novas chamadas ao sistemamap & unmap
-
7/31/2019 Resumo-SistemasOperativos-JoaoMarques
23/38
Resumo Sistemas Operativos 23/38 Joo Marques
mapear ficheiros na memria
Vantagem: elimina necessidade de I/O programao + fcil
Desvantagens:
sistema desconhece o comprimento do ficheiro de output ficheiro mapeado por processo A e aberto para leitura pelo processo B modificaes
feitas por A no so vistas por B enquanto o ficheiro no re-escrito no disco
ficheiro pode ser maior k esp.ender.virtual possvel soluo: mapear apenas parte do ficheiro(no-satisfatrio)
Tema 4 SISTEMAS DE FICHEIROS
Problema: como armazenar grandes quantidades de informao e de forma permanente, numsuporte que o permita: disquete, disco, CD, etc. ?
Requisitos essenciais para o armazenamento de informao a longo-prazo: possibilidade de armazenar grandes quantidades de informao
a informao tem k ser permanente (sobreviver terminao de processos)
possibilidade de acesso por vrios processos simultneamente Soluo: sobrepor organizao fsica do meio (sectores, ...) uma organizao em peas de
informao lgica: ficheiros da responsabilidade do SO criar esta organizao lgica
4.1. Ficheiros ficheiro: mecanismo de abstraco k poupa o utilizador aos detalhes dos discos apresentando uma
forma organizada, e de fcil compreenso, para armazenar informao
1) Nomeao de Ficheiros nome forma de identificao do ficheiro; 1 aspecto visvel de utilizao de um ficheiro
case sensitive distinguir letras maisculas e minsculas UNIX: case sensitive Windows : case insensitive (razes: compatibilidade com verses anteriores e MS/DOS)
dimenso do nome: UNIX tamanho varivel (limite de 255 caracteres) MS/DOS tamanho fixo 8+3 (extenso)
extenso formal ou informalmente indica a natureza (ou contedo) do ficheiro UNIX apenas para indicar tipo de ficheiro ao utilizador ; no-atribuda pelo SO Windows extenses tm significado formal no SO
2)
Estrutura dos Ficheiros SO v ficheiros como mera sequncia de bits utilizador atribui significado flexibilidade
mxima UNIX, Windows funcionam assim
estruturao por records
organizao + lgica por key-fields rvore estruturada3) Tipos de Ficheiros
ficheiros comuns
ficheiros de texto (character special files) sequncia de caracteres ASCII, incluindo alguns caracteres especiais: linhas de texto &
carriage returns podem ser visualizados e impressos tal como so
-
7/31/2019 Resumo-SistemasOperativos-JoaoMarques
24/38
Resumo Sistemas Operativos 24/38 Joo Marques
relacionados com input/output
ficheiros binrios (block special files) contedo fsico no interpretvel como um conjunto de caracteres ASCII
tratveis apenas por programas (ou os prprios ficheiros so programas) directorias (ver 4.2. Directorias)
4) Acesso aos Ficheiros
acesso sequencial localizar lendo o ficheiro, desde o incio at posio pretendida
acesso aleatrio possibilidade de localizar uma posio (seek), com base numa chave ououtra indicao
5) Atributos dos Ficheiros
atributos caractersticas do ficheiro (alm do nome e contedo) que o SO gere, para efeitosde controlo e administrao
Alguns atributos significativos (de maior utilidade): Dono (Owner) utilizador dono / criador do ficheiro
Proteco permisses de acesso ao ficheiro Datas data de criao: outras datas de acesso / alterao Dimenso dimenso actual do ficheiro Flags extra bit de backup, bit de ficheiro oculto/temporrio, etc
6) Opreraes sobre Ficheiros
operaes chamadas ao sistema
Algumas operaes significativas: Create cria um ficheiro vazio Delete remove um ficheiro Open abre um ficheiro para determinada operao Close fecha um ficheiro depois de concludo um conjunto de operaes
Read l o contedo de um ficheiro Write escreve (altera) o contedo de um ficheiro Append acrescenta ao contedo anterior Seek posicionamento para acesso directo Get/Set attributes obter/alterar atributos Rename altera o nome de um ficheiro
4.2. Directorias directoria: estrutura utilizada para organizar ficheiros; contm referncias a outros fich./direct.1) Sistemas de Um Nvel de Directoria
uma nica directoria (mesmo com vrios utilizadores) root directory
Vantagens: simplicidade de implementao, facilidade de localizao dos ficheiros
Desvantagens: conflitos de nomes, confuso devida ao grande n de ficheiros2) Sistemas de Dois Nveis de Directoria
2 nveis root directory user directory
cada utilizador tem a sua prpria directoria
SO identifica o utilizador atravs de um Login
forma bsica cada utilizador s pode ver e acessar contedos da sua directoria
extenso pode-se acessar ficheiros de outros utilizadores (ex: open(nancy/x))3) Sistemas de Directorias Hierrquicas
queremos + organizao rvore de directorias hierarquia
pode-se criar um n arbitrrio de subdirectorias
-
7/31/2019 Resumo-SistemasOperativos-JoaoMarques
25/38
Resumo Sistemas Operativos 25/38 Joo Marques
4) Nome [Caminho] (Path Name)
nome do ficheiro absoluto/relativo
nome absoluto (absolut path name): nome nico na rvore de ficheiros; caminho desde a
directoria principal (root) at directoria onde o ficheiro se encontra nome relativo (relative path name): caminho a partir de uma directoria qualquer (corrente)
directoria de trabalho [corrente] (working/current directory): directoria na qual se est atrabalhar; usada para aceder + facilmente a certos ficheiros; elimina a necessidade de escreveros longos nomes absolutos
nome absoluto funciona sempre independentemente da directoria de trabalho
cada processo usa a sua prpria directoria de trabalho sem interferir com outros processos
entradas especiais . directoria de trabalho & .. directoria-me (parent directory)5) Operaes sobre Directorias
operaes chamadas ao sistema
Algumas operaes significativas:
Create cria uma directoria vazia (contm apenas . e ..) Delete remove uma directoria (somente se estiver vazia) Opendir abre uma directoria para determinada operao (listagem dos seus ficheiros) Closedir fecha uma directoria depois de concludo um conjunto de operaes Readdir retorna entrada seguinte numa directoria aberta Rename altera o nome de uma directoria Link tcnica k permite a apario de um ficheiro em mais k uma directoria; cria uma
entrada para um ficheiro na directoria Unlink remove a entrada (se for a nica, ficheiro removido tb)
4.3. Implementao de Sistemas de Ficheiros1) Esboo de Sistemas de Ficheiros (File System Layout) Organizao de um disco:
Master Boot Record (MBR) inicia o computador
Tabela de parties contm endereos das parties; inicia partio marcada como activa
Parties pode conter 1 ou + bloco de boot executa SO super bloco contm parmetros chave do SF (n mgico, tipo de SF, n de blocos, etc) gesto do espao livre em forma de bitmap ou lista de apontadores I-nodes contm a informao sobre os ficheiros directoria raz
ficheiros e directorias2) Implementar Ficheiros questo + importante associar blocos ao ficheiro correspondente (vice-versa)a) Alocao contgua (Contiguous Allocation)
armazenamento de cada ficheiro num conjunto de bloco contguos
Vantagens: implementao simples para cada ficheiro, basta SO saber o bloco inicial n de blocos eficiente em termos de leitura sempre bloco contguos leitura feita de 1 s vez
Desvantagem: fragmentao resultante da remoo/criao de novos ficheiros, que s podeser eliminada com compactao
usada em CD-ROMs
-
7/31/2019 Resumo-SistemasOperativos-JoaoMarques
26/38
Resumo Sistemas Operativos 26/38 Joo Marques
b) Alocao por Listas Ligadas (Linked List Allocation)
mantm-se uma lista ligada dos blocos ocupados por cada ficheiro; em cada bloco, paraalm dos dados, guarda-se tambm um apontador para o bloco seguinte do mesmo ficheiro
Vantagens: todos os blocos podem ser ocupados (a fragmentao no problemtica) ao SO basta saber a localizao do 1 bloco
Desvantagens: acesso sequencial chegar a um bloco passar pelos anteriores acesso lento tamanho real de cada bloco diminudo pelo espao ocupado pelo apontador (e j no
uma potncia de 2)c) Alocao por Listas Ligadas usando uma Tabela na Memria (LLA using a Table in Memory)
eliminar desvantagens da ALL tirar apontador do bloco e coloc-lo numa tabela namemria tabela de alocao de ficheiros FAT (File Allocation Table)
manter em memria uma tabela com uma representao da lista ligada de blocos; em cada
posio da tabela indica-se o bloco seguinte do ficheiro Vantagens:
tal como no modelo anterior, a fragmentao no problemtica cada bloco utilizado integralmente para armazenamento de dados facilita o acesso directo para obter um bloco basta percorrer a FAT (mais rpido, pois
percorre-se a memria e no o disco)
Desvantagem: dimenso da FAT pode ser demasiado granded) I-nodes
associar a cada ficheiro uma estrutura de dados contendo a localizao em disco e osatributos do ficheiro
i-node contm um nmero limitado de blocos do ficheiro para ficheiros de maior
dimenso so atribudos ao i-node outros blocos que contm tabelas com ns de bloco extra O i-node contm todas as caractersticas do ficheiro, excepto o nome que figura no (ou nos)
directrios onde o i-node includo
Vantagens: fragmentao no problemtica para aceder a um ficheiro basta ter o respectivo i-node em memria (no necessrio
dispor de toda uma tabela de alocao) facilita a partilha de ficheiros atravs de hard links
3) Implementar Directorias
para ler (read) um ficheiro, temos k abr-lo (open) 1 SO usa nome (caminho) localizaentrada da directoria esta fornece a informao sobre os blocos do ficheiro AC, ALL, I-node
directoria ficheiro especial
lista de nomes (em ASCII), a cada um dos quais se associam osrespectivos atributos e localizao em disco
Atributos e Localizao: Windows directoria contm atributos e localizao dos ficheiros UNIX directoria contm ns de i-nodes
Nomes:
Comprimento fixo (255 caracteres) estabeler limite no comprimento dos nome 255 caracteres reservados para cada nome desperdcio de espao no caso de nomes curtos
Nomes em linha (in-line)
-
7/31/2019 Resumo-SistemasOperativos-JoaoMarques
27/38
Resumo Sistemas Operativos 27/38 Joo Marques
abandonar ideia k entradas de directoria tm todas o mesmo tamanho exemplo: FE1, FA1, FN1, FE2, FA2, FN2, preenchimento para acabar linhas filler characters
mesma desvantagem k alocao contgua Nomes numa pilha [numa fila] (in a heap)
separar entrada e atributos do nome colocam-se os nomes no fim da directoria nomes todos seguidos com apontadores no seu incio Vantagens: remover uma entrada nova entrada cabe la acaba-se com os filler characters
pesquisa de nomes linear acelerada por hashing ou caching4) Ficheiros Partilhados (Shared Files) [Linking]
Ligao real (Hard link)
incluir o mesmo ficheiro em mais que uma directoria replicar em cada directoria os atributos e localizao no disco implementao simples com i-nodes basta replicar o n de i-node implementao complexa se os atributos estiverem contidos na directoria as alteraes
tm que ser replicadas em cada ligao i-node contm contador de ligaes (link counter)
Ligao simblica (Soft link [symbolic linking]) incluir numa directoria o nome de outro ficheiro (do tipo LINK) que contm o caminho para
o ficheiro original atravs do caminho acede-se entrada de directoria do ficheiro original e, por essa via, aos
seus atributos e localizao em disco
5)
Gesto de Espao de Disco (Disk Space Management)a) Dimenso do bloco (Qual ser a melhor dimenso para os blocos ?)
Eficcia de leitura: relao entre o tempo de leitura e a informao efectivamente obtida dodisco (blocos grandes) aumenta com a dimenso do bloco menor overhead de posicionamento em cada leitura menor nmero de leituras necessrias para obter os dados
Eficcia de ocupao: relao entre o espao fsico ocupado e o respectivo aproveitamentoem termos de dados (blocos pequenos) aumenta com a diminuio da dimenso do bloco diminuio do desperdcio devido ao ajuste da dimenso do ficheiro para um nmero
fixo de blocos (blocos pequenos pouco desperdcio)
compromisso blocos de 2 KBb) Controlo da lista de blocos livres estrutura de dados de controlo dos blocos de disco no
ocupados por ficheiros
Lista ligada (com o nmero de cada um dos blocos livres) Criao de um ficheiro: obter 1s blocos da lista (dimenso do fich.) e retir-los da lista Remoo de um ficheiro: acrescentar os respectivos blocos lista mtodo simples, mas disperso dos ficheiros por vrios blocos no contguos dimenso da lista poder ser bastante grande se o disco estiver pouco ocupado
Bitmap (sequncia com um nmero de bits igual ao nmero de blocos) bit a 0 significa bloco livre ; bit a 1 significa bloco ocupado
-
7/31/2019 Resumo-SistemasOperativos-JoaoMarques
28/38
Resumo Sistemas Operativos 28/38 Joo Marques
dimenso fixa e quase sempre menor que com lista (excepto disco quase cheio) facilita a procura de blocos contguos/prximos (procurar 0's contguos no bitmap)
apontadores mantidos na memria para gesto rpida de ficheiros temporrios
c) Quotas de Disco (Disk Quotas) em SOs multi-utilizador, administrador atribui a cada utilizador uma poro de blocos
tabela Open File utilizador abre ficheiro tabela contm atributos e endereos dedisco aumento no ficheiro tabela aumenta a quota do dono
tabela de quota contm dados gerais sobre a quota de um determinado utilizador soft limit: limite k pode ser excedido, mas utilizador recebe avisa para libertar espao hard limit: limite k no pode ser excedido
6) Fiabilidade dos Sistemas de Ficheiros (File System Reliability)a) Backups
Problemas essenciais: recuperao de desastre (crash, fogo, etc)
recuperao de estupidez (recycle bin) Evitam-se geralmente backups de:
Programas (pois podem-se reinstalar) Ficheiros que modelizam dispositivos I/O (ex: directoria /dev)
backup incremental apenas as alteraes desde o backup anterior (1 backup completo)
backup fsico cpia igual ao disco (bloco por bloco) Vantagens: (1) fcil de programar e de implementar; (2) rpido Desvantagens: (1) copia blocos vazios/danificados; (2) backup incremental impossvel
backup lgico inicia na directoria raz e copia uma directoria de cada vez com todos osseus ficheiros mantm-se a ordem lgica
Algoritmo de Backup (Fases ):
1. marca i-node de ficheiros modificados e marca todas as directorias2. desmarca directoria k no contm ficheiros modificados3. verifica ordem numrica dos i-nodes e faz o backup de todas as directorias marcadas4. faz o backup de todos os ficheiros marcados
Questes importantes (backup & restauro): lista dos blocos livres tem k ser reconstruida a cada restauro restaurar links evitar cpias do mesmo ficheiro
b) Consistncia de Sistemas de Ficheiros
quando ocorre um crash, pode haver inconsistncias
reincio aps crash verificao de inconsistncias e reparao (ex: fsck, scandisk) 1 contagem qtas vezes k 1 bloco est presente num ficheiro?
2 contagem qtas vezes k 1 bloco est presente na lista (bitmap) de blocos livres? 2 zrosmissing block reportado como bloco livre obter um 2 na lista de blocos livre reconstruir adequadamente a lista obter um 2 na lista de blocos em uso criar cpia do bloco
efectuar a mesma verificao para as directorias (verificar links)7) Desempenho de Sistemas de Ficheiros (File System Performance)
a) Caching
leitura de um ficheiro carregar bloco no cache leitura
manter alguns blocos no cache acesso + rpido
referncias de cache no frequentes alg. LRU modificado
Factores novos do alg. LRU modificado:
-
7/31/2019 Resumo-SistemasOperativos-JoaoMarques
29/38
Resumo Sistemas Operativos 29/38 Joo Marques
o bloco vai ser usado em breve? diviso em categorias de blocos o bloco essencial consistncia do SF? escrever bloco imediatamente no disco
UNIX chamada ao sistema update grava todos os 30s crashes afectam pouco
b) Leitura antecipada (Block Read Ahead) leitura e caching, por antecipao, de vrios blocos
vantajoso para acesso sequencial
bit de acesso (sequencial/aleatrio)c) Armazenamento contguo (Reducing Disk Arm Motion)
objectivo tentar reduzir o tempo de overhead relativo ao posicionamento no disco tentar colocar o ficheiro em blocos de disco contguos dividir disco em grupo de cilindro cada um com os seus prprios i-nodes
8) Sistemas de Ficheiros LFS (Log-Structured File Systems)
Com CPUs mais rpidas e memrias maiores caches de disco podem tambm ser grandes
nmero maior de pedidos pode ser resolvido pela cache maior parte de acessos a disco ser para escritas
LFS (Log-structured File System) organiza o disco como se fosse um log escritas so guardadas em memria (buffered) escreve periodicamente no fim do log i-nodes, blocos de dados, diretrios etc esto todos misturados ocupando um segmento abrir ficheiro localizar i-node encontrar blocos
4.4. Exemplos de Sistemas de Ficheiros1) Sistemas de Ficheiros de CD-ROM
a) Sistema de Ficheiros ISO9660 objectivo: tornar CD-ROMs legveis em todos os computadores
sem cilindros uma nica espiral contnua
todo o CD-ROM comea com 16 blocos a serem geridos pelo fabricante (bootstrap, etc)
1 bloco primary volume descriptor informao geral, identificadores, dimenso dosblocos, localizao da directoria raz, etc
Formato de uma entrada de directoria: comprimento da entrada de directoria localizao do ficheiro (bloco inicial) dimenso do ficheiro data e hora (da gravao)
flags interleaving n do CD-ROM em k o ficheiro est localizado dimenso do nome do ficheiro nome do ficheiro nome base (8) + extenso (3) limitaes MS-DOS padding System use
Trs Nveis (Three Levels) Level 1: limitao de nomes 8(+3) caracteres Level 2: aumenta comprimento a 31car., mas mesmo conjunto de caracteres Level 3: blocos no tm k ser contguos
-
7/31/2019 Resumo-SistemasOperativos-JoaoMarques
30/38
Resumo Sistemas Operativos 30/38 Joo Marques
b) Extenses Rock Ridge (UNIX)
PX bits de proteco (rwxrwxrwx)
PN permite representao de dispositivos no CD-ROM (directoria /dev)
SL ligaes simblicas k podem referir ficheiros de outro SF NM permite nomes segundo as normas UNIX
CL, PL, RE permite contornar limite de (sub)directorias (8)
TF carimbos de tempo UNIXc) Extenses Joliet (Microsoft)
1. longos nomes de ficheiros at 64 caracteres2. set de caracteres Unicode til para pases com outros alfabetos3. ultrapassar 8 nveis de directorias permite contornar limite de (sub)directorias (8)4. nomes de directorias com extenses no serve para nada!!!
2) Sistema de Ficheiros do MS-DOS
deriva do CP/M
nomes: 8+3 caracteres (upper case) n infinito de subdirectorias rvore sem ligaes (s existem no UNIX)
permite nomes absolutos & relativos e directorias de trabalho
directorias tm dimenso varivel MAS entradas de directoria tm dimenso fixa (32 bytes)
Formato de uma entrada de directoria: nome 8 caracteres (8 bytes) extenso 3 caracteres (3 bytes) atributos bits: read-only, archived, hidden,
system (1 byte) resevado inutilizado (10 bytes) hora (time)
data n do 1 bloco tamanho (size)
MS-DOS usa FAT na memria3) Sistema de Ficheiros do UNIX V7
deriva do MULTICS
hierarquia de directorias com ligaes (links)
nomes com 14 caracteres em ASCII (excepto / e 0)
entrada de directoria nome (14 bytes) + n do i-node (2 bytes)
limite de ficheiros num SF 64K
ficheiros grandes (i-node pequeno) single/double/triple indirect block(s)
Tema 5 INPUT/OUTPUT Uma das mais importantes funes do SO controlar os dispositivos perifricos
Enviar comandos aos dispositivos Receber/enviar dados Aperceber-se das interrupes Tratar erros
O SO estabelece uma interface entre os dispositivos e o resto do sistema
Block size FAT-12 FAT-16 FAT-32
0.5 KB 2 MB
1 KB 4 MB
2 KB 3 MB 128 MB
4 KB 16 MB 256 MB 1 TB
8 KB 512 MB 2 TB
16 KB 1024 MB 2 TB
32 KB 2048 MB 2 TB
Tamanhos mximos de parties paradimenses de blocos diferentes.
-
7/31/2019 Resumo-SistemasOperativos-JoaoMarques
31/38
Resumo Sistemas Operativos 31/38 Joo Marques
5.1. Prncipios do Hardware de I/O1) Dispositivos I/O
Dispositivos orientados ao bloco (block devices):
Guardam a informao em blocos de dimenso fixa, cada um com o seu endereo O acesso aos blocos feito de forma independente uns dos outros Exemplos: discos-rgidos, CD-ROMs
Dispositvos orientados ao caracter (character devices): Aceita ou entrega um conjunto contnuo de bytes (stream) Exemplos: teclados, ratos, modems, impressoras
Outros dispsitivos: Relgio do sistema: apenas envia uma interrupo periodicamente
2) Controladores de Dispositivos
Interface (em HW) que o dispositivo apresenta ao resto do sistema
interface entre o exterior de um dispositivo e o seu funcionamento interno (def. Wikipedia)
O controlador geralmente constitudo por: Conjunto de registos programveis Conjunto de registos para dados (escrita/leitura) Lgica de controlo
No fundo um micro-processador, com ligaes aos barramentos (buses) do sistema3) Memory-Mapped I/O
O acesso aos dispositivos pode ser feito de duas formas:
Portos I/O a cada registo dos diversos controladores atribudo um nmero designado Porto I/O o acesso feito utilizando instrues em linguagem de baixo nvel (habitualmente
assembly: IN & OUT)
ex: IN copia contedo do registo do controlador de perifrico para um registo da CPU espao de I/O e de memria separados
Memory-mapped I/O deste modo o acesso aos dispositivos feito como se tratasse de um acesso memria cada registo do controlador mapeado para uma posio de memria uma escrita ou leitura nessa posio de memria corresponde na realidade a uma
escrita/leitura no registo do controlador espao de I/O e de memria nico
Vantagens do Memory-mapped I/O:1. registos de controlo so apenas variveis driver programado em C (sem assembly)2. mecanismos de proteco desnecessrios pk dispositivos so colocados cada um na sua
pgina e assim no interferem uns com os outros manter apenas cuidado de no colocarespao de endereamento do registo de controlo num espao de endereamento virtual3. instrues k referenciam memria tambm podem referenciar registos de controlo
Desvantagens do Memory-mapped I/O:1. caching pode tornar-se num desastre soluo: HW deve poder desligar caching2. todas as referncias memria tm k ser verificadas (memria ou I/O) soluo: durante o
boot, identificar as regies k NO so de memria e depois usar um filtro no chip PCI4) Acesso Directo Memria (Direct Memory Access (DMA))
DMA permite que os dispositivos transfiram dados sem sobrecarregar a CPU
-
7/31/2019 Resumo-SistemasOperativos-JoaoMarques
32/38
Resumo Sistemas Operativos 32/38 Joo Marques
leitura de disco sem DMA: controlador l blocos do disco e coloca-os no buffer interno controlador faz computao e verificao dos blocos controlador causa interrupo SO lblocos do buffer para a memria
leitura de disco com DMA: CPU programa DMA (registos) CPU ordena controlador do discoa fazer transf./comp./verif. dos blocos (buffer) DMA d incio transferncia controladortransfere do buffer para a memria controlador envia aviso (de fim) a DMA (loop: DMAverifica contador de bytes at este estar a 0) DMA interrompe CPU indicando o fim datransferncia CPU no necessita de transferir nada, j est tudo ne memria
Modos de operao dos buses: word-at-a-time mode: controlador DMA pede e recebe bus para transferir uma palavra,
CPU esperacycle stealing desvantagem: demasiados pedidos atrasam CPU block mode: aquisio do bus para transferir vrias palavras burst mode vantagem:
transfere + dados de uma vez desvantagem: pode parar CPU por muito tempo
Razes de existncia do buffer interno:
controlador faz verificao antes da transferncia para a memria controlador faz o trabalho ao seu ritmo, sem tempos crticos
Argumento contra DMA: por vezes a CPU to rpida k faz o trabalho + depressa do k qdoespera pelo controlador DMA
5) Interrupes [Reviso] (Interruptions Revisited)
dispositivo I/O acaba o seu trabalho causa interrupo enviando um sinal pelo seu bus atao controlador de interrupes se no houver interrupes pendentes, controlador processaa interrupo controlador de interrupes coloca n nas linhas de endereo para identificar odispositivo I/O k requer ateno n usado como indicador na tabela vector de interrupespara obter um novo program counter interrupo notificada (pode fazer-se outra)
Onde/Como guardar a imformao dos processos interrompidos?
em registos internos do SO atrasos; possvel perda de dados na pilha (stack) qual pilha?; pode calhar num fim de pgina e gerar uma falta de pgina na pilha do ncleo MN, invalidar MMU e TLB, recarreg-los atrasa CPU
Outros problemas: CPUs so pipelined e superscalar vrias informaes so interrompidas no se
sabe onde continuar aps a interrupo precise interrupt: interrupo k deixa a mquina num estado bem definido Propriedades dos precise interrupts:
1. program counter guardado num local conhecido2. todas as instrues antes da k est apontada esto executadas3. nenhuma instruo depois da k est apontada est executada4. o estado de execuo de uma instruo apontada conhecido
uma interrupo k no cumpre ests requisitos um imprecise interrupt
5.2. Princpios do Software de I/O1) Objectivos do Software de I/O
Conceito chave na concepo de SW de I/O Independncia do Dispositivo: possibilidade deusar o mesmo programa para vrios (ou mesmo todos) os dispositivos I/O
Nomeao uniforme: regras de nomeao de ficheiros independentes do dispositivo
Mount/unmount: colocar dispositivo (floppy-disk) na hierarquia do SF
Tratamento de erros: deve ser feito ao nvel de HW (controlador), se possvel
Transferncias sncronas/assncronas: maioria assncronas (interrupes)
-
7/31/2019 Resumo-SistemasOperativos-JoaoMarques
33/38
Resumo Sistemas Operativos 33/38 Joo Marques
Buffering
Dispositivos partilhveis/dedicados
Existem basicamente trs formas diferentes de efectuar operaes de I/O:
I/O programada I/O por interrupes I/O por DMA
2) I/O Programada
CPU efectua todo o trabalho de I/O, vai enviando/recebendo os dados dos dispositivos
aps despachar cada dado, verifica se o perifrico est pronto para continuar (espera activa)
Desvantagem: processador passa maior parte do tempo em espera activa3) I/O por Interrupes
Com este modelo, o processador envia/recebe dados do perifrico, mas depois pode-se dedicara outro processo
Entretanto quando o perifrico est pronto para continuar, interrompe o processador
Aps a interrupo o processador envia/recebe mais dados e assim sucessivamente at aoperao de I/O estar concluda
Vantagem: Maior rendimento o processador pode-se ocupar de outros processos, enquantono chega uma interrupo
Desvantagem: As interrupes ocorrem com demasiada frequncia4) I/O por DMA
Semelhante a I/O programada, mas o controlador DMA substitui o processador
O processador limita-se a dar as instrues necessrias ao controlador de DMA para iniciar atransferncia de dados
Quando o controlador termina a transferncia de dados, notifica o processador atravs de umainterrupo
Vantagem: Uma s interrupo aps toda a operao de I/O terminar Desvantagem (s em alguns casos): Este esquema pode no funcionar se o perifrico for
demasiado rpido em relao ao controlador de DMA
5.3. Camadas de Software de I/O (I/O Software Layers) O modelo de I/O para um sistema operativo, pode ser
descrito por vrias camadas funcionais1) Tratamento de Interrupes (Interrupt Handlers)
Quando ocorre uma interrupo, o SO tem diversastarefas a efectuar:1. Salvaguardar o contedo dos registos do
processador2. Estabelecer um contexto para o procedimento de tratamento da interrupo (ISP)3. Enviar sinal de notificao ao controlador de interrupes (ou reactiv-las, se no existir
controlador)4. Executar o procedimento de tratamento da interrupo (ISP)5. Escolher um novo processo para correr
2) Drivers dos Dispositivos (Device Drivers)
Cdigo que permite o controlo de um dado dispositivo (contm o cdigo para programao docontrolador do dispositivo correspondente)
Geralmente o fabricante do dispositivo fornece tambm o driver do mesmo
drivers correrem em modo ncleo (modelo mais fcil de implementar)
-
7/31/2019 Resumo-SistemasOperativos-JoaoMarques
34/38
Resumo Sistemas Operativos 34/38 Joo Marques
drivers situados no fundo do SO por baixo de todo o resto
SO tem k estar preparado para aceitar drivers interface dedicada aos dispositivos orientadosaos blocos & outra interface para disp.o.aos caracteres cada uma com os seus procedimentos
Em tempos idos, o cdigo de especfico para controlo de cada perifrico era