sistemas operacionais 1: resumo

Upload: ricardo-jurczyk-pinheiro

Post on 30-May-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/14/2019 Sistemas Operacionais 1: Resumo

    1/25

    Sistemas Operacionais 1 - Resumo

    Prof. Ricardo Pinheiro

    10/03/2009

  • 8/14/2019 Sistemas Operacionais 1: Resumo

    2/25

    Sumrio

    1 Introduo 3

    1.1 O que um Sistema Operacional (SO)? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.1.1 Funes: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    1.2 Mquina de Nveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.3 Tipos de Sistemas Operacionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    1.3.1 Sistemas Monotarefa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.3.2 Sistemas Multitarefa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    1.3.2.1 Lote ou Batch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.3.2.2 Tempo Compartilhado (Time-Share) . . . . . . . . . . . . . . . . . . . . . 51.3.2.3 Tempo Real (Real-Time) . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    1.3.3 Multiplas UCPs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.3.3.1 Multiprocessadores, ou sistemas fortemente acoplados . . . . . . . . . . . 61.3.3.2 Multicomputadores, ou sistemas fracamente acoplados. . . . . . . . . . . . 7

    2 Concorrncia 8

    2.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

    2.2 Interrupes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.3 Excees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.4 Controladoras de E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    2.4.1 No incio... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.4.2 E/S Controlada por Programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.4.3 Polling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.4.4 E/S Controlada por Interrupo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.4.5 DMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    2.4.5.1 Canal DMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.5 Buffering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.6 Spooling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

    2.7 Reentrncia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.8 Proteo do Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

    3 Estrutura do sistema operacional 13

    3.1 Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.2 Bibliotecas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

    3.2.1 Chamadas do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.3 Utilitrios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.4 Modos de acesso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

    1

  • 8/14/2019 Sistemas Operacionais 1: Resumo

    3/25

    SUMRIO 2

    3.5 Tipos de kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.5.1 Monoltico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.5.2 Camadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.5.3 Mquina Virtual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.5.4 Microkernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    4 Processos e threads 184.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184.2 Partes do processo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184.3 Bloco de controle do processo (PCB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194.4 Estados do processo e mudanas de estado . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

    4.4.1 Mudanas de estado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194.5 Criao e eliminao de processos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204.6 Concorrncia dentro de uma aplicao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204.7 Tipos de processo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204.8 Sinais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204.9 Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    4.9.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214.9.2 Ambientes monothread e multithread . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    4.9.2.1 Monothread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214.9.2.2 Multithread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

    4.9.3 Formas de implementao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224.9.3.1 Threads em Modo Usurio (TMU) . . . . . . . . . . . . . . . . . . . . . . 224.9.3.2 Threads em Modo Kernel (TMK) . . . . . . . . . . . . . . . . . . . . . . . 224.9.3.3 Threads em Modo Hbrido (TMH) . . . . . . . . . . . . . . . . . . . . . . 234.9.3.4 Scheduler activations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

    5 Sincronizao entre processos 24

  • 8/14/2019 Sistemas Operacionais 1: Resumo

    4/25

    Captulo 1Introduo

    1.1 O que um Sistema Operacional (SO)?

    Programa.

    Conjunto de rotinas.

    Executado de forma no-seqencial.

    1.1.1 Funes:

    1. Interao homem-mquina.

    2. Gerncia de recursos.

    3. Administrao de usurios da mquina (usurios = programas, pessoas).

    1.1.2 Objetivos

    1. Compartilhar os recursos de forma organizada e protegida.

    2. Facilitar o acesso aos recursos.

    OBS: Recursos UCP, memria, HD ....

    1.2 Mquina de Nveis

    Computador hardware e software como uma coisa s para o usurio.

    6 nveis:

    1. So independentes entre si.

    2. A passagem por cada uma obrigatria.

    3. H uma interface entre as camadas.

    3

  • 8/14/2019 Sistemas Operacionais 1: Resumo

    5/25

    CAPTULO 1. INTRODUO 4

    So eles:Aplicaes

    Linguagem de MontagemSistema Operacional

    Linguagem de mquinaMicroprogramao

    Hardware (Lgica Digital)

    1.3 Tipos de Sistemas Operacionais

    Tipos de SO Subtipos

    Monotarefa ou Monoprogramvel Multitarefa ou Multiprogramvel Batch, ou em lote; Tempo Compartilhado; Tempo Real

    Mltiplas UCPs Sistemas fortemente e fracamente acoplados

    Diferem quanto :

    1. Aplicao

    2. Hardware empregado

    3. Estrutura interna complexidade

    Desejvel:

    1. Escalvel

    2. Rpido

    3. Flexvel

    4. Seguro

    5. Tolerante a Falhas

    6. Robusto

    1.3.1 Sistemas Monotarefa

    Um nico programa em execuo.

    Todos os recursos dedicados a esse programa - desperdcio

    Estrutura simples

    Ex: MS-DOS, PALM OS

  • 8/14/2019 Sistemas Operacionais 1: Resumo

    6/25

    CAPTULO 1. INTRODUO 5

    1.3.2 Sistemas Multitarefa

    Vrios programas em execuo.

    Compartilhamento e gerncia dos recursos.

    Melhor aproveitamento.

    Estrutura complexa.

    Alguns so multiusurio.

    1.3.2.1 Lote ou Batch

    1 SO multitarefa

    fila de submisso de tarefas

    tarefas no interativas

    Sada em impressora ou disco

    Podem ser eficientes, como tambm podem ter tempos de resposta longos

    No so mais usados

    1.3.2.2 Tempo Compartilhado (Time-Share)

    Tipo mais comum.

    Conceito de fatia de tempo

    Cada tarefa fica em execuo at o tempo acabar, dando lugar a outra

    Tarefas interativas

    Ex: UNIX, WINDOWS

    1.3.2.3 Tempo Real (Real-Time)

    Semelhante ao sistema time-share, mas no so iguais.

    Tempo de resposta dentro de intervalos rgidos.

    Conceito de prioridadetarefa em execuo enquanto no houver outro de mais prioridade do que ele

    Prioridade definida pela aplicao.

    Uso em sistemas de misso critica e controle de processos: refinarias, siderrgicas, trafego areo.

  • 8/14/2019 Sistemas Operacionais 1: Resumo

    7/25

    CAPTULO 1. INTRODUO 6

    1.3.3 Multiplas UCPs

    Processamento paralelo

    Conceitos:

    1. escalabilidade

    2. disponibilidade

    3. balanceamento de carga

    tendncia atual

    Problemas:

    1. Necessidade de desempenho

    2. Problemas mais caros computacionalmente.

    3. Lei de Moore limite fsico.

    Soluo:

    1. uso de arquiteturas com mais de uma UCP

    2. software que tire proveito e escalone entre as UCPs presentes

    Caracteristicas desejveis:

    1. escalabilidade alta

    2. disponibilidade alta

    3. balanceamento de carga justo

    4. transparncia

    5. imagem nica do sistema

    1.3.3.1 Multiprocessadores, ou sistemas fortemente acoplados

    Memria nica.

    Tudo gernciado por um nico SO.

    Subdividido em

    SMP - Arquitetura simtrica.

    NUMA - Acesso No-Uniforme a Memria.

    Custo de produo mais elevado.

  • 8/14/2019 Sistemas Operacionais 1: Resumo

    8/25

    CAPTULO 1. INTRODUO 7

    1.3.3.2 Multicomputadores, ou sistemas fracamente acoplados.

    Memria espalhada

    Um nico SO ou vrios

    Cada membro do sistema esta conectado aos outros por um link de dados

    Custo de produo mais baixo.

    Tendncia atual

  • 8/14/2019 Sistemas Operacionais 1: Resumo

    9/25

    Captulo 2Concorrncia

    2.1 Introduo

    Computador - seu uso caro computacionalmente

    Objetivo: minimizar o desperdcio (tempo que a UCP fica parada)

    Momentos de desperdcio:

    Frequncia da UCP maior do que a frequncia da memria

    Velocidade da UCP muito maior do que a velocidade de E/S.

    Baixo uso da UCP em si.

    Soluo: Manter a UCP o mais ocupada possvel, executando instrues de forma concorrente.

    Exemplo: Programa pega 100 registros, ordena e grava o resultado:

    Operao Uso TempoLer 100 registros: E/S 0,04 s

    Ordenar: UCP 0,01 sGravar o resultado: E/S 0,05 s

    Total: 0,10 s.Total de uso da UCP: 0,010,10 s= 0,1= 10%.

    Concorrncia - conjunto de tcnicas que permite a UCP passar mais tempo ocupada desempenhando maistarefas por instante de tempo (throughput).

    Abaixo, algumas tcnicas de concorrncia.

    2.2 Interrupes

    Durante a execuo, eventos inesperados podem ocorrerDesvio forado na execuo - interrupo.

    Caractersticas:

    Evento assncrono.

    8

  • 8/14/2019 Sistemas Operacionais 1: Resumo

    10/25

    CAPTULO 2. CONCORRNCIA 9

    Evento externo ao programa.

    Evento gerado por software ou hardware.

    A interrupo o fundamento bsico de concorrncia, usado para a sincronizao das rotinas do S. O.,programas, etc.

    Arquitetura IBM-PC: 16 interrupes de hardware, divididas entre 2 controladoras de interrupo (in-terligadas em cascata):

    Exemplo: IRQ1 - relgio (timer); IRQ3 - porta serial 1; IRQ7 - porta paralela; IRQ13 - IDE 1; etc.

    H a necessidade de termos mecanismos apropriados para cada tipo de interrupo.

    Como so tratadas:

    Rotina de tratamento de interrupo

    Vetor de interrupo

    Como so assncronos, podem ocorrer vrias vezes, o que atrapalha a execuo do programa. Por isso,temos 2 tipos de interrupes:

    Mascarveis podem ser ignoradas.

    No-mascarveis no podem ser ignoradas.

    Controlador de pedidos de interrupo - Hardware que gerencia as interrupes.

    2.3 Excees

    Parecidos com as interrupes, mas diferem nos quesitos:

    Evento interno ao programa.

    Evento sncrono.

    Tratamento todo via software.

    Exemplo: Diviso por zero, buffer overflow, stack overflow, etc.

    Tratamento feito pelo desenvolvedor, ou pelo hardware (em alguns casos).

    Segurana:

    Falhas em programas geram excees.

    Programao segura.

  • 8/14/2019 Sistemas Operacionais 1: Resumo

    11/25

    CAPTULO 2. CONCORRNCIA 10

    2.4 Controladoras de E/S

    2.4.1 No incio...

    UCP fala diretamente com os dispositivos de E/S.

    Problema: E/S muito mais lento do que a memria ou a UCP.

    Introduo do controlador (ou controladora) de E/S:

    Gerncia do acesso aos dispositivos de E/S.

    Tira da UCP o trabalho de cuidar dos dispositivos.

    Mais eficiente do que a UCP fazer o controle.

    Problema ainda existea transferncia de dados entre a memria e dispositivo de E/S feita pela UCP.

    Interferncia da UCP.

    Abaixo, algumas tcnicas empregadas.

    2.4.2 E/S Controlada por Programa

    UCP envia a requisio e move os dados entre a memria e a controladora, aguardando o trmino daoperao.

    UCP fica presa, aguardando o trmino da operao - nada eficiente.

    2.4.3 Polling

    UCP envia a requisio, move os dados e liberada.

    De tempos em tempos, testa para ver se a operao foi concluda.

    2.4.4 E/S Controlada por Interrupo

    UCP envia a requisio, move os dados, e liberada.

    Quando a operao for concluda, a controladora gera uma interrupo, avisando UCP o trmino daoperao.

    Muito eficiente, mas ainda requer a interferncia direta da UCP, fazendo a transferncia de dados.

    2.4.5 DMA

    Acesso direto a memria

    Controladora fala direto com a memria, sem passar pela UCP - apenas no incio e no fim da transfern-cia.

    A UCP repassa controladora a posio inicial da memria a ser lida/escrita, e liberada.

  • 8/14/2019 Sistemas Operacionais 1: Resumo

    12/25

    CAPTULO 2. CONCORRNCIA 11

    2.4.5.1 Canal DMA

    Extenso do conceito.

    Diversas vias ligando as controladoras da mquina memria.

    Na arquitetura PC h 8 canais

    Chance de uso de buffers para aumentar ainda mais o desempenho.

    2.5 Buffering

    Uso de uma rea na memria principal, o buffer.

    Velocidade da UCP muito maior do que a velocidade de E/S.

    Objetivo: acelerar o acesso aos dispositivos de E/S (leitura e gravao).

    Manter UCP e E/S ocupados na maior parte do tempo.

    Registro como unidade de transferncia.

    2.6 Spooling

    Fila de submisso de tarefas - inicialmente em fitas magnticas.

    Arquivo de spool - usado inicialmente em SOs do tipo batch.

    Fila: 1 a entrar , 1 a sair (FIFO).

    Seqencial - uso de discos com acesso direto spooling mais eficiente. No-sequencial - arquivo no disco.

    Uso no gerenciamento de impresso hoje em dia.

    2.7 Reentrncia

    Mais comum em sistemas multiusurio.

    Vrios usurios usando os mesmos programas.

    Problema: Vrias cpias do mesmo programa na memriadesperdcio.

    Reentrncia: capacidade do cdigo-fonte do programa ser executado e compartilhado entre os usuriosdo sistema.

    Cdigo executvel = cdigo reentrante.

    O cdigo deve ter compilado com essa opo.

    Uso mais eficiente da memria e aumento do desempenho do sistema.

  • 8/14/2019 Sistemas Operacionais 1: Resumo

    13/25

    CAPTULO 2. CONCORRNCIA 12

    2.8 Proteo do Sistema

    Sistemas mais novos - mais complexos.

    Necessidade de aumentar a segurana

    preciso garantir a confiabilidade e integridade de programas e dados

    Situaes em que mecanismos de proteo so necessrios:

    1. reas reservadas para cada programa e seus dados - evitar a sobreposio dessas reas.

    2. comunicao entre programas de forma sincronizada.

    3. Compartilhamento de arquivos no disco

    4. Evitar monoplios da UCP.

    5. Contornar excees.

    O sistema operacional deve evitar esses problemas com mecanismos de controle.

  • 8/14/2019 Sistemas Operacionais 1: Resumo

    14/25

    Captulo 3Estrutura do sistema operacional

    Um sistema operacional composto de trs partes:

    1. Kernel.

    2. Bibliotecas.

    3. Utilitrios.

    3.1 Kernel

    ncleo do sistema.

    Parte central do sistema operacional.

    oferecem servios aos usurios.

    execuo no-sequencial.

    Principais funes:

    1. gerncia de processos e threads.

    2. gerncia de memria.

    3. gerncia de UCP.

    4. gerncia de dispositivos de E/S.

    5. tratamento de interrupes.

    6. tratamento de excees.7. suporte a redes.

    8. segurana.

    9. contabilidade e auditoria do sistema.

    Tipos de kernel: como ele fala com o hardware e software, sua organizao interna varia de projeto paraprojeto.

    Ideal que seja pequeno, rpido, estvel e seguro.

    13

  • 8/14/2019 Sistemas Operacionais 1: Resumo

    15/25

    CAPTULO 3. ESTRUTURA DO SISTEMA OPERACIONAL 14

    3.2 Bibliotecas

    Conjunto de rotinas usadas por programas.

    Fornecem servios para os programas.

    Contm as chamadaa ao sistema.

    3.2.1 Chamadas do sistema

    Partes integrantes das bibliotecas.

    Meio organizado e padronizado para acesso ao kernel.

    Forma como o kernel pode ser acessado.

    Esconde a complexidade do acesso para o programador.

    ProgramaSystem CallsKernelHardware

    Nomes diferentes para a mesma coisa:

    1. Windows: APIs

    2. Open VMS: System Services

    3. UNIX: System Calls

    OBS: No Unix, o que determina se um sistema padro UNIX ou no se ele segue a especificao dasSystem Calls, criada pelo comit POSIX.

    3.3 Utilitrios

    Programas que auxiliam o funcionamento do sistema operacional.Exemplos: Compiladores, compactadores, ferramentas de acesso ao disco, etc.

    3.4 Modos de acesso

    A UCP tem instrues:

    1. privilegiadas - tem acesso a todos os recursos, e mal-usadas, podem comprometer o funcionamentodo sistema, gerando instabilidade.

    2. no-privilegiadas - no comprometem a estabilidade do sistema operacional.

    Modos de acesso - o que so:

    1. Soluo implementada em hardware, pela UCP.

    2. Acesso ou no instrues privilegiadas.

    3. Informao de qual modo de acesso est salvo em um registrador de estado PSW.

  • 8/14/2019 Sistemas Operacionais 1: Resumo

    16/25

    CAPTULO 3. ESTRUTURA DO SISTEMA OPERACIONAL 15

    4. Hoje em dia, os sistemas so montados de forma que o kernel o nico programa que pode estarsendo executado no modo privilegiado.

    Chaveamento de modos, ou mudana de contexto:

    1. Mudana entre os estados do processador, do modo privilegiado para o no-privilegiado, e vice-

    versa.2. Custa (pouco) tempo UCP, mas desejvel que esse tempo seja ainda mais minimizado.

    3.5 Tipos de kernel

    Antes, dividiremos entre modo usurio (no-privilegiado) e modo kernel (privilegiado).

    3.5.1 Monoltico

    Um grande bloco de cdigo, ou dividido em mdulos, todos sendo executados no modo kernel.

    Estrutura mais simples.

    Desenvolvimento mais simples.

    A manuteno pode ser complexa, se no for um projeto bem-feito e bem amarrado.

    Simples na estrutura.

    Rpido.

    Ex: MS-DOS, Linux.

    3.5.2 Camadas

    Nveis sobrepostos.

    H necessidade de passar por todos os nveis para chegar ao kernel.

    Como as camadas so isoladas, facilita a manuteno e a depurao.

    Desempenho prejudicado pela estrutura - muito burocrtico.

    Ex: Open VMS, MULTICS, Windows 2000

    3.5.3 Mquina Virtual

    Sistema computacional composto por nveis, onde o nvel mais baixo o hardware.

    Modelo de mquina virtual - nvel intermedirio entre o hardware e o sistema operacional - gerncia demquinas virtuais.

    Cada mquina virtual oferece uma cpia virtual do hardware, incluindo os modos de acesso, interrupes,dispositivos de E/S, etc.

  • 8/14/2019 Sistemas Operacionais 1: Resumo

    17/25

    CAPTULO 3. ESTRUTURA DO SISTEMA OPERACIONAL 16

    Cada mquina virtual independente das demais, contendo seu prprio sistema operacional, seus prpriosusurios e suas prprias aplicaes.

    Conceito iniciado no VM/370, baseado no OS/370, da IBM (anos 1960).

    Conceito usado tambm com a linguagem Java - JVM.

    Vantagens:

    1. Segurana - Isolamento total das mquinas virtuais.

    2. Economia de recursos - mais barato um servidor grande do que vrios servidores pequenos.

    3. Portabilidade - se o hardware hospedeiro tiver um defeito, basta transferir os arquivos das mquinasvirtuais para outro hardware.

    Desvantagens:

    1. Complexidade.

    2. Sobrecarga - um hipervisor complexo e consome muitos recursos do hardware hospedeiro.

    3.5.4 Microkernel

    Constatao - sistemas atuais ainda so lentos e pesados.

    Microkernel - tornar o ncleo do sistema operacional o menor e mais simples possvel.

    Disponibilizar os servios atravs de processos a serem executados no nvel usurio.

    Cada um desses processos servidores fornecem um recurso especfico para o sistema: Gerncia de pro-

    cessos, gerncia de arquivos, escalonamento de processos, etc. A principal funo do kernel ento fazer o dilogo entre os diferentes processos servidores.

    Conceito surgido nos anos 1980, com o sistema operacional Mach, desenvolvido na Universidade CarnegieMellon.

    O ncleo do Mach fornece 4 servios, apenas: Gerncia de processos, gerncia de memria, comunicaopor troca de mensagens e operaes de E/S, todas em modo usurio.

    Vantagens:

    1. Mais seguro: Se um servio sair do ar, recolocado facilmente.2. Apropriado para computao distribuda: Os servios podem ser remanejados entre as UCPs.

    3. Mais flexvel.

    4. Mais rpido: com o kernel enxuto, menos cdigo a ser executado.

    5. Mais facilmente portado para outras arquiteturas: Menos cdigo no kernel, menos dificuldades parareescrever o kernel para outras plataformas.

  • 8/14/2019 Sistemas Operacionais 1: Resumo

    18/25

    CAPTULO 3. ESTRUTURA DO SISTEMA OPERACIONAL 17

    H controvrsias quanto afirmao de ser mais rpido (ponto no. 4), pois apesar do kernel ser menor, osistema far muito mais chamadas e mudanas de modo de acesso, ao acessar os servios que rodam nomodo usurio.

    Na prtica, os sistemas microkernel so interessantes, mas ainda no podem estar disponveis comercial-mente. Existem alguns sistemas que agregam caractersticas do microkernel, mas no so completamente

    nesse estado.Exemplos: L4, Amoeba, Exokernel, Minix.

  • 8/14/2019 Sistemas Operacionais 1: Resumo

    19/25

    Captulo 4Processos e threads

    4.1 Introduo

    Conceito - base para a implementao de um sistema multiprogramvel.

    Um programa deve estar sempre associado a um processo.

    Processo - ambiente no qual um programa executado.

    O processo colocado em execuo e tirado caso o sistema operacional necessite faz-lo.

    4.2 Partes do processo

    Trs partes:

    1. Espao de endereamento: rea de memria usada pelo processo, onde as instrues e os dados doprograma so armaenados para execuo.

    2. Contexto de hardware: Registradores gerais e especficos da UCP. Quando um processo est emexecuo, o contexto de hardware guarda os registradores do processador. Quando ele tirado deexecuo (mudana de contexto), todos os registradores so salvos no contexto de hardware, paraque o processo seja novamente colocado em execuo, a partir do ponto onde parou.

    3. Contexto de software: Caractersticas e limites dos recursos que podem ser alocados pelo processo.Muitas dessas caractersticas so determinadas no momento da criao do processo, enquanto outraspodem ser alteradas durante a sua existncia. So trs grupos de informaes:

    Identificao:

    * Nmero de identificao do processo (PID).

    * Nome do usurio que criou o processo (UID).

    * Grupo do usurio que criou o processo (GID).

    Quotas: Limites de cada recurso do sistema que um prcoesso pode alocar. Exemplos:

    * Nmero mximo de arquivos abertos simultaneamente;

    * Nmero mximo de operaes de E/S pendentes;

    * Tamanho mximo do buffer para operaes de E/S;

    18

  • 8/14/2019 Sistemas Operacionais 1: Resumo

    20/25

    CAPTULO 4. PROCESSOS E THREADS 19

    * Nmero mximo de processos, subprocessos e threads que podem ser criados.

    Privilgios: Aes que um processo pode fazer em relao a ele mesmo, aos demais processos e aosistema operacional. Exemplos:

    * Alterar a prioridade de execuo;

    * Limites alocados na memria principal e secundria;

    * Alterar as prioridades de outros processos;* Desativar o sistema;

    * Alterar regras de segurana;

    * Criar outros processos privilegiados;

    * Mudar a configurao do sistema.

    4.3 Bloco de controle do processo (PCB)

    O bloco de controle do processo uma estrutura de dados, mantida pelo sistema operacional, em rea

    reservada, onde todas as informaes necessrias para manter o processo em funcionamento so arquiv-adas.

    A gerncia de processos feita por chamadas do sistema.

    4.4 Estados do processo e mudanas de estado

    Trs estados:

    1. Execuo: Sendo executado pela UCP.

    2. Prontido (ou pronto): Aguarda a sua vez para ser executado.3. Espera: Aguarda pelo fim de um evento externo ou por um recurso para continuar o processamento.

    Escalonamento: Conjunto de critrios que definem qual processo ser colocado em execuo primeiro.

    4.4.1 Mudanas de estado

    Eventos voluntrios ou involuntrios podem mudar o estado de um processo:

    1. Eventos voluntrios: O processo muda por causa de eventos originrios de si mesmo.

    2. Eventos involuntrios: O processos muda por ao do sistema operacional.

    Mudanas:

    1. Pronto execuo: Colocado em execuo.

    2. Execuo espera: Evento externo, como uma operao de E/S, faz o processo ter seu estadomudado.

    3. Espera pronto: O evento externo foi concludo. Note que no h como passar direto, de esperapara execuo.

  • 8/14/2019 Sistemas Operacionais 1: Resumo

    21/25

    CAPTULO 4. PROCESSOS E THREADS 20

    4. Execuo pronto: O trmino da fatia de tempo que o processo tem o coloca de volta na fila deprontido.

    Processos no estado de espera ou pronto podem estar na memria virtual, por falta de espao. Logo, atcnica de swapping consiste em mover processos entre as memrias principal e virtual.

    4.5 Criao e eliminao de processos

    Dois estados adicionais:

    1. Criao Criou-se a entrada no PCB, mas o processo ainda no foi colocado na lista de prontido. criado por outros processos.

    2. Trmino O programa foi finalizado, mas o PCB ainda existe. eliminado por outros processosou pelo trmino nortmal da sua execuo.

    4.6 Concorrncia dentro de uma aplicao Trs maneiras:

    1. Processos independentes: Um processo cria outros, sem vnculos. a maneira mais simples.

    2. Subprocessos: Um processo cria outros, de forma que esto vinculados hierarquicamente: Se oprocesso-pai eliminado, os processos-filho tambm sero. Compartilham quotas.

    3. Threads: Ramificaes dentro do processo, compartilhando o contexto de software e o espao deendereamento. um modo de gastar menos tempo com criao, escalonamento e eliminao deprocessos.

    4.7 Tipos de processo

    1. Foreground: Execuo em primeiro plano, interage diretamente com o usurio, com entrada-padro(teclado) e sada-padro (monitor).

    2. Background: Execuo em segundo plano, onde no preciso interagir diretamente com o usurio. Nessecaso, entrada e sada podem ser arquivos, por exemplo.

    3. CPU-Bound: Passa a maior parte da fatia de tempo em estado de execuo, ou seja, usando a UCPintensamente.

    4. I/O-Bound: Passa a maior parte da fatia de tempo em estado de espera, com muitas operaes de E/S.

    4.8 Sinais

    Mecanismo que permite avisar processos de eventos gerados pelo sistema operacional ou por outrosprocessos.

    Tambm so usados para comunicao e sincronizao entre processos.

  • 8/14/2019 Sistemas Operacionais 1: Resumo

    22/25

    CAPTULO 4. PROCESSOS E THREADS 21

    Podem ser associados a temporizadores (eventos associados ao tempo).

    Exemplos: Notificao de interrupes e excees, alarmes de tempo, limites de quotas excedidos, etc.

    Eventos que geram sinais - sncronos ou assncronos.

    Tratamento do sinal - semelhante ao mecanismo de interupes.

    O sinal est para o processo assim como interrupes e excees esto para o sistema operacional.

    4.9 Threads

    4.9.1 Introduo

    No incio, eram apenas processos.

    Conceito de processo leve (lightweight) compartilha o espao de endereamento.

    Thread - surge primeiro no sistema operacional Mach, da Universidade de Carnegie-Mellon (1980).

    Ganho de desempenho e flexibilidade, apesar da complexa implementao.

    Aplicaes mais complexas - vrios trechos de cdigo em execuo paralela - para termos comunicaoe sincronizao de threads deve-se avaliar desempenho, flexibilidade e custo.

    Apesar da dificuldade em desenvolver, compensa devido aos ganhos obtidos.

    Exemplos: Windows 2000 e superiores, Linux, Solaris, etc.

    4.9.2 Ambientes monothread e multithread

    4.9.2.1 Monothread

    Cada processo tem apenas um thread.

    Concorrncia se d apenas com processos independentes ou subprocessos.

    Problema - criar, gerenciar e eliminar processos computacionalmente caro.

    Compartilhar o espao de endereamento complexo, por conta dos mecanismos empregados.

    ProcessoUnidade de alocao e de escalonamento.

  • 8/14/2019 Sistemas Operacionais 1: Resumo

    23/25

    CAPTULO 4. PROCESSOS E THREADS 22

    4.9.2.2 Multithread

    Permite que tenhamos aplicaes concorrentes de forma mais eficiente:

    Aumenta o desempenho, por dispensar mecanismos de comunicao dentrod o processo.

    Aumenta a eficincia, por termos menos sobrecarga do sistema como um tyodo - menos processose mais threads.

    Programas associados a threads.

    Os threads sofrem mudana de estado (pronto, espera e execuo), e tem seu prprio bloco de controle(o TCB).

    ProcessoUnidade de alocao.

    ThreadUnidade de escalonamento.

    O S. O. v e escalona os threads de cada processo.

    4.9.3 Formas de implementao

    Pacote de threads - Conjunto de rotinas da biblioteca do sistema operacional par aa implementao dethreads.

    Falta de padro em sistemas Unix, at o comit POSIX liberar uma norma para termos threads, osPThreads.

    4.9.3.1 Threads em Modo Usurio (TMU)

    Implementados pela aplicao.

    O sistema operacional no v os threads, apenas o proceso como um todo.

    Podemos ter aplicaes multithread em ambientes monothread.

    So rpidos e eficientes, por no fazerem acessos ao kernel, e as mudanas de modo de acesso da UCP(usurio-kernel-usurio).

    Uma chamada a um dispositivo de E/S, feita por um thread, coloca todo o processo em estado de espera.

    O tratamento dos sinais tambm complexo, pois o processo ter que tratar o sinal e direcion-lo aothread certo.

    4.9.3.2 Threads em Modo Kernel (TMK)

    Implementados pelo kernel.

    O sistema operacional gerencia diretamente os threads de um processo.

    Requer mudanas de modo de acesso, logo tem desempenho degradado - bem mais lentos.

    Chamadas bloqueantes colocam apenas o thread em estado de espera, no todo o processo.

    Podemos ter vrios threads de um mesmo processo em execuo simultnea, em UCPs diferentes.

  • 8/14/2019 Sistemas Operacionais 1: Resumo

    24/25

    CAPTULO 4. PROCESSOS E THREADS 23

    4.9.3.3 Threads em Modo Hbrido (TMH)

    Combina as vantagens dos threads em modo usurio (TMU) e em modo kernel (TMK), mas tambm asdesvantagens.

    Um processo tem vrios TMKs, e cadas TMK tem vrios TMUs.

    O sistema operacional escalona os TMKs, e eles escalonam os TMUs. O objetivo aumentar a flexibilidade, j que apenas os TMKs so escalonados (diminuindo o nmero de

    mudanas de modo de acesso), mas tambm traz os problemas das chamadas bloqueantes, entre outras.

    4.9.3.4 Scheduler activations

    Os Threads em Modo Hbrido (TMH) tem problemas devido falta de comunicao entre os threads.

    desejvel unir o melhor das implementaes, fugindo dos problemas de cada uma.

    O scheduler activations foi implementado inicialmente na Universidade de Washington, e nessa forma,

    h uma estrutura de dados que facilita a troca de informaes entre o kernel e a biblioteca de threads.Essa estrutura o scheduler activations.

    O escalonamento feito pela prpria biblioteca, evitando as mudanas de modo de acesso, como porexemplo a ocorrncia de uma chamada bloqueante.

    Ambas as partes se comunicam, e trabalham cooperativamente.

  • 8/14/2019 Sistemas Operacionais 1: Resumo

    25/25

    Captulo 5Sincronizao entre processos