Resumo-SistemasOperativos-JoaoMarques

download Resumo-SistemasOperativos-JoaoMarques

of 38

Transcript of Resumo-SistemasOperativos-JoaoMarques

  • 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