Faculdade Pernambucana - FAPE Sistemas Operacionais Prof. Flávio Gonçalves da Rocha.

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais
Advertisements

Sistemas Distribuídos
Sistemas Operacionais Sincronismo e Comunicação entre processos
SISTEMAS OPERACIONAIS (SO) Aula 5 Luciana A. F. Martimiano 2002
Sistemas Operacionais Gerência de Processador
AGENDAMENTO DE DOIS NÍVEIS
INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Sistemas Operacionais Gerência de Processador WebDesign Redes de Computadores.
Gerência do Processador
Sincronismo e Comunicação entre Processos
Escalonamento Linux.
Meta - heurísticas Prof. Aurora
Monitores.
Sistemas Operacionais II
SSC SISTEMAS OPERACIONAIS I Aulas 6 – Escalonamento de Processos
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.
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.
Capítulo 3 Deadlocks - Impasses 3.1. Recurso
Sistemas Operacionais
Escalonamento de Processos
Sincronização de Processos (5) - Monitores -
Sincronização de Processos (6) - Troca de Mensagens -
Escalonamento Aula 7.
Arquitetura de Sistemas Operacionais
Curso Técnico em Manutenção e Suporte em Informática
Sincronização e Comunicação entre Processos
Sistemas Operacionais Adriana Vettorazzo
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
Sistemas Operacionais Aula 4
Monitores.
Unidade 3 Controle de Concorrência
Gerência de Recursos Processador
Sistemas Operacionais Profª Adriana Vettorazzo
SISTEMAS OPERACIONAIS I
Escalonamento com prioridades
Capítulo 2 Processos e Threads 2.1 Processos 2.2 Threads
Sistemas Operacionais
Escalonamento de Processos e Threads
GERÊNCIA DE PROCESSOS Disciplina: Sistemas Operacionais II.
SISTEMAS OPERACIONAIS I
Sistemas Operacionais
Sistemas Operacionais
Escalonamento de Processos
Capítulo 4: Processos.
Faculdade Pernambucana - FAPE
SISTEMAS OPERACIONAIS
Engenharia de Sistemas Embarcados Aula 9: Salvo RTOS.
Exclusão Mútua com Espera Ociosa (1)
Gerenciamento de Processos
Bruno Affonso Diego Chiquito Ruan Berté.   O código de Escalonamento no Windows é implementado no Kernel.  A rotina que desempenha as tarefas do Escalonador.
Processos Concorrentes
Gerenciamento de Memória Sistemas Recentes
Redes e Sistemas Distribuídos II – Cód Prof. MSc. Ronnison Reges Vidal.
Implementação Distribuída Escalonamento de Tempo-Real Prof. Dr. Norian Marranghello Grupo 8 Daniela Gonçalves Strozi – Sayuri Watanabe
Sistemas Operacionais Distribuídos
Programação Concorrente
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
Comunicação Interprocesso Condições de Disputa (corrida)
Gerência de Memória. Memória Considerações: Recurso caro e escasso; Programas só executam se estiverem na memória principal; Quanto mais processos residentes.
Faculdade Pernambucana - FAPE Sistemas Operacionais Prof. Flávio Gonçalves da Rocha.
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 IESP - FATEC-PB Professor: Gustavo Wagner
Bruna Cavallero Martins Universidade Católica de Pelotas.
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
Transcrição da apresentação:

Faculdade Pernambucana - FAPE Sistemas Operacionais Prof. Flávio Gonçalves da Rocha

df Comunicação entre Processos Monitores Deve-se ter muito cuidado ao utilizar semáforos.  Ex: código do produtor com os dois down invertidos, ou seja, o down do mutex antes do down do empty. Se o buffer estiver cheio o produtor é bloqueado com mutex em 0 O consumidor fazendo down no mutex também será bloqueado resultando em deadlock Para tornar mais fácil escrever programas foi proposta uma primitiva de sincronização de nível mais alto chamada de monitor.

Comunicação entre Processos Monitores df Um monitor é uma coleção de variáveis, de procedimentos e de estruturas de dados que são agrupados em um tipo especial de módulo ou de pacote. Os monitores facilitam o uso de semáforos

df Comunicação entre Processos Monitores Um Monitor

Comunicação entre Processos Monitores df Principais aspectos do uso de monitores  Todas as regiões críticas não são codificadas dentro do próprio processo, mas são transformadas em procedimentos do monitor  As estruturas de dados internas do monitor só podem ser acessadas por seus procedimentos  Quando um processo referencia dados compartilhados ele chama um procedimento do monitor  Só um processo pode estar ativo em um monitor em qualquer instante.

Comunicação entre Processos Monitores df  Monitores são uma construção de linguagem de programação  Cabe ao compilador implementar a exclusão mútua Implementar exclusão mútua é facil mas não é suficiente, é preciso encontrar uma maneira de bloquear os processos  Para o controle de bloqueio são usadas variáveis de condição São variáveis associadas a condições que provocam a suspensão ou ativação do processo dentro do monitor.

Comunicação entre Processos Monitores df  São declaradas dentro do monitor As variáveis de condições são usadas por dois procedimentos especiais:  wait(condicao): O monitor bloqueia o processo. Há uma estrutura de dados associada que guarda as informações do processo  signal(condicao): O monitor desbloqueia um processo da fila associada à variável de condição

Comunicação entre Processos Monitores df Implementações propostas quando ocorrer um SIGNAL Solução de Hoare  O processo que fez a chamada é imediatamente bloqueado  O processo recentemente desbloqueado passa a executar. Solução de Brinch Hansen  O processo que fez a chamada conclui a operação em curso

Comunicação entre Processos Monitores df Solução de Brinch Hansen (Continuação)  O processo recentemente desbloqueado aguarda que nenhum processo esteja executando dentro do monitor.

Comunicação entre Processos Monitores df Um esboço do problema produtores e consumidores com monitores. Só um procedimento de monitor está ativo por vez. O buffer tem N entradas.

Comunicação entre Processos Passagem de Mensagem df Semáforos e monitores foram projetados para resolver problemas da exclusão mútua em uma ou mais CPUs, com memória compartilhada/comum Para sistemas distribuídos estas soluções não atendem, é preciso de algo mais: passagem de mensagem A passagem de mensagem é um método de comunicação interprocesso que utiliza duas primitivas, SEND e RECEIVE, que, como os semáforos e, ao contrário dos monitores são chamadas de sistema.

Comunicação entre Processos Passagem de Mensagem df Questões de Projeto para Sistemas de Passagem de Mensagem  Controle de erro (perda de mensagens ou do próprio reconhecimento de entrega)  Identificação dos processos  Autenticação  Desempenho

Comunicação entre Processos Passagem de Mensagem df O problema dos produtores e dos consumidores com N mensagens

Escalonamento de Processos df Quando mais de um processo é executável, cabe ao SO decidir qual executar primeiro. A parte do SO que toma essa decisão é chamada Agendador.  O algoritmo que utiliza é chamado algoritmo de agendamento. Vários critérios vem à mente sobre o que constitui um bom algoritmo de agendamento: 1. A imparcialidade 2. A eficiência 3. Tempo de resposta 4. Turnaround

Escalonamento de Processos df 5. Throughput Algumas das metas descritas são contraditórias  Para minimizar o tempo de resposta para usuários interativos, o agendador não deve executar nenhum trabalho de lote (isso violaria o critério 4)  Qualquer algoritmo de agendamento que favorece alguma classe de trabalho acaba prejudicando outra classe de trabalho Uma outra complicação para o agendador é que os processos são únicos e imprevisíveis  O uso de interrupção de relógio garante que nenhum processo executará por muito tempo

Escalonamento de Processos df A estratégia de permitir que processos que são logicamente executáveis sejam temporiamente suspensos é chamada de agendamento preemptivo.  No agendamento não-preemptivo o processo executa até concluir (antigos sistemas de lote)

Escalonamento de Processos df Agendamento Round Robin Mais simples, mais antigo e mais utilizado Fácil de implementar A cada processo é atribuído um intervalo de tempo, chamado quantum, durante o qual lhe é permitido executar.  Se o processo ainda está executando no fim do quantum, é feita a preempção da CPU e ela é dada a outro processo.  Se o processo bloqueiou ou terminou antes de o quantum ter passado, é feita a comutação da CPU quando o processo bloqueia, naturalmente.

Escalonamento de Processos df Agendamento Round Robin BAFDG Processo atual Próximo Processo (a) FBDGA Processo atual (b) Agendamento round robin. (a) Lista de processos executáveis. (b) Lista de processos executáveis depois que B utiliza todo seu quantum.

Escalonamento de Processos df Agendamento Round Robin Uma questão importante é o tamanho do quantum  Quantum muito pequeno gera muitas comutações de processos e a eficiência da CPU é reduzida  Quantum muito longo a resposta pode ser demorada para curtas requisições interativas Um quantum em torno de 100ms é freqüentemente um compromisso razoável.

Escalonamento de Processos df Agendamento por Prioridade Processos podem ter prioridades diferentes A necessidade de levar em conta fatores externos conduz ao agendamento por prioridade.  A cada processo é atribuído uma prioridade, e o processo executável com a maior prioridade recebe permissão para executar. A prioridade de um processo em execução pode ser diminuída a cada interrupção de relógio para evitar que um processo execute indefinidamente

Escalonamento de Processos df Agendamento por Prioridade Alternativamente, a cada processo pode ser atribuído um quantum máximo em que lhe é permitido usar a CPU continuamente.  Quando esse quantum é utilizado é dada uma chance de executar ao próximo processo com maior prioridade As prioridades podem ser atribuídas aos processos estática ou dinamicamente

Escalonamento de Processos df Agendamento por Prioridade Muitas vezes é conveniente agrupar processos em classes de prioridade e utilizar agendamento por prioridade entre as classes, mas agendamento round robin dentro da classe.

Escalonamento de Processos df Agendamento por Prioridade Prioridade 4 Prioridade 3 Prioridade 2 Prioridade 1 Cabeçalhos de Fila Processos executáveis (Maior Prioridade) (Menor Prioridade) Um algoritmo de agendamento com quatro classes de prioridade

Escalonamento de Processos df Múltiplas Filas Útil em situações nas quais processos são facilmente classificáveis em diferentes grupos (Ex.: interativos e batch); Prioridades são atribuídas à classes de processos (de acordo com o tipo de processamento), cada qual com sua própria fila de prontos com seu mecanismo de seleção  Cada fila pode ter diferentes necessidades de escalonamento (algoritmo diferente);

Escalonamento de Processos df Múltiplas Filas  Os processos devem ser previamente classificados para serem enviados à fila correspondente. Processos das classes de maior prioridade recebem o processador  Os processos das classes de menor prioridade só receberão o processador se as filas de prontos das outras classes (de maior prioridade) estiverem vazias

Escalonamento de Processos df Múltiplas Filas

Escalonamento de Processos df O Menor Job Primeiro (Shortest-Job-First) Apropriado para o processamento de Jobs em lote, para os quais o tempo de execução é conhecido com antemão É um algoritmo não preemptivo no qual o job na fila de espera com o menor tempo total estimado de processamento é executado em seguida. Esse algoritmo reduz o tempo médio de espera sobre o algoritmo FIFO.

Escalonamento de Processos df O Menor Job Primeiro (Shortest-Job-First) ABCDBCDA Tempo de execução Média de retorno: ( )/4 = 14 minutos Média de retorno: ( )/4 = 11 minutos Agendamento FIFO Agendamento Menor Job Primeiro

Escalonamento de Processos df O Menor Job Primeiro (Shortest-Job-First) Pode ser usado para processos interativos também desde que seja feito estimativas do tempo de execução do comando tomando por base as execuções passadas. O algoritmo do job mais curto primeiro só é ótimo quando todos os jobs estão disponíveis simultaneamente.

Escalonamento de Processos df Escalonamento Dirigido à Política Ás vezes acontece de um processo ter muitos filhos que executam sob seu controle.  É plenamente possível que o processo principal tenha uma excelente idéia de quais de seus filhos são os mais importantes (ou de tempo crítico) e quais são menos. Como os agendadores anteriores não aceita qualquer entrada de processos de usuário sobre decisões de agendamento, raramente, o agendador faz a melhor escolha.

Escalonamento de Processos df Escalonamento Dirigido à Política A solução é separar o mecanismo de agendamento da política de agendamento.  O algoritmo de agendamento é parametrizado de alguma maneira, mas os parâmetros podem ser preenchidos por processos de usuários.  Ex: o kernel utiliza um algoritmo de agendamento por prioridade, mas fornece uma chamada de sistema por meio da qual um processo pode definir (e alterar) as prioridades de seus filhos.

Escalonamento de Processos df Escalonamento Dirigido à Política Mesmo que os pais não façam o agendamento eles podem controlar em detalhe como seus filhos são agendados. O mecanismo está no kernel, mas a política é configurada por um processo de usuário.

Escalonamento de Processos df Agendamento de Dois Níveis Se a memória principal disponível for insuficiente, alguns dos processos executáveis terão de permanceer no disco, inteiros ou em parte.  Carregar processo de disco é muito mais demorado do que a comutação de um processo já em memória.  Solução: usar um agendador em dois níveis. O agendador de nível mais baixo fica preocupado com fazer uma escolha entre os processos executáveis que estão na memória principal.

Escalonamento de Processos df Agendamento de Dois Níveis O agendador de nível mais alto fica preocupado com o movimento dos processos de um lado a outro entre memória e disco. a, b, c, d a, b, c, d a, d, e, h e, f, g, h e, f, g, h Processos Na memória principal Processos no disco Um agendador de dois níveis deve mover processos entre disco e memória e também eleger processos para executar na memória. Três instantes diferentes de tempo são representados por (a), (b) e (c) (a)(b)(c) b,c, f,g

Escalonamento de Processos df Agendamento de Dois Níveis Entre os critérios que o agendador de nível mais alto poderia utilizar para tomar suas decisões estão os seguintes:  Quanto tempo se passou desde que o processo foi levado para o disco ou para a memória?  Quanto tempo de CPU o processo teve recentemente?  Qual é o tamanho do processo? (Os pequenos não atrapalham)  Qual o nível de prioridade do processo?