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