Sistemas Operacionais

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais
Advertisements

Sistemas Distribuídos
Deadlocks Professora: Lúcia Drummond. Deadlocks Recursos: hardware ou informação Preemptivo Não preemptivo Uso do Recurso: 1. Pedido (Request ou Open)
Sistemas Operacionais Sincronismo e Comunicação entre processos
Sistemas Operacionais Gerência de Processador
INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Sistemas Operacionais Gerência de Processador WebDesign Redes de Computadores.
Sincronismo e Comunicação entre Processos
Gerência do Processador
Gerência do Processador
Sincronismo e Comunicação entre Processos
Deadlocks - Impasses 3.1. Recurso 3.2. Introdução aos deadlocks
Escalonamento Linux.
Arquitetura de Sistemas Operacionais
Capítulo 7: Deadlocks.
Recursos Recurso: objeto físico ou abstrato necessário para que uma tarefa seja executada exemplos: tempo de CPU, memória principal, dispositivos de E/S,
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 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 Aula.
Capítulo 3 Deadlocks - Impasses 3.1. Recurso
Sistemas Operacionais
Escalonamento Aula 7.
Arquitetura de Sistemas Operacionais
Sincronização e Comunicação entre Processos
Claudio de Oliveira – Thread 09/03/10 20:13 Claudio de Oliveira –
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
Sistemas Operacionais Aula 4
Monitores.
Arquitetura de Sistemas Operacionais
Sistemas Operacionais
Gerência de Recursos Processador
Linguagem de Programação IV
Sistema Operacional Processos
Conteúdo Processos e threads Partes do processo
Prof. Alexandre Monteiro Recife
Capítulo 7: Deadlocks.
Processos.
SISTEMAS OPERACIONAIS I
SISTEMAS OPERACIONAIS I
Bruna Rafaella da Costa Moura Silvana dos Santos Lima
Sistemas Operacionais
Escalonamento de Processos e Threads
Processos.
GERÊNCIA DE PROCESSOS Disciplina: Sistemas Operacionais II.
Assunto: Transações concorrentes, Disciplina: Banco de dados II, profa. Cristina Paludo Max W. Ourique Ranieri R. Tremea
SISTEMAS OPERACIONAIS I
Sistemas Operacionais
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
Deadlocks Impasses Vinícius Pádua.
Deadlocks.
Programação Concorrente
Informática Aplicada Sistemas Operacionais: processos, tarefas e Algoritmos de escalonamento de processo Alunos: Marcelo Bonfim, Giovanni Faria, Diego.
Sistemas Operacionais
Faculdade Pernambucana - FAPE Sistemas Operacionais Prof. Flávio Gonçalves da Rocha.
Comunicação Interprocesso Condições de Disputa (corrida)
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
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:

Sistemas Operacionais Faculdades Network – 3o. Ano de B.S.I.

3o. Bimestre 21 - Comunicação Interprocessos 22 - Região Crítica e Exclusão Mútua 23 - Exclusão Mútua com Espera Ociosa 24 - Semáforos e Monitores 25 - Escalonamento e Estratégias de escalonamento 26 - Deadlock 27 - Trabalho em Sala: Problemas no Gerenciamento de Processos 28 - Revisão para a Avaliação bimestral. 29 - Avaliação Regimental Bimestral 30 - Correção e entrega das notas

IPC A comunicação entre processos, em inglês Inter-Process Communication (IPC), é o grupo de mecanismos que permite aos processos transferirem informação entre si. A execução de um processo pressupõe por parte do S.O., entre outras coisas, a criação de um contexto de execução próprio que, de certa forma, abstrai o processo dos componentes reais do sistema. Devido a esta virtualização dos recursos, o processo não tem conhecimento acerca dos outros processos e, como tal, não consegue trocar informação.

Transmissão de Mensagem Arquitetura de Sistemas Operacionais – Machado/Maia 7/6

Comunicação Direta e Indireta Arquitetura de Sistemas Operacionais – Machado/Maia 7/7

Sincronização e Comunicação Comunicação Interprocessos Arquitetura de Sistemas Operacionais – Machado/Maia 7/1

Concorrência em Programas Arquitetura de Sistemas Operacionais – Machado/Maia 7/2

Região Crítica e Exclusão Mútua Exclusão mútua (também conhecida pelo acrônimo mutex para mutual exclusion) é uma técnica usada em programação concorrente para evitar que dois processos ou threads tenham acesso simultaneamente a um recurso compartilhado, acesso esse denominado por Região Crítica.

Implementação Um meio simples para exclusão mútua é a utilização de um semáforo binário, isto é, que só pode assumir dois valores distintos, 0 e 1. O travamento por semáforo deve ser feito antes de utilizar o recurso, e após o uso o recurso deve ser liberado. Enquanto o recurso estiver em uso, qualquer outro processo que o utilize deve esperar a liberação. Porém, essa técnica pode causar vários efeitos colaterais, como deadlocks, em que dois processos obtêm o mesmo semáforo e ficam esperando indefinidamente um outro processo liberar o semáforo; e inanição, que é quando o processo nunca dispõe de recursos suficientes para executar plenamente.

Utilização do Semáforo Binário na Exclusão Mútua Exclusão Mútua com Espera Ociosa Arquitetura de Sistemas Operacionais – Machado/Maia 7/3

Estrutura do Monitor Arquitetura de Sistemas Operacionais – Machado/Maia 7/4

Estrutura do Monitor com Variáveis de Condição Arquitetura de Sistemas Operacionais – Machado/Maia 7/5

Algoritmos escalonadores Existem os algoritmos preemptivos e os não preemptivos. Os preemptivos são algoritmos que permitem que um processo seja interrompido durante sua execução, quer seja por força de uma interrupção de entrada/saída, quer seja em decorrência da politica de escalonamento adotada e aplicada por parte do escalonador de processos ou simplesmente por força do término da execução do processo. Após a interrupção deste processo, ocorre o que se chama de troca de contexto, que consiste em salvar o conteúdo dos registradores e a memoria utilizada pelo processo e conceder à outro processo o privilégio de executar na CPU, restaurando assim o contexto deste ultimo processo. Cabe ressaltar que nos algoritmos não preemptivos, por serem utilizados exclusivamente em sistemas monoprocessados, esse fato não ocorre, sendo cada programa executado até o fim.

Estratégias de Escalonamento FIFO (First in, first out) ou FCFS (First come, first served): Onde como seu próprio nome já diz, o primeiro que chega será o primeiro a ser executado; SJF (Shortest Job First): Onde o menor processo ganhará a CPU e atrás do mesmo formar uma fila de processos por ordem crescente de tempo de execução; SRT (Shortest Remaining Time): Neste algoritmo é escolhido o processo que possua o menor tempo restante, mesmo que esse processo chegue à metade de uma operação, se o processo novo for menor ele será executado primeiro; Algoritmo Loteria: O Sistema Operacional distribui tokens (fichas), numerados entre os processos, para o escalonamento é sorteado um numero aleatório para que o processo ganhe a vez na CPU, processos com mais tokens têm mais chance de receber antes a CPU. Escalonamento garantido: Este algoritmo busca cumprir promessas de alocação de CPU o mais preciso possível. RR (Round-Robin): Nesse escalonamento o sistema operacional possui um timer, chamado de quantum, onde todos os processos ganham o mesmo valor de quantum para rodarem na CPU. Com exceção do algoritmo RR e escalonamento garantido, todos os outros sofrem do problema de Inanição (starvation). Múltiplas Filas: São usadas várias filas de processos prontos para executar, cada processo e colocado em uma fila, e cada fila tem uma política de escalonamento própria e outra entre filas.

DEADLOCK Deadlock (interbloqueio, blocagem, impasse), no contexto do sistemas operacionais (SO), caracteriza uma situação em que ocorre um impasse e dois ou mais processos ficam impedidos de continuar suas execuções, ou seja, ficam bloqueados. Trata-se de um problema bastante estudado no contexto dos Sistemas Operacionais, assim como em outras disciplinas, como banco de dados, pois é inerente à própria natureza desses sistemas. O deadlock ocorre com um conjunto de processos e recursos não-preemptíveis, onde um ou mais processos desse conjunto está aguardando a liberação de um recurso por um outro processo que, por sua vez, aguarda a liberação de outro recurso alocado ou dependente do primeiro processo.

Condições Condição de não-preempção: recursos já alocados a processos não podem ser tomados a força. Eles precisam ser liberados explicitamente pelo processo que detém a sua posse; Condição de exclusão mútua: cada recurso ou está alocado a exatamente um processo ou está disponível; Condição de posse-e-espera: cada processo pode solicitar um recurso, ter esse recurso alocado para si e ficar bloqueado esperando por um outro recurso; Condição de espera circular: deve existir uma cadeia circular de dois ou mais processos, cada um dos quais esperando por um recurso que está com o próximo membro da cadeia.

Deadlock – Espera Circular Arquitetura de Sistemas Operacionais – Machado/Maia 7/8

Tratamento de Deadlock As situações de deadlock podem ser tratadas ou não em um sistema, e cabe aos desenvolvedores avaliar o custo/benefício que essas implementações podem trazer. Normalmente, as estratégias usadas para detectar e tratar as situações de deadlocks geram grande sobrecarga, podendo até causar um dano maior que a própria ocorrência do deadlock, sendo, às vezes, melhor ignorar a situação. Existem três estratégias para tratamento de deadlocks: Ignorar a situação; Detectar o deadlock e recuperar o sistema; e Evitar o deadlock;

Algoritmo do Avestruz Em ciência da computação, o algoritmo do avestruz é uma estratégia de ignorar problemas potenciais com base no fato de que eles podem ser extremamente raros — "enfie a cabeça na areia e finja que não há nenhum problema". Isso pressupõe é mais rentável permitir que o problema ocorra do que tentar a sua prevenção. Esta abordagem pode ser usada no tratamento de impasses (deadlocks) em programação concorrente se os impasses são considerados muito raros, e se o custo de detecção ou prevenção é alto. É um dos métodos de lidar com os impasses. Outros métodos são: evasão (algoritmo do banqueiro), a prevenção, detecção e recuperação.

Problemas no Gerenciamento de Processos Próxima Aula: Trabalho em sala em duplas! Problemas no Gerenciamento de Processos