Sei sulla pagina 1di 24

Sumrio

1 Introduo 1.1 O que um Sistema Operacional (SO)? . . . . . . . . . . . . . . . . . . 1.1.1 Funes: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Mquina de Nveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Tipos de Sistemas Operacionais . . . . . . . . . . . . . . . . . . . . . . 1.3.1 Sistemas Monotarefa . . . . . . . . . . . . . . . . . . . . . . . . 1.3.2 Sistemas Multitarefa . . . . . . . . . . . . . . . . . . . . . . . . 1.3.2.1 Lote ou Batch . . . . . . . . . . . . . . . . . . . . . . 1.3.2.2 Tempo Compartilhado (Time-Share) . . . . . . . . . . 1.3.2.3 Tempo Real (Real-Time) . . . . . . . . . . . . . . . . 1.3.3 Multiplas UCPs . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3.3.1 Multiprocessadores, ou sistemas fortemente acoplados 1.3.3.2 Multicomputadores, ou sistemas fracamente acoplados. Concorrncia 2.1 Introduo . . . . . . . . . . . . . . . 2.2 Interrupes . . . . . . . . . . . . . . 2.3 Excees . . . . . . . . . . . . . . . . 2.4 Controladoras de E/S . . . . . . . . . . 2.4.1 No incio... . . . . . . . . . . . 2.4.2 E/S Controlada por Programa . 2.4.3 Polling . . . . . . . . . . . . . 2.4.4 E/S Controlada por Interrupo 2.4.5 DMA . . . . . . . . . . . . . . 2.4.5.1 Canal DMA . . . . . 2.5 Buffering . . . . . . . . . . . . . . . . 2.6 Spooling . . . . . . . . . . . . . . . . . 2.7 Reentrncia . . . . . . . . . . . . . . . 2.8 Proteo do Sistema . . . . . . . . . . . Estrutura do sistema operacional 3.1 Kernel . . . . . . . . . . . . 3.2 Bibliotecas . . . . . . . . . 3.2.1 Chamadas do sistema 3.3 Utilitrios . . . . . . . . . . 3.4 Modos de acesso . . . . . . 3 3 3 3 3 4 4 5 5 5 5 6 6 7 8 8 8 9 10 10 10 10 10 10 11 11 11 11 12 13 13 14 14 14 14

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . . 1

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

SUMRIO 3.5 Tipos de kernel . . . . . 3.5.1 Monoltico . . . 3.5.2 Camadas . . . . 3.5.3 Mquina Virtual 3.5.4 Microkernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2 15 15 15 15 16 18 18 18 19 19 19 20 20 20 20 21 21 21 21 22 22 22 22 23 23 24

Processos e threads 4.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . 4.2 Partes do processo . . . . . . . . . . . . . . . . . . . 4.3 Bloco de controle do processo (PCB) . . . . . . . . . 4.4 Estados do processo e mudanas de estado . . . . . . 4.4.1 Mudanas de estado . . . . . . . . . . . . . 4.5 Criao e eliminao de processos . . . . . . . . . . 4.6 Concorrncia dentro de uma aplicao . . . . . . . . 4.7 Tipos de processo . . . . . . . . . . . . . . . . . . . 4.8 Sinais . . . . . . . . . . . . . . . . . . . . . . . . . 4.9 Threads . . . . . . . . . . . . . . . . . . . . . . . . 4.9.1 Introduo . . . . . . . . . . . . . . . . . . 4.9.2 Ambientes monothread e multithread . . . . 4.9.2.1 Monothread . . . . . . . . . . . . 4.9.2.2 Multithread . . . . . . . . . . . . 4.9.3 Formas de implementao . . . . . . . . . . 4.9.3.1 Threads em Modo Usurio (TMU) 4.9.3.2 Threads em Modo Kernel (TMK) . 4.9.3.3 Threads em Modo Hbrido (TMH) 4.9.3.4 Scheduler activations . . . . . . . Sincronizao entre processos

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

Captulo 1 Introduo
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.

CAPTULO 1. INTRODUO So eles: Aplicaes Linguagem de Montagem Sistema Operacional Linguagem de mquina Microprogramao 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

CAPTULO 1. INTRODUO

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 la de submisso de tarefas tarefas no interativas Sada em impressora ou disco Podem ser ecientes, 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 ca 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 prioridade tarefa em execuo enquanto no houver outro de mais prioridade do que ele Prioridade denida pela aplicao. Uso em sistemas de misso critica e controle de processos: renarias, siderrgicas, trafego areo.

CAPTULO 1. INTRODUO

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.

CAPTULO 1. INTRODUO 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

Captulo 2 Concorrncia
2.1 Introduo

Computador - seu uso caro computacionalmente Objetivo: minimizar o desperdcio (tempo que a UCP ca 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 Ler 100 registros: E/S Ordenar: UCP Gravar o resultado: E/S Total: 0,10 s. ,01 Total de uso da UCP: 0 0,10 Tempo 0,04 s 0,01 s 0,05 s s = 0, 1 = 10%.

Concorrncia - conjunto de tcnicas que permite a UCP passar mais tempo ocupada desempenhando mais tarefas por instante de tempo (throughput). Abaixo, algumas tcnicas de concorrncia.

2.2

Interrupes

Durante a execuo, eventos inesperados podem ocorrer Desvio forado na execuo - interrupo. Caractersticas: Evento assncrono. 8

CAPTULO 2. CONCORRNCIA 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 (interligadas 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
Evento interno ao programa. Evento sncrono. Tratamento todo via software.

Parecidos com as interrupes, mas diferem nos quesitos:

Exemplo: Diviso por zero, buffer overow, stack overow, etc. Tratamento feito pelo desenvolvedor, ou pelo hardware (em alguns casos). Segurana: Falhas em programas geram excees. Programao segura.

CAPTULO 2. CONCORRNCIA

10

2.4
2.4.1

Controladoras de E/S
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 eciente do que a UCP fazer o controle. Problema ainda existe a 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 da operao. UCP ca presa, aguardando o trmino da operao - nada eciente.

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 da operao. Muito eciente, 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 m da transferncia. A UCP repassa controladora a posio inicial da memria a ser lida/escrita, e liberada.

CAPTULO 2. CONCORRNCIA 2.4.5.1 Canal DMA

11

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 tas 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 eciente. 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 memria desperdcio. Reentrncia: capacidade do cdigo-fonte do programa ser executado e compartilhado entre os usurios do sistema. Cdigo executvel = cdigo reentrante. O cdigo deve ter compilado com essa opo. Uso mais eciente da memria e aumento do desempenho do sistema.

CAPTULO 2. CONCORRNCIA

12

2.8

Proteo do Sistema

Sistemas mais novos - mais complexos. Necessidade de aumentar a segurana preciso garantir a conabilidade 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.

Captulo 3 Estrutura 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 para projeto. Ideal que seja pequeno, rpido, estvel e seguro. 13

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 especicao das System 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
1. privilegiadas - tem acesso a todos os recursos, e mal-usadas, podem comprometer o funcionamento do sistema, gerando instabilidade. 2. no-privilegiadas - no comprometem a estabilidade do sistema operacional.

A UCP tem instrues:

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.

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 estar sendo 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 viceversa. 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 de mquinas virtuais. Cada mquina virtual oferece uma cpia virtual do hardware, incluindo os modos de acesso, interrupes, dispositivos de E/S, etc.

CAPTULO 3. ESTRUTURA DO SISTEMA OPERACIONAL

16

Cada mquina virtual independente das demais, contendo seu prprio sistema operacional, seus prprios usurios 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 mquinas virtuais 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 especco para o sistema: Gerncia de processos, 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, comunicao por 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 exvel. 4. Mais rpido: com o kernel enxuto, menos cdigo a ser executado. 5. Mais facilmente portado para outras arquiteturas: Menos cdigo no kernel, menos diculdades para reescrever o kernel para outras plataformas.

CAPTULO 3. ESTRUTURA DO SISTEMA OPERACIONAL

17

H controvrsias quanto armao de ser mais rpido (ponto no. 4), pois apesar do kernel ser menor, o sistema far muito mais chamadas e mudanas de modo de acesso, ao acessar os servios que rodam no modo usurio. Na prtica, os sistemas microkernel so interessantes, mas ainda no podem estar disponveis comercialmente. Existem alguns sistemas que agregam caractersticas do microkernel, mas no so completamente nesse estado. Exemplos: L4, Amoeba, Exokernel, Minix.

Captulo 4 Processos 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
1. Espao de endereamento: rea de memria usada pelo processo, onde as instrues e os dados do programa so armaenados para execuo. 2. Contexto de hardware: Registradores gerais e especcos da UCP. Quando um processo est em execuo, o contexto de hardware guarda os registradores do processador. Quando ele tirado de execuo (mudana de contexto), todos os registradores so salvos no contexto de hardware, para que 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 outras podem ser alteradas durante a sua existncia. So trs grupos de informaes: Identicao: * Nmero de identicao 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

Trs partes:

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 ao sistema 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 congurao 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 arquivadas. A gerncia de processos feita por chamadas do sistema.

4.4

Estados do processo e mudanas de estado


1. Execuo: Sendo executado pela UCP. 2. Prontido (ou pronto): Aguarda a sua vez para ser executado. 3. Espera: Aguarda pelo m de um evento externo ou por um recurso para continuar o processamento.

Trs estados:

Escalonamento: Conjunto de critrios que denem 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 estado mudado. 3. Espera pronto: O evento externo foi concludo. Note que no h como passar direto, de espera para execuo.

CAPTULO 4. PROCESSOS E THREADS

20

4. Execuo pronto: O trmino da fatia de tempo que o processo tem o coloca de volta na la de prontido. Processos no estado de espera ou pronto podem estar na memria virtual, por falta de espao. Logo, a tcnica de swapping consiste em mover processos entre as memrias principal e virtual.

4.5

Criao e eliminao de processos


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 nalizado, mas o PCB ainda existe. eliminado por outros processos ou pelo trmino nortmal da sua execuo.

Dois estados adicionais:

4.6

Concorrncia dentro de uma aplicao


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 o processo-pai eliminado, os processos-lho tambm sero. Compartilham quotas. 3. Threads: Ramicaes dentro do processo, compartilhando o contexto de software e o espao de endereamento. um modo de gastar menos tempo com criao, escalonamento e eliminao de processos.

Trs maneiras:

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. Nesse caso, 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 UCP intensamente. 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 outros processos. Tambm so usados para comunicao e sincronizao entre processos.

CAPTULO 4. PROCESSOS E THREADS Podem ser associados a temporizadores (eventos associados ao tempo). Exemplos: Noticao 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.

21

4.9
4.9.1

Threads
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 exibilidade, apesar da complexa implementao. Aplicaes mais complexas - vrios trechos de cdigo em execuo paralela - para termos comunicao e sincronizao de threads deve-se avaliar desempenho, exibilidade e custo. Apesar da diculdade em desenvolver, compensa devido aos ganhos obtidos. Exemplos: Windows 2000 e superiores, Linux, Solaris, etc.

4.9.2
4.9.2.1

Ambientes monothread e multithread


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. Processo Unidade de alocao e de escalonamento.

CAPTULO 4. PROCESSOS E THREADS 4.9.2.2 Multithread

22

Permite que tenhamos aplicaes concorrentes de forma mais eciente: Aumenta o desempenho, por dispensar mecanismos de comunicao dentrod o processo. Aumenta a ecincia, por termos menos sobrecarga do sistema como um tyodo - menos processos e 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). Processo Unidade de alocao. Thread Unidade 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 de threads. Falta de padro em sistemas Unix, at o comit POSIX liberar uma norma para termos threads, os PThreads. 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 ecientes, 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 ao thread 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.

CAPTULO 4. PROCESSOS E THREADS 4.9.3.3 Threads em Modo Hbrido (TMH)

23

Combina as vantagens dos threads em modo usurio (TMU) e em modo kernel (TMK), mas tambm as desvantagens. 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 exibilidade, 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 por exemplo a ocorrncia de uma chamada bloqueante. Ambas as partes se comunicam, e trabalham cooperativamente.

Captulo 5 Sincronizao entre processos

24

Potrebbero piacerti anche