sistemas operacionais - lrodrigo.sgs.lncc.br · curso de sistemas operacionais petrópolis 22 de...

55
Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 1 de 55 Sistemas Operacionais Sistemas Operacionais Unidade II – Gerência de Processos Unidade II – Gerência de Processos http://www.lncc.br/~lrodrigo http://www.lncc.br/~lrodrigo Professor: Luís Rodrigo – [email protected] Professor: Luís Rodrigo – [email protected]

Upload: others

Post on 21-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 1 de 55

Sistemas OperacionaisSistemas OperacionaisUnidade II – Gerência de ProcessosUnidade II – Gerência de Processos

http://www.lncc.br/~lrodrigohttp://www.lncc.br/~lrodrigo

Professor: Luís Rodrigo – [email protected]: Luís Rodrigo – [email protected]

Page 2: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 2 de 55

Conceito de Processo :Conceito de Processo :

✔ Em um Em um ambiente multitarefa, o que está sendo executando

no processador muda constantemente

✔ Dando a impressão de que a máquina está a disposição de

somente aquele usuário/tarefa.

✔ A esses “pedaços” de programas/tarefas ora estão:

1. Sendo executados pela CPU

2. Fazendo acesso de E/S

3. Aguardando para execução na CPU

Page 3: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 3 de 55

Conceito de Processo :Conceito de Processo :

✔ Ou seja: estes vários “pedaços” de código “disputam” os

recursos (CPU, E/S, memória)

✔ Logo, um “processo” é a representação de cada “pedaço”

de programa/tarefa que acessa concorrente aos recursos do

sistema.

Page 4: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 4 de 55

Conceito de Processo :Conceito de Processo :

✔ Ao deixar a CPU o estado atual do processo tem que ser

salvo, de forma a retornar sua execução como se não

tivesse sido interrompido.

✔ O estado completo define o ambiente de execução

✔ Um processo é o ambiente:

➢ Onde se executa um programa;

➢ Que mantem a estrutura contendo as informações

necessárias para a execução.

Page 5: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 5 de 55

Materialização do Processo :Materialização do Processo :

✔ PCB (Process Control Block) ou

TCB (task control block)

✔ Define o ambiente completo de execução de cada

processo

✔ Materializam o conceito de processo

✔ Contém todos os detalhes necessários para definição do

processo.

✔ Varia de S.O. para S.O.

Page 6: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 6 de 55

Materialização do Processo e a PCB :Materialização do Processo e a PCB :

✔ A PCB, pode ser decomposta em:

1. ponteiro para outro(s) elementos

2. endereço inicial de memória e tamanho,

3. nome e estado do processo

4. usuário que o criou, grupo de usuário

5. registradores (PC, SP, etc.) e a pilha

6. Prioridade e classe de escalonamento

7. lista de arquivos abertos

8. quando o processo foi iniciado

9. tempo acumulado de execução, etc.

Page 7: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 7 de 55

Materialização do Processo e a PCB :Materialização do Processo e a PCB :

✔ Os elementos da PCB podem ser divididos em 3 grupos:

1. Contexto de Hardware

2. Contexto de Software

3. Espaço de Endereçamento

Page 8: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 8 de 55

Materialização do Processo e a PCB :Materialização do Processo e a PCB :

Contexto de Hardware:

✔ É aquele copiado para o hardware (CPU)

✔ Basicamente são os registradores:

1. PC (endereço da próxima instrução)

2. SP (stack pointer, topo da pilha)

3. Registrador de estado (PSW).

✔ Toda a pilha contendo os pontos de retorno das funções

Page 9: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 9 de 55

Materialização do Processo e a PCB :Materialização do Processo e a PCB :

Contexto de Software:

✔ Características que vão influir na execução.

✔ Define 3 grupos de informações :

1. Identificação

2. Cotas

3. Privilégios

Page 10: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 10 de 55

Materialização do Processo e a PCB :Materialização do Processo e a PCB :

Contexto de Software - Identificação:

✔ Todo processo recebe uma identificação uníca

✔ PID (Process IDentification = identificação do processo).

✔ Redebe a identificação do usuário (UID) que o criou

✔ A identificação do grupo de usuários (GID) aos quais é

permitido o acesso a arquivos, processos, etc.

✔ GID e UID estão relacionado ao modelo de segurança

✔ Identificação do processo “pai” PPID (Parent Process

IDentification), para que o filho possa retornar ao pai.

Page 11: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 11 de 55

Materialização do Processo e a PCB :Materialização do Processo e a PCB :

Contexto de Software - Cotas:

✔ Define os limites de utilização dos recurso

✔ Determinados durante a criação do processo.

✔ Basicamente são:

1. Número máximo de arquivos abertos

2. Quantidade máxima de memória que pode alocar

3. Quantidade máxima de operações de E/S pendentes

4. Tamanho máximo de buffers para o acesso de E/S

5. Quantidade máxima de subprocessos

Page 12: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 12 de 55

Materialização do Processo e a PCB :Materialização do Processo e a PCB :

Contexto de Software - Privilégios:

✔ O que o processo pode ou não fazer em relação ao

sistema e aos outros processos.

✔ Básicamente associado à:

✔ Segurança

✔ Operação do Sistema

✔ Gerência do Sistema.

Page 13: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 13 de 55

Materialização do Processo e a PCB :Materialização do Processo e a PCB :

Espaço de Endereçamento:

✔ A área da memória onde reside o processo.

✔ Carregados em endereços adjacentes, da seguinte forma:

1.Bloco de instruções

2.Bloco de dados que serão utilizados pelo programa.

3.Pilha de dados/execução.

Page 14: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 14 de 55

Materialização do Processo e a PCB :Materialização do Processo e a PCB :

Troca de contextos:

✔ Intervalo de tempo varia, com as especificações do

hardware, basicamente:

✔ Tamanho da memória

✔ número de registradores

✔ e velocidade da CPU.

Page 15: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 15 de 55

Materialização do Processo e a PCB :Materialização do Processo e a PCB :

Troca de contextos:

✔ Pode produzir um gargalo (bottleneck)

✔ Possível solução para esse problema: threads.

✔ Que visa diminuir o tempo gasto na criação/eliminação

de um PCB para cada subprocesso.

✔ Threads compartilham o mesmo espaço de

endereçamento

Page 16: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 16 de 55

Materialização do Processo e a PCB :Materialização do Processo e a PCB :

Estado do Processo:

✔ A quantidade e os nomes podem variar

✔ Tipos Clássicos:

1. Pronto (Read)

2. Executando (Runnig)

3. Bloqueado (Wait)

✔ Processos organizados em listas encadeadas

✔ As listas podem ser baseadas em prioridades

✔ O término do processo requer uma chamada de sistema,

que o remove da lista e desaloque o seu PCB.

Page 17: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 17 de 55

Materialização do Processo e a PCB :Materialização do Processo e a PCB :

Mudança de Estado:

Page 18: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 18 de 55

Materialização do Processo e a PCB :Materialização do Processo e a PCB :

Tipo de Processo:

✔ CPU-bound (ligado à CPU)

✔ maior parte do tempo no estado de execução

✔ realiza poucas operações de E/S.

✔ I/O-bound (ligado à E/S)

✔ maior parte do tempo no estado de espera

✔ elevado número de operações de E/S.

Page 19: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 19 de 55

Escalonamento :Escalonamento :

Escalonameto Escalonameto

de Processosde Processos

Page 20: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 20 de 55

Escalonamento :Escalonamento :

✔ Escalonamento (schedulling):Escalonamento (schedulling):✔ Conjunto de Conjunto de regrasregras utilizada pelo S.O. utilizada pelo S.O.

✔ Define Define ordemordem e o mecanismos de execução do proc. e o mecanismos de execução do proc.

✔ Escalonador:Escalonador:✔ Componente do Componente do KernelKernel responsável pelo escalonamento; responsável pelo escalonamento;

✔ Deve impedir o “Deve impedir o “StarvationStarvation””

✔ Fatores relevantes:Fatores relevantes:

✔ utilizaçãoutilização da CPU da CPU

✔ throughputthroughput

✔ turnaroundturnaround

✔ tempo de respostatempo de resposta

Page 21: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 21 de 55

Escalonamento :Escalonamento :

Rodando

ProntoBloqueado

Escalonamento/Escalonador

Page 22: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 22 de 55

Escalonamento :Escalonamento :

Tipos de EscalonamentoTipos de Escalonamento

✔ Não PreemptivoNão Preemptivo::

✔ Ocorre devido eventos voluntáriosOcorre devido eventos voluntários

✔ Processo solicita a saída da CPUProcesso solicita a saída da CPU

✔ Não existe a figura de um escalonadorNão existe a figura de um escalonador

✔ PreemptivoPreemptivo::

✔ eventos não voluntárioseventos não voluntários

✔ escalonador pode interromper os processosescalonador pode interromper os processos

Page 23: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 23 de 55

Escalonamento :Escalonamento :

Escalonamento não PreemptivoEscalonamento não Preemptivo

✔ Geralmente usam uma Geralmente usam uma únicaúnica fila de processo fila de processo

✔ Classificações:Classificações:

✔ FIFOFIFO – First-in-first-out – First-in-first-out

✔ SJFSJF – Shortest-jof-first – Shortest-jof-first

✔ CooperativoCooperativo

Page 24: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 24 de 55

Escalonamento :Escalonamento :

FIFO – First-in-first-outFIFO – First-in-first-out

✔ Primeiro Primeiro procproc a chegar é o primeiro a ser atendido a chegar é o primeiro a ser atendido

✔ Não há prioridadeNão há prioridade

✔ Processos CPU-Bound (menor prioridade) Processos CPU-Bound (menor prioridade)

prejudicam os processos IO-Bound (maior prioridade)prejudicam os processos IO-Bound (maior prioridade)

SJF - Shortest-jof-first:SJF - Shortest-jof-first:

✔ Menor tempo de execução é tratado primeiroMenor tempo de execução é tratado primeiro

✔ Difícil determinar o tempo para a conclusão do Difícil determinar o tempo para a conclusão do

processoprocesso

✔ Não priorizam os processos IO-BoundNão priorizam os processos IO-Bound

Page 25: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 25 de 55

Escalonamento :Escalonamento :

Cooperativo:Cooperativo:

✔ Fila de mensagensFila de mensagens

✔ Sem intervenção do S.O.Sem intervenção do S.O.

✔ Processo pode não liberar o processador (núcleo)Processo pode não liberar o processador (núcleo)

Page 26: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 26 de 55

Escalonamento :Escalonamento :

Escalonamento PreemptivoEscalonamento Preemptivo

✔ Ação de eventos voluntários e involuntáriosAção de eventos voluntários e involuntários

✔ Circular – Round RobinCircular – Round Robin

✔ Fila de pronto Fila de pronto únicaúnica

✔ Atendidos pela Atendidos pela ordem de chegadaordem de chegada

✔ Preempção por Preempção por tempotempo

✔ Uso de Uso de time-slicetime-slice ( (quantumquantum))

Rodando

Bloqueado

A | B | C | D | EPronto

Preempção p/Tempo

Page 27: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 27 de 55

Escalonamento :Escalonamento :

Por PrioridadePor Prioridade✔ Fila de pronto Fila de pronto únicaúnica

✔ Prioridade: Prioridade:

✔ definida pelo SOdefinida pelo SO

✔ estática ou dinâmicaestática ou dinâmica

✔ Prioridade Prioridade dinâmicadinâmica pode ser usada para compensar os pode ser usada para compensar os

processos que ficam na fila de pronto (fila de espera pela processos que ficam na fila de pronto (fila de espera pela

CPU)CPU)

Page 28: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 28 de 55

Escalonamento :Escalonamento :

Por PrioridadePor Prioridade✔ Ao final do Ao final do time slicetime slice / / inícioinício do escalonamento: do escalonamento:

✔ Arruma a lista de processosArruma a lista de processos

✔ Se Se 1º1º processo da fila de pronto possui prioridade processo da fila de pronto possui prioridade

maior ou igualmaior ou igual ao que está sendo executado ao que está sendo executado

✔ Então ocorre o escalonamentoEntão ocorre o escalonamento

✔ Senão processo que está sendo executado continua Senão processo que está sendo executado continua

por mais um time-slice;por mais um time-slice;

Page 29: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 29 de 55

Escalonamento :Escalonamento :

Por múltiplas filas (prioridade estática)Por múltiplas filas (prioridade estática)

✔ VáriasVárias filas de pronto; filas de pronto;

✔ Cada fila possui uma prioridadeCada fila possui uma prioridade

✔ Processo não pode mudar de prioridadeProcesso não pode mudar de prioridade

✔ Ganha a CPU quando não há outro de maior prioridadeGanha a CPU quando não há outro de maior prioridade

Rodando

Bloqueado

Pronto

A | B | C | D | E

A | B | C | D | E

A | B | C | D | E

A | B | C | D | E

A | B | C | D | E

+

-

Page 30: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 30 de 55

Escalonamento :Escalonamento :

Com múltiplas filas e com realimentaçãoCom múltiplas filas e com realimentação✔ Várias filas de pronto;Várias filas de pronto;

✔ Cada fila possui uma prioridadeCada fila possui uma prioridade

✔ Processo pode mudar de prioridade Processo pode mudar de prioridade

Page 31: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 31 de 55

Escalonamento :Escalonamento :

Com múltiplas filas e com realimentaçãoCom múltiplas filas e com realimentação✔ Mecanismo adaptativo :Mecanismo adaptativo :

✔ Processo é colocado no final da fila de Processo é colocado no final da fila de > prioridade> prioridade

✔ Na preempção por Na preempção por prioridadeprioridade ou pelo ou pelo S.O.S.O., o processo , o processo

volta ao final da volta ao final da fila de origemfila de origem (prioridade (prioridade nn))

✔ Na preempção por Na preempção por tempotempo processo vai para o final da sila processo vai para o final da sila

de prioridade “de prioridade “n-1n-1””

✔ Quando volta da fila de Quando volta da fila de bloqueadosbloqueados ganha prioridade ganha prioridade

““n+1n+1””

✔ QuantoQuanto maior a prioridade menor o time-slice maior a prioridade menor o time-slice

Page 32: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 32 de 55

Escalonamento :Escalonamento :

Tempo realTempo real✔ Prioridade EstáticaPrioridade Estática

Com multiplos processadoresCom multiplos processadores✔ Sistema fortemente acopladoSistema fortemente acoplado (memória compartilhada) (memória compartilhada)

Fila únicaFila única

Escalonado para o primeiro processador livreEscalonado para o primeiro processador livre

✔ Sistema fracamente acopladoSistema fracamente acoplado (memória distribuída) (memória distribuída)

cada processador usa seu próprio algoritmocada processador usa seu próprio algoritmo

Page 33: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 33 de 55

Gerência de Processos :Gerência de Processos :

ThreadThread

(PWL)(PWL)

Page 34: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 34 de 55

Threads Threads

Conceitos Básicos:Conceitos Básicos:✔ Assim como os processos, são Assim como os processos, são elementos ativoselementos ativos que que

podem podem interagirinteragir com o com o sistemasistema e entre e entre sisi

✔ Um Um processoprocesso pode ser composto por pode ser composto por várias threadsvárias threads

✔ Cada Cada processoprocesso possui seu próprio possui seu próprio conjuntoconjunto de recursos de recursos

✔ As As threadsthreads de um processo de um processo compartilhamcompartilham um um mesmo mesmo

conjuntoconjunto de recursos, podem possuir recursos de recursos, podem possuir recursos

individualizadosindividualizados

Page 35: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 35 de 55

Threads Threads

Modelo Clássico:Modelo Clássico:✔ para cada processo há para cada processo há umauma e somente uma e somente uma threadthread

✔ neste caso a thread e o processo são a mesma entidadeneste caso a thread e o processo são a mesma entidade

Processo 1 Processo 2 Processo 3

Thread 1 Thread 2 Thread 3

Page 36: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 36 de 55

Threads Threads

Modelo Atual:Modelo Atual:✔ um processo pode ser composto de um processo pode ser composto de uma ou váriasuma ou várias threads threads

✔ cada thread individualiza:cada thread individualiza:

✔ os registradores; os registradores;

✔ o apontador de Instruçãoo apontador de Instrução

✔ a pilhaa pilha Processo 1 Processo 2 Processo 3

Threads

Page 37: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 37 de 55

Gerência de Processos :Gerência de Processos :

ComunicaçãoComunicação

entre Processosentre Processos

Page 38: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 38 de 55

Comunicação entre processos :Comunicação entre processos :

✔ IPC (InterProcess Comunnication)IPC (InterProcess Comunnication)

✔ Programação Distribuída (Concorrente/Paralela)Programação Distribuída (Concorrente/Paralela)✔ Dividir para conquistar Dividir para conquistar

✔ Redundância / Validação de resultadosRedundância / Validação de resultados

✔ Message Passing Interface (Message Passing Interface (MPIMPI) )

✔ Recursos que o S.O. deveria fornecer:Recursos que o S.O. deveria fornecer:✔ Mecanismos de Mecanismos de SincronizaçãoSincronização

✔ Mecanismos de Mecanismos de ComunicaçãoComunicação

✔ Memória CompartilhadaMemória Compartilhada

✔ Troca de MensagensTroca de Mensagens

✔ SerializaçãoSerialização / / sequencializaçãosequencialização

Page 39: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 39 de 55

Condições de Corrida :Condições de Corrida :

✔ 2 ou + processos tentam usar o mesmo recurso2 ou + processos tentam usar o mesmo recurso: :

✔arquivosarquivos em disco em disco

✔variáveisvariáveis compartilhadas compartilhadas

✔spoolspool de impressão de impressão

✔ Ordem no acesso pode alterar o resultado finalOrdem no acesso pode alterar o resultado final::

✔obter saldo && realizar um depositoobter saldo && realizar um deposito

✔obter saldo && realizar um saqueobter saldo && realizar um saque

Page 40: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 40 de 55

Regiões Críticas :Regiões Críticas :

✔ Região do código que leva às condições de corrida Região do código que leva às condições de corrida

✔ Foram definidos mecanismos que Foram definidos mecanismos que impedemimpedem a entrada a entrada

de 2 ou + processos em uma de 2 ou + processos em uma R.C.R.C. ao ao mesmo tempomesmo tempo

✔ Os mecanismos de controle devemOs mecanismos de controle devem

✔Permitir a entrada de Permitir a entrada de apenas umapenas um processo na RC processo na RC

✔Não deve-se fazer consideração quanto a Não deve-se fazer consideração quanto a velocidadevelocidade de de

execução dos processos e processadoresexecução dos processos e processadores

✔Processos Processos fora da RCfora da RC não podem não podem bloquearbloquear processos processos

dentro da RCdentro da RC

✔Nenhum processo pode Nenhum processo pode esperar indefinidamenteesperar indefinidamente para para

entrar na RCentrar na RC

Page 41: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 41 de 55

Exclusão mútua :Exclusão mútua :

✔ Duas formas para evitar as Duas formas para evitar as C.C.C.C.s e proteger as s e proteger as R.C.R.C.s:s:✔ Exclusão Mútua Exclusão Mútua comcom espera ocupada espera ocupada

✔ Exclusão Mútua Exclusão Mútua semsem espera ocupada espera ocupada

✔ Deve impedir que processos concorrentes acessem ao Deve impedir que processos concorrentes acessem ao

mesmo tempo um determinado recurso mesmo tempo um determinado recurso (Bloqueio)(Bloqueio)

✔ Esperar o encerramento da operação sobre o recurso Esperar o encerramento da operação sobre o recurso

antes de utiliza-lo antes de utiliza-lo (Liberação)(Liberação)

Page 42: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 42 de 55

Com espera ocupada :Com espera ocupada :

Inibição de Interrupções:Inibição de Interrupções:✔ desabilitardesabilitar todas as todas as interrupçõesinterrupções ao entrar na região crítica ao entrar na região crítica

✔ inclusive interrupção do inclusive interrupção do clockclock

✔ só funciona em máquinas só funciona em máquinas monoprocessadasmonoprocessadas

✔ pode causar pode causar D.O.S.D.O.S., caso as interrupções continuem , caso as interrupções continuem

desativadas ao finalizar a região críticadesativadas ao finalizar a região crítica

Page 43: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 43 de 55

Espera Ocupada :Espera Ocupada :

Variáveis de travamento:Variáveis de travamento:✔ variável variável compartilhadacompartilhada, que pode assumir , que pode assumir 00 ou ou 11

✔ quando quando 0,0, processo pode entrar na RC processo pode entrar na RC

✔ falhafalha quando: quando:

(I) um processo (I) um processo obtém o valorobtém o valor 0 0 mas nãomas não tem tempo para tem tempo para

atualizaatualiza-lo para 1-lo para 1

(ii) o processo (ii) o processo não alteranão altera seu valor seu valor para 0para 0 ao sair da R.C. ao sair da R.C.

Page 44: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 44 de 55

Espera Ocupada :Espera Ocupada :

Escrita alternada:Escrita alternada:✔ TURNTURN - Variável inteira - Variável inteira compartilhadacompartilhada

✔ O valor contido na variável define de quem é a vez de O valor contido na variável define de quem é a vez de

entrar na RCentrar na RC

✔ Realiza um Realiza um teste contínuoteste contínuo sobre o valor da variável sobre o valor da variável

Processo A...while (true) { while (TURN != 0) regiaoCritica (); TURN++; regiaoNaoCritica ();}

Processo B...while (true) { while (TURN != 1 ) regiaoCritica (); TURN=0; regiaoNaoCritica ();}

Page 45: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 45 de 55

Espera Ocupada :Espera Ocupada :

Solução de Peterson:Solução de Peterson:✔ Duas Variáveis: Duas Variáveis: travamento e intençãotravamento e intenção

✔ Duas Funções: Duas Funções:

✔ enterRegionenterRegion (int proc) (int proc)

✔ leaveRegionleaveRegion (int proc) (int proc)

#include “prototype.h”#define FALSE=0#define TRUE=1#define N=2int turn;int interested (N);

void leaveRegion (int proc) {

interested[proc] = FALSE;

}

void enterRegion (int proc) {

int other; other=1-proc; interested[proc] = TRUE; turn=proc;

while (turn == proc && interested[other] == TRUE );

}

Page 46: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 46 de 55

Espera Ocupada :Espera Ocupada :

Instruções TSL:Instruções TSL:✔ Test and Set LockTest and Set Lock (instrução atômica) (instrução atômica)

✔ Transfere o conteúdo Transfere o conteúdo da memória para o contadorda memória para o contador e e

armazena na memória um valor não nuloarmazena na memória um valor não nulo

✔ DesabilitaDesabilita acesso a memória aos demais processadores acesso a memória aos demais processadores

✔ Evita a Evita a chegada de interrupçõeschegada de interrupções no meio da atualização no meio da atualização

✔ Suportado apenas em Suportado apenas em AssemblyAssembly

✔ Falha quando o processo que está na RC é Falha quando o processo que está na RC é abortadoabortado

enter_region PROC_loop: TSL register, lock; CMP register,0; JNE _loop; RETenter_region ENDP

leave_region PROC mov lock, #0; ret;leav_region ENDP

Page 47: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 47 de 55

Sem Espera Ocupada :Sem Espera Ocupada :

✔ NãoNão há perda de ciclos no loop de espera há perda de ciclos no loop de espera

✔ InversãoInversão de prioridade de prioridade✔ processo “processo “HH” com alta prioridade e ” com alta prioridade e forafora da da RCRC, , impedeimpede que que

o processo “o processo “LL” com baixa prioridade rode e execute a ” com baixa prioridade rode e execute a RCRC

✔ Pode gerar um Pode gerar um DeadlockDeadlock (abraço mortal) (abraço mortal)

✔ Solução utiliza política de Solução utiliza política de prioridade dinâmicaprioridade dinâmica

✔ Processo na RC deve ter a Processo na RC deve ter a maior prioridademaior prioridade✔ comparado com aqueles que está concorrendocomparado com aqueles que está concorrendo

✔ ao sair da RC volta a prioridade normalao sair da RC volta a prioridade normal

Page 48: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 48 de 55

Sem Espera Ocupada :Sem Espera Ocupada :

Sleep e WakeupSleep e Wakeup✔ sleep ()sleep () : coloca o processo para dormir (fila de bloqueado) : coloca o processo para dormir (fila de bloqueado)

✔ wakeup (proc)wakeup (proc) : acorda o processo que estava na fila de : acorda o processo que estava na fila de

bloqueadobloqueado

✔ FalhaFalha quando um processo que ainda quando um processo que ainda não foi para a filanão foi para a fila de de

bloqueados bloqueados receberecebe um sinal de um sinal de wakeupwakeup

✔ Solução:Solução: uso de “n” bits para uso de “n” bits para contar a quantidadecontar a quantidade de de

wakeups que um processo recebeuwakeups que um processo recebeu

Page 49: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 49 de 55

Sem Espera Ocupada :Sem Espera Ocupada :

SemáforoSemáforo✔ Variáveis Variáveis inteiras não negativasinteiras não negativas protegidas protegidas

✔ Valor Valor inicial = 0inicial = 0 → não há sinal armazenado→ não há sinal armazenado

✔ Valores Valores positivospositivos indicam sinais indicam sinais pendentespendentes

✔ Operações AtômicasOperações Atômicas para sincronização de processos: para sincronização de processos:

✔ UPUP : incrementa contador : incrementa contador

✔ DownDown : decrementa contador : decrementa contador

✔ Resolve o problema de Resolve o problema de perda de sinaisperda de sinais

✔ Quando há Quando há mais de ummais de um processador a variável do processador a variável do semáforosemáforo

deve ser deve ser protegidaprotegida por instruções por instruções TSLTSL

Page 50: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 50 de 55

Sem Espera Ocupada :Sem Espera Ocupada :

SemáforoSemáforo✔ Tipos:Tipos:

✔ BináriosBinários : podem assumir 0 ou 1 : podem assumir 0 ou 1

✔ Contadores e/ou GenéricosContadores e/ou Genéricos : valores inteiro não negativos : valores inteiro não negativos

✔ Código:Código:

def down (S) :

if ( S > 0 ) :S = S – 1

else#espera no semáforo

def up (S) :

if ( processo esperando:ocorde_um_processo ( )

else S = S + 1

Page 51: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 51 de 55

Sem Espera Ocupada :Sem Espera Ocupada :

SemáforoSemáforoprogram exemplo_semaforo

var ativo : semaphore;

procedure processo_um;begin

while true dobegin

algumas_funcoes_umdown (ativo)regiao_critica_umup (ativo)outras_funcoes_um

endend;

procedure processo_dois;begin

while true dobegin

algumas_funcoes_doisdown (ativo)regiao_critica_doisup (ativo)outras_funcoes_dois

endend;

begininicializa_semaforo (ativo, 1);parbegin

processo_um;processo_dois

parendend.

Page 52: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 52 de 55

Sem Espera Ocupada :Sem Espera Ocupada :

Contadores de EventoContadores de Evento✔ Variáveis especiais, que permitem as operações:Variáveis especiais, que permitem as operações:

✔ read (E) read (E) : obtém o valor de “E” : obtém o valor de “E”

✔ advande (E)advande (E) : incrementa o valor de “E” : incrementa o valor de “E”

✔ await (E,N)await (E,N) : espera até que “E” tenha o valor “N” : espera até que “E” tenha o valor “N”

✔ Valores iniciados com Valores iniciados com 00

✔ Valores apenas podem ser Valores apenas podem ser incrementadosincrementados

Page 53: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 53 de 55

Sem Espera Ocupada :Sem Espera Ocupada :

MonitoresMonitores✔ SimplesSimples de serem utilizados de serem utilizados

✔ ControladosControlados pelo pelo S.OS.O., ele garante que apenas um processo ., ele garante que apenas um processo

está dentro do monitorestá dentro do monitor

✔ Devem ser suportados pelo Devem ser suportados pelo compiladorcompilador

✔ Primitivas de Primitivas de alto nívelalto nível implementadas como: implementadas como:

✔ conjunto de conjunto de procedimentosprocedimentos

✔ estrutura de dados e variáveisestrutura de dados e variáveis

✔ Formam módulos especiais que podem ser chamados pelos Formam módulos especiais que podem ser chamados pelos

processosprocessos

✔ Não podem ser alteradosNão podem ser alterados

Page 54: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 54 de 55

Sem Espera Ocupada :Sem Espera Ocupada :

MonitoresMonitores✔ Funções internas não podem ser acessadas de fora do monitorFunções internas não podem ser acessadas de fora do monitor

✔ O O compiladorcompilador deve deve implementarimplementar a a exclusãoexclusão mútua na mútua na

entrada dos monitores;entrada dos monitores;

✔ Assim como as demais soluções funciona apenas em sistemas Assim como as demais soluções funciona apenas em sistemas

de de memória compartilhadamemória compartilhada..

monitor exemplo;var

i: integer;c: condition;

procedure produtor (x: integer);begin ...end;

procedure consumidor ( x : integer);begin...end;

end monitor;

Page 55: Sistemas Operacionais - lrodrigo.sgs.lncc.br · Curso de Sistemas Operacionais Petrópolis 22 de Setembro de 2008 Página: 2 de 55 Conceito de Processo : Em um Em um ambiente multitarefa,

Curso de Sistemas OperacionaisPetrópolis 22 de Setembro de 2008

Página: 55 de 55

[email protected]@lncc.brhttp://lrodrigo.lncc.brhttp://lrodrigo.lncc.br