zeque - grad. cc1 sistemas operacionais l processos plano de apresentação o modelo de processo ...

25
zeque - Grad. CC 1 Sistemas Operacionais Sistemas Operacionais Processos Processos Plano de Apresentação Plano de Apresentação O Modelo de Processo O Modelo de Processo Definição Definição Características Características Hierarquia Hierarquia Implementação Implementação Estados Estados Transição de Estados Transição de Estados O Modelo de Comunicação O Modelo de Comunicação Comunicação Comunicação Interprocessos Interprocessos Condição de competição Condição de competição Seções críticas Seções críticas Comunicação Comunicação Interprocessos Interprocessos Exclusão mútua Exclusão mútua solução de software solução de software TSL TSL Primitivas de Primitivas de comunicação comunicação sleep/wakeup sleep/wakeup semáforos semáforos contadores de contadores de eventos eventos Monitor Monitor Problemas Clássicos Problemas Clássicos

Upload: internet

Post on 21-Apr-2015

106 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Zeque - Grad. CC1 Sistemas Operacionais l Processos Plano de Apresentação  O Modelo de Processo  Definição  Características  Hierarquia  Implementação

zeque - Grad. CC 1

Sistemas OperacionaisSistemas Operacionais ProcessosProcessos

Plano de ApresentaçãoPlano de Apresentação O Modelo de ProcessoO Modelo de Processo

DefiniçãoDefinição CaracterísticasCaracterísticas HierarquiaHierarquia ImplementaçãoImplementação EstadosEstados Transição de EstadosTransição de Estados

O Modelo de ComunicaçãoO Modelo de Comunicação Comunicação InterprocessosComunicação Interprocessos

Condição de competiçãoCondição de competição Seções críticasSeções críticas

Comunicação InterprocessosComunicação Interprocessos Exclusão mútuaExclusão mútua

solução de softwaresolução de software TSLTSL

Primitivas de comunicaçãoPrimitivas de comunicação sleep/wakeupsleep/wakeup semáforossemáforos contadores de eventoscontadores de eventos

MonitorMonitor Problemas ClássicosProblemas Clássicos

Page 2: Zeque - Grad. CC1 Sistemas Operacionais l Processos Plano de Apresentação  O Modelo de Processo  Definição  Características  Hierarquia  Implementação

zeque - Grad. CC 2

O Modelo de ProcessoO Modelo de Processo

DefiniçãoDefinição Um processo é um Um processo é um

programa que está programa que está sendo executadosendo executado

Um processo é uma Um processo é uma atividade assíncronaatividade assíncrona

Dados Inicializados

Texto

heap

pilha do usuário

argv , envp

Área de usuário

pilha do processono kernel

bss-block started by symbolTabela de símbolos

Dados Inicializados

Texto

Cabeçalho

Número Mágico

UNIX:UNIX:ProgramasProgramasProcessosProcessos

Arquivo Executável

Espaço de Endereços

Page 3: Zeque - Grad. CC1 Sistemas Operacionais l Processos Plano de Apresentação  O Modelo de Processo  Definição  Características  Hierarquia  Implementação

zeque - Grad. CC 3

O Modelo de ProcessoO Modelo de Processo

CaracterísticasCaracterísticas Processos seqüenciaisProcessos seqüenciais MultiprogramaçãoMultiprogramação Processamento de InterrupçoesProcessamento de Interrupçoes

Tipos de InterrupçõesTipos de Interrupções chamadas ao supervisorchamadas ao supervisor interrupções de dispositivosinterrupções de dispositivos interrupções externasinterrupções externas excessõesexcessões falhas de máquinafalhas de máquina

Chaveamento de processosChaveamento de processos

Page 4: Zeque - Grad. CC1 Sistemas Operacionais l Processos Plano de Apresentação  O Modelo de Processo  Definição  Características  Hierarquia  Implementação

zeque - Grad. CC 4

O Modelo de ProcessoO Modelo de Processo

Hierarquia de ProcessosHierarquia de Processos Processos de SistemaProcessos de Sistema Processos de UsuárioProcessos de Usuário

Hierarquia na CriaçãoHierarquia na Criação Processo PAIProcesso PAI Processo FILHOProcesso FILHO

Page 5: Zeque - Grad. CC1 Sistemas Operacionais l Processos Plano de Apresentação  O Modelo de Processo  Definição  Características  Hierarquia  Implementação

zeque - Grad. CC 5

O Modelo de ProcessoO Modelo de Processo

Implementação de ProcessoImplementação de Processo Contexto:Contexto:

Representação de um processo por um conjunto de Representação de um processo por um conjunto de dadosdados

Registro descritor ou bloco de controle:Registro descritor ou bloco de controle:estado do processo, contador de instruções,estado do processo, contador de instruções,apontador para pilha de execução,apontador para pilha de execução,alocação de memória,alocação de memória,arquivos, dispositivosarquivos, dispositivoscontabilidade, escalonamentocontabilidade, escalonamento

Page 6: Zeque - Grad. CC1 Sistemas Operacionais l Processos Plano de Apresentação  O Modelo de Processo  Definição  Características  Hierarquia  Implementação

zeque - Grad. CC 6

O Modelo de ProcessoO Modelo de Processo

Estados de um ProcessoEstados de um Processo prontopronto bloqueadobloqueado em execuçãoem execução

Page 7: Zeque - Grad. CC1 Sistemas Operacionais l Processos Plano de Apresentação  O Modelo de Processo  Definição  Características  Hierarquia  Implementação

zeque - Grad. CC 7

O Modelo de ProcessoO Modelo de Processo

Transição de Estado de um ProcessoTransição de Estado de um Processodespacho (procId): prontodespacho (procId): prontoem execuçãoem execução

tempoesgotado(procId): em execução tempoesgotado(procId): em execução prontopronto

bloqueio(procId): em execução bloqueio(procId): em execução bloqueadobloqueado

desbloqueio(procId): bloqueado desbloqueio(procId): bloqueado prontopronto

Em execução

Bloqueado Pronto

Chamada aosistema

interrupção dorelógio

despacho

atendimento dopedido

Diagrama de transição de estados de um processo

Page 8: Zeque - Grad. CC1 Sistemas Operacionais l Processos Plano de Apresentação  O Modelo de Processo  Definição  Características  Hierarquia  Implementação

zeque - Grad. CC 8

O Modelo de ComunicaçãoO Modelo de Comunicação

Sistema Operacional

P1 P2 Pn

D1 D2 Dk

Chamada aosistema Despacho

InterrupçãoIniciaE/S

Page 9: Zeque - Grad. CC1 Sistemas Operacionais l Processos Plano de Apresentação  O Modelo de Processo  Definição  Características  Hierarquia  Implementação

zeque - Grad. CC 9

Comunicação InterprocessosComunicação Interprocessos

Condição de competiçãoCondição de competição Seções críticasSeções críticas Exclusão mútuaExclusão mútua

espera ocupadoespera ocupado Primitivas de comunicaçãoPrimitivas de comunicação

espera bloqueadoespera bloqueado MonitorMonitor Problemas ClássicosProblemas Clássicos

Page 10: Zeque - Grad. CC1 Sistemas Operacionais l Processos Plano de Apresentação  O Modelo de Processo  Definição  Características  Hierarquia  Implementação

zeque - Grad. CC 10

Comunicação InterprocessosComunicação Interprocessos

Exclusão MútuaExclusão Mútua Desabilitando interrupçõesDesabilitando interrupções Controlando por softwareControlando por software

(construção MUTEXBEGIN/MUTEXEND)(construção MUTEXBEGIN/MUTEXEND)

processo p1processo p1 processo p2processo p2faça até acabarfaça até acabar faça até acabarfaça até acabar calcule; calcule; calcule; calcule; MUTEXBEGIN MUTEXBEGIN MUTEXBEGIN MUTEXBEGIN acesse RC; acesse RC; acesse RC; acesse RC; MUTEXEND MUTEXEND MUTEXEND MUTEXEND calcule; calcule; calcule; calcule; fim. fim. fim. fim.

Page 11: Zeque - Grad. CC1 Sistemas Operacionais l Processos Plano de Apresentação  O Modelo de Processo  Definição  Características  Hierarquia  Implementação

zeque - Grad. CC 11

Comunicação InterprocessosComunicação Interprocessos

Exclusão MútuaExclusão Mútua MUTEXBEGIN/MUTEXENDMUTEXBEGIN/MUTEXEND

variáveis de bloqueiovariáveis de bloqueioMUTEXBEGIN:

enquanto (ocupado) faça ocupado = V;

MUTEXEND:ocupado = F;

alternância estritaalternância estritaMUTEXBEGIN:

enquanto (vez = MinhaVez) faça;

MUTEXEND:Vez = VezOutro;

Page 12: Zeque - Grad. CC1 Sistemas Operacionais l Processos Plano de Apresentação  O Modelo de Processo  Definição  Características  Hierarquia  Implementação

zeque - Grad. CC 12

Comunicação InterprocessosComunicação Interprocessos

Exclusão MútuaExclusão Mútua MUTEXBEGIN/MUTEXENDMUTEXBEGIN/MUTEXEND

solução de Petersonsolução de PetersonMUTEXBEGIN:

necessidade(minha) = V;enquanto (necessidade(outro)) faça se vez = minha então faça

necessidade(minha) = F;enquanto (vez = minha) faça ;necessidade(minha) = V;fim;

fim;

MUTEXEND:necessidade(minha) = F;vez = outro;

Page 13: Zeque - Grad. CC1 Sistemas Operacionais l Processos Plano de Apresentação  O Modelo de Processo  Definição  Características  Hierarquia  Implementação

zeque - Grad. CC 13

Comunicação InterprocessosComunicação Interprocessos

Exclusão MútuaExclusão Mútua instrução TSLinstrução TSL

(Test and Set Lock)(Test and Set Lock)

MUTEXBEGIN:TESTANDSET(ocupado)enquanto (codigo) faça

TESTANDSET(ocupado); fim;

MUTEXEND:ocupado = F;

Page 14: Zeque - Grad. CC1 Sistemas Operacionais l Processos Plano de Apresentação  O Modelo de Processo  Definição  Características  Hierarquia  Implementação

zeque - Grad. CC 14

Comunicação InterprocessosComunicação Interprocessos

sleep/wakeupsleep/wakeup semáforossemáforos contadores de eventoscontadores de eventos monitoresmonitores passagem de mensagenspassagem de mensagens outrasoutras

Page 15: Zeque - Grad. CC1 Sistemas Operacionais l Processos Plano de Apresentação  O Modelo de Processo  Definição  Características  Hierarquia  Implementação

zeque - Grad. CC 15

Primitivas de ComunicaçãoPrimitivas de Comunicação

lock/unlocklock/unlockdeclare (g) gate;declare (g) gate;

lock (g);lock (g);......unlock(g);unlock(g);

sleep/wakeupsleep/wakeupblock/wakeupblock/wakeupsleep;sleep;......wakeup(p);wakeup(p);

Page 16: Zeque - Grad. CC1 Sistemas Operacionais l Processos Plano de Apresentação  O Modelo de Processo  Definição  Características  Hierarquia  Implementação

zeque - Grad. CC 16

Primitivas de ComunicaçãoPrimitivas de Comunicação

SemáforosSemáforosdeclare (s) semaphore initial (i);

P(s); /* espera até que s>0 e então decrementa s */...V(s); /* incremanta s */

Page 17: Zeque - Grad. CC1 Sistemas Operacionais l Processos Plano de Apresentação  O Modelo de Processo  Definição  Características  Hierarquia  Implementação

zeque - Grad. CC 17

Primitivas de ComunicaçãoPrimitivas de Comunicação

Contadores de eventosContadores de eventosdeclare (e) event_counter;

Read(e); /* retorna o valor atual de e */Advance(e); /* incrementa e */Await(e,v); /* espera que e tenha um valor igual ou supeior a v */

declare (e) event;

Completion(e)= ...; /* true or false */...call p event(e);wait(e);

Page 18: Zeque - Grad. CC1 Sistemas Operacionais l Processos Plano de Apresentação  O Modelo de Processo  Definição  Características  Hierarquia  Implementação

zeque - Grad. CC 18

MonitorMonitor

Construção de concorrênciaConstrução de concorrência

Região Crítica

condiçãoj

condiçãok

Sinalizador

Pi

entradai

Visão abstrata do Conceito de Monitor

Pk

Pr PtPc

PbPj

Px

Pv

PaPq entradai+1

entradai-1

Page 19: Zeque - Grad. CC1 Sistemas Operacionais l Processos Plano de Apresentação  O Modelo de Processo  Definição  Características  Hierarquia  Implementação

zeque - Grad. CC 19

Monitor: Problemas ClássicosMonitor: Problemas Clássicos

Controle de um RecursoControle de um Recurso

resource:Monitor; declare(in_use) bit; declare(available) condition;

do in_use=false end do;

acquire:Entry; if in_use then wait(available); in_use=true; end acquire;

release:entry; in_use=false; signal(available); end release; end resource;

Page 20: Zeque - Grad. CC1 Sistemas Operacionais l Processos Plano de Apresentação  O Modelo de Processo  Definição  Características  Hierarquia  Implementação

zeque - Grad. CC 20

Monitor: Problemas ClássicosMonitor: Problemas Clássicos

O BUFFER CircularO BUFFER Circular

CircularBuffer: Monitor; declare(Buffer(5))character(80)varying; declare(head,tail,#Buffers,#Full)fixed; declare(BufferVacant,BufferOccupied)condition;

do Head=1; Tail=1; #Buffers=5; #Full=0; end;

Spool: Entry(Contents); ... end Spool;

UnSpool: Entry(Contents); ... end UnSpool; end CircularBuffer;

Page 21: Zeque - Grad. CC1 Sistemas Operacionais l Processos Plano de Apresentação  O Modelo de Processo  Definição  Características  Hierarquia  Implementação

zeque - Grad. CC 21

Monitor: Problemas ClássicosMonitor: Problemas Clássicos

O BUFFER Circular (cont)O BUFFER Circular (cont)

Spool: Entry(Contents); declare(Contents)character(*)varying;

if #Full=#Buffers then wait(BufferVacant); Buffer(Tail)=Contents; Tail=mod(Tail,#Buffers)+1; #Full=#Full+1; signal(BufferOccupied); end Spool;

Page 22: Zeque - Grad. CC1 Sistemas Operacionais l Processos Plano de Apresentação  O Modelo de Processo  Definição  Características  Hierarquia  Implementação

zeque - Grad. CC 22

Monitor: Problemas ClássicosMonitor: Problemas Clássicos

O BUFFER Circular (cont.)O BUFFER Circular (cont.)

UnSpool: Entry(Contents); declare(Contents)character(*)varying;

if #Full=0 then wait(BufferOccupied); Contents=Buffer(Head); Head=mod(Head,#Buffers)+1; #Full=#Full-1; signal(BufferVacant); end UnSpool;

Page 23: Zeque - Grad. CC1 Sistemas Operacionais l Processos Plano de Apresentação  O Modelo de Processo  Definição  Características  Hierarquia  Implementação

zeque - Grad. CC 23

Monitor: Problemas ClássicosMonitor: Problemas Clássicos

Leitores/EscritoresLeitores/Escritores

FileAccess: Monitor; declare(true,false)bit; declare(#Reading)bit; declare(activeWriter)bit; declare(OkToRead,OkToWrite)condition;

do true=1’b’; false=0’b’;#Reading=0; activeWriter=false; end;

Page 24: Zeque - Grad. CC1 Sistemas Operacionais l Processos Plano de Apresentação  O Modelo de Processo  Definição  Características  Hierarquia  Implementação

zeque - Grad. CC 24

Monitor: Problemas ClássicosMonitor: Problemas Clássicos

Leitores/Escritores (cont.)Leitores/Escritores (cont.)

StartRead: Entry; if activeWriter|empty(OkToWrite) then wait(OkToRead); #Reading=#Reading+1; signal(OkToRead); end StartRead;

EndRead: Entry; #Reading=#Reading-1; if #Reading=0 then signal(OkToWrite); end EndRead;

Page 25: Zeque - Grad. CC1 Sistemas Operacionais l Processos Plano de Apresentação  O Modelo de Processo  Definição  Características  Hierarquia  Implementação

zeque - Grad. CC 25

Monitor: Problemas ClássicosMonitor: Problemas Clássicos

Leitores/Escritores (cont.)Leitores/Escritores (cont.)

StartWrite: Entry; if #Reading=0|activeWriter then wait(OkToWrite); activeWriter=true; end StartWrite;

EndWrite: Entry; activeWriter=false; if empty(OkToRead) then signal(OkToRead) else signal(OkToWrite); end EndWrite; end FileAccess;