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

Slides:



Advertisements
Apresentações semelhantes
Semáforos Eduardo Nicola F. Zagari
Advertisements

Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais Aula II
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
SISTEMAS OPERACIONAIS (SO) Aula 5 Luciana A. F. Martimiano 2002
Sincronização de Processos (1)
Capitulo 6: Entrada e Saída
Sistema Operacional Sincronização e Comunicação entre Processos
Sistemas operacionais
Profa. Priscila Facciolli
Programação Concorrente
Arquitetura de Sistemas Operacionais
Monitores.
Capítulo 6: Sincronização de Processos
Sistemas Operacionais II
Sistemas Operacionais
Problemas com Entrada e Saída
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC SISTEMAS OPERACIONAIS I Aula.
SSC SISTEMAS OPERACIONAIS I
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC SISTEMAS OPERACIONAIS I Turmas.
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC SISTEMAS OPERACIONAIS I Turmas.
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC SISTEMAS OPERACIONAIS I Aulas.
Walfredo Cirne Threads Walfredo Cirne
Sincronização de Processos (4)
Sincronização de Processos (1)
Sincronização de Processos (3)
Sincronização de Processos (5) - Monitores -
Sincronização e Comunicação entre Processos
e comunicação entre Processos
Threads.
Sistemas Operacionais
Exclusão Mútua A solução mais simples para evitar os problemas de compartilhamento é impedir que dois ou mais processos estiver acessando determinado recurso,
Sistemas Operacionais I
Monitores.
Unidade 1-1 Processos e Threads
Unidade 3 Controle de Concorrência
Programação Avançada Processos, Threads e IPC
Sistemas Operacionais
Sistemas operacionais
Processo Entidade dinâmica e efêmera
Sistemas Operacionais Profª Adriana Vettorazzo
Disciplina: Sistema Operacional Professor: Luciano Ricardi Scorsin
Sistemas Distribuídos
Suporte de hardware à multiprogramação
Conceito de processos Faculdade PITÁGORAS – Agosto de 2011
Processos.
Processos.
Computação L1: Infra-Estrutura Básica
Capítulo 2 Processos e Threads 2.1 Processos 2.2 Threads
SISTEMAS OPERACIONAIS I
Semáforos n Variáveis compartilhadas são globais n Acesso a variáveis ocorre em procedimentos, mas podem estar espalhados pelo programa n Exige consulta.
Sistemas operacionais
Sistemas Operacionais
S ISTEMAS OPERACIONAIS PROCESSOS Horácio Ribeiro.
Remote Procedure Call (RPC) e Rendezvous
Faculdade Pernambucana - FAPE
Video Capítulo 7: Sincronização de Processos. Silberschatz, Galvin and Gagne  Video Operating System Concepts Assuntos n Cenário n O problema.
Exclusão Mútua com Espera Ociosa (1)
Processos Concorrentes
Capítulo 2 Processos e Threads 2.1 Processos 2.2 Threads
Sistemas Operacionais 6º Semestre Aula 6 Prof. Carlos Vinícius SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL FACULDADE DE TECNOLOGIA.
Comunicação Interprocesso Condições de Disputa (corrida)
Faculdade Pernambucana - FAPE Sistemas Operacionais Prof. Flávio Gonçalves da Rocha.
Sistemas Operacionais Sincronização e Comunicação Introdução Aplicações concorrentes (mecanismos de sincronização: variáveis compartilhadas e troca de.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais IESP - FATEC-PB Professor: Gustavo Wagner.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais FATEC-PB Professor: Gustavo Wagner
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais Prof.: Gustavo Wagner FATEC-PB.
Transcrição da apresentação:

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

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

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

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

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

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

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

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

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

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.

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;

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;

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;

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

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);

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 */

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);

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

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;

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;

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;

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;

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;

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;

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;