A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "Zeque - Grad. CC1 Sistemas Operacionais l Processos Plano de Apresentação  O Modelo de Processo  Definição  Características  Hierarquia  Implementação."— Transcrição da apresentação:

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

2 zeque - Grad. CC2 O Modelo de Processo Definição Definição l Um processo é um programa que está sendo executado l Um processo é uma atividade assíncrona Dados Inicializados Texto heap pilha do usuário argv, envp Área de usuário pilha do processo no kernel bss-block started by symbol Tabela de símbolos Dados Inicializados Texto Cabeçalho Número MágicoUNIX:ProgramasProcessos Arquivo Executável Espaço de Endereços

3 zeque - Grad. CC3 O Modelo de Processo Características Características l Processos seqüenciais l Multiprogramação l Processamento de Interrupçoes  Tipos de Interrupções  chamadas ao supervisor  interrupções de dispositivos  interrupções externas  excessões  falhas de máquina  Chaveamento de processos

4 zeque - Grad. CC4 O Modelo de Processo Hierarquia de Processos Hierarquia de Processos l Processos de Sistema l Processos de Usuário Hierarquia na Criação Hierarquia na Criação l Processo PAI l Processo FILHO

5 zeque - Grad. CC5 O Modelo de Processo Implementação de Processo Implementação de Processo l Contexto: Representação de um processo por um conjunto de dados l Registro descritor ou bloco de controle: estado do processo, contador de instruções, apontador para pilha de execução, alocação de memória, arquivos, dispositivos contabilidade, escalonamento

6 zeque - Grad. CC6 O Modelo de Processo Estados de um Processo Estados de um Processo l pronto l bloqueado l em execução

7 zeque - Grad. CC7 O Modelo de Processo Transição de Estado de um Processo Transição de Estado de um Processo despacho (procId): pronto  em execução tempoesgotado(procId): em execução  pronto bloqueio(procId): em execução  bloqueado desbloqueio(procId): bloqueado  pronto Em execução Bloqueado Pronto Chamada ao sistema interrupção do relógio despacho atendimento do pedido Diagrama de transição de estados de um processo

8 zeque - Grad. CC8 O Modelo de Comunicação Sistema Operacional P1P1 P2P2 PnPn D1D1 D2D2 DkDk Chamada ao sistema Despacho Interrupção Inicia E/S

9 zeque - Grad. CC9 Comunicação Interprocessos l Condição de competição l Seções críticas l Exclusão mútua  espera ocupado l Primitivas de comunicação  espera bloqueado l Monitor l Problemas Clássicos

10 zeque - Grad. CC10 Comunicação Interprocessos Exclusão Mútua Exclusão Mútua l Desabilitando interrupções l Controlando por software (construção MUTEXBEGIN/MUTEXEND) processo p1processo p2 faça até acabarfaça até acabar calcule; calcule; MUTEXBEGIN MUTEXBEGIN acesse RC; acesse RC; MUTEXEND MUTEXEND calcule; calcule; fim. fim.

11 zeque - Grad. CC11 Comunicação Interprocessos Exclusão Mútua Exclusão Mútua l MUTEXBEGIN/MUTEXEND  variáveis de bloqueio  variáveis de bloqueio MUTEXBEGIN: enquanto (ocupado) faça ocupado = V; MUTEXEND: ocupado = F;  alternância estrita  alternância estrita MUTEXBEGIN: enquanto (vez = MinhaVez) faça ; MUTEXEND: Vez = VezOutro;

12 zeque - Grad. CC12 Comunicação Interprocessos Exclusão Mútua Exclusão Mútua l MUTEXBEGIN/MUTEXEND  solução de Peterson  solução de Peterson MUTEXBEGIN: 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;

13 zeque - Grad. CC13 Comunicação Interprocessos Exclusão Mútua Exclusão Mútua l instrução TSL (Test and Set Lock) MUTEXBEGIN: TESTANDSET(ocupado) enquanto (codigo) faça TESTANDSET(ocupado); fim; MUTEXEND: ocupado = F;

14 zeque - Grad. CC14 Comunicação Interprocessos l sleep/wakeup l semáforos l contadores de eventos l monitores l passagem de mensagens l outras

15 zeque - Grad. CC15 Primitivas de Comunicação lock/unlock declare (g) gate; lock (g);... unlock(g); lock/unlock declare (g) gate; lock (g);... unlock(g); sleep/wakeup block/wakeup sleep;... wakeup(p); sleep/wakeup block/wakeup sleep;... wakeup(p);

16 zeque - Grad. CC16 Primitivas de Comunicação Semáforos Semáforos declare (s) semaphore initial (i); P(s); /* espera até que s>0 e então decrementa s */... V(s); /* incremanta s */

17 zeque - Grad. CC17 Primitivas de Comunicação Contadores de eventos Contadores de eventos declare (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);

18 zeque - Grad. CC18 Monitor l Construção de concorrência Região Crítica condição j condição k Sinalizador PiPi entrada i Visão abstrata do Conceito de Monitor PkPk PrPr PtPt PcPc PbPb PjPj PxPx PvPv PaPa PqPq entrada i+1 entrada i-1

19 zeque - Grad. CC19 Monitor: Problemas Clássicos l Controle 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;

20 zeque - Grad. CC20 Monitor: Problemas Clássicos l O 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;

21 zeque - Grad. CC21 Monitor: Problemas Clássicos l 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;

22 zeque - Grad. CC22 Monitor: Problemas Clássicos l 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;

23 zeque - Grad. CC23 Monitor: Problemas Clássicos l Leitores/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;

24 zeque - Grad. CC24 Monitor: Problemas Clássicos l 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;

25 zeque - Grad. CC25 Monitor: Problemas Clássicos l 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;


Carregar ppt "Zeque - Grad. CC1 Sistemas Operacionais l Processos Plano de Apresentação  O Modelo de Processo  Definição  Características  Hierarquia  Implementação."

Apresentações semelhantes


Anúncios Google