SISTEMAS OPERACIONAIS



Documentos relacionados
Revisão Ultima aula [1/2]

Sincronização e Comunicação entre Processos. Adão de Melo Neto

Sistemas Distribuídos

Processos e Threads (partes I e II)

Sistemas Operacionais Aula 08: Sincronização de Processos. Ezequiel R. Zorzal

Sistemas Operacionais

Recursos. Um recurso é ou um dispositivo físico (dedicado) do hardware, ou Solicitar o recurso: esperar pelo recurso, até obtê-lo.

Sistemas Operacionais Sincronização e Comunicação entre Processos

Sistemas Operacionais Processos e Threads

Exclusão Mútua Distribuída

Sistemas Operacionais

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

Ministério da Educação Secretaria de Educação Profissional e Tecnológica Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul

Udesc/Ceplan Bacharelado em Sistemas de Informação Sistemas Operacionais. Prof. Alexandre Veloso

void echo(); { chin = getchar(); chout = chin; putchar(chout); }

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Aula 3. Sistemas Operacionais. Prof: Carlos Eduardo de Carvalho Dantas

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Métodos de Sincronização do Kernel

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 04 - Concorrência. Cursos de Computação

Sistemas Operacionais

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA

Sistemas Operacionais. Prof. André Y. Kusumoto

Manual de Administração DPS Printer 2.1 NDDigital S/A - Software

Notas da Aula 4 - Fundamentos de Sistemas Operacionais

Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto

Monitores. Conceito Sistemas Operacionais II

Sistemas Operacionais

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

Prof.: Roberto Franciscatto. Capítulo 1.1 Introdução

Comunicação entre processos

Sistemas Operacionais

Sistemas Operacionais. Capítulo 7 Sincronização e Comunicação entre Processos

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura Exemplo

MANUAL DE UTILIZAÇÃO SISTEMA DE CADASTRO INTRANET

Gerência do Processador

Engenharia de Software III

E/S PROGRAMADA E/S PROGRAMADA E/S USANDO INTERRUPÇÃO

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Manual de Instalação... 2 RECURSOS DESTE RELÓGIO REGISTRANDO O ACESSO Acesso através de cartão de código de barras:...

Capítulo 2 Processos e Threads Prof. Fernando Freitas

Organização e Arquitetura de Computadores

Threads em Java. Sistemas Operacionais - Laboratório Professor Machado

Arquitetura de Sistemas Operacionais

SISTEMA INTEGRADO DE GESTÃO ACADÊMICA

SISTEMAS DISTRIBUÍDOS

Manual Sistema Mó vel Msys Cómercial

Lista de Exercícios. Vetores

AULA 5 Sistemas Operacionais

Sistemas Operacionais

BC1518-Sistemas Operacionais. Prof. Marcelo Z. do Nascimento

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

43 11 Relatórios, Listagens e Exportações para Excel, TXT e HTML

Fundap. Programa de Estágio. Manual de Utilização do Sistema de Administração de Bolsas de Estágio. Plano de Estágio

7 Processos. 7.1 Introdução

Sistemas Operacionais

O programa Mysql acompanha o pacote de instalação padrão e será instalado juntamente com a execução do instalador.

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

Máquina de estados UNIX O

Máquina de estados UNIX O. Sistemas Operacionais 2008/1Profa. Patricia S.O. computação: recursos D. S.O S.O. controla eventos no sistema de

M A N U A L D O SISTE M A D E PR O PO STA E L E TR Ô N ICA - SPE

Sistemas Distribuídos. Aleardo Manacero Jr.

Introdução à Computação: Sistemas Operacionais II

Revisão Ultima aula [1/2]

Tutorial do módulo Carteira Nacional de Militante

Programação Concorrente em java - Exercícios Práticos Abril 2004

O texto desta seção foi publicado em o

Tutorial - Monitorando a Temperatura de Servidores Windows

30 ANOS DE SOCIALISMO

Sumário INTRODUÇÃO Acesso ao Ambiente do Aluno Ferramentas e Configurações Ver Perfil Modificar Perfil...

ESTUDO DE CASO WINDOWS VISTA

Série de Problemas - Sincronização com Semáforos

Permitir a troca de mensagens de texto entre os dois alunos; Permitir que um aluno enviasse para o outro uma cópia de prova;

Sincronização de Processos (5) Troca de Mensagens

NOTA FISCAL ELETRÔNICA

28/9/2010. Unidade de Controle Funcionamento e Implementação

BARRAMENTO DO SISTEMA

Sistema Operacional. Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais

Entrada e Saída. Interface entre periféricos, processador e memória. Fonte: Minho - Portugal 1

Estruturas do Sistema de Computação

Notas da Aula 6 - Fundamentos de Sistemas Operacionais

Gerenciamento de Memória

INDICE 1. INTRODUÇÃO CONFIGURAÇÃO MÍNIMA INSTALAÇÃO INTERLIGAÇÃO DO SISTEMA ALGUNS RECURSOS SERVIDOR BAM...

Manual Sistema de Autorização Online GW

9 - Sincronização e Comunicação entre Processos

Manual do usuário. Softcall Java. versão 1.0.5

Deadlocks. Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

5 Entrada e Saída de Dados:

Arquitetura de Computadores. Tipos de Instruções

Disciplina de Sistemas Distribuídos. Sincronização em SD. Prof. M.Sc. Alessandro Kraemer Kraemer

Sistemas Operacionais

Algoritmos e Estruturas de Dados II. Trabalho Prático 2

PROVA DE CONHECIMENTOS ESPECÍFICOS PROGRAMADOR DE COMPUTADOR. Analise as seguintes afirmativas sobre os modelos de processos de software:

Organização e Arquitetura de Computadores I

Transcrição:

SISTEMAS OPERACIONAIS Sincronização entre Processos Andreza Leite andreza.leite@univasf.edu.br

Sincronização Freqüentemente, os processos precisam se comunicar com outros processos. Isto ocorre quando os processos compartilham ou trocam dados entre si. Há a necessidade dessa comunicação ocorrer, de preferência, de uma forma bem estruturada e sem interrupções. As interrupções limitam o desempenho e aumentam a complexidade.

Sincronização Três tópicos serão abordados: Como um processo passa informação para um outro processo. Como garantir que dois ou mais processos não invadam uns aos outros. Como garantir uma seqüência adequada quando existe uma dependência entre processos.

Sincronização Abordaremos diversos mecanismos para tratar essas questões: Condições de disputa Regiões críticas Exclusão mútua Dormir e acordar Semáforos

Sincronização Em alguns SOs, processos podem compartilhar um armazenamento comum, onde cada um é capaz de ler e escrever. Este armazenamento comum pode, por exemplo, estar na memória principal, em um arquivo compartilhado entre outros.

Comunicação e Sincronização Exemplo de comunicação interprocessos: spool de impressão. Quando um processo quer imprimir um arquivo, este processo entra com o nome do arquivo em um diretório de spool especial. Um outro processo, verifica periodicamente se existe algum arquivo para ser impresso, se houver, os imprime e remove seus nomes do diretório.

Comunicação e Sincronização Suponha que o diretório de spool tenha um grande número de vagas numeradas 0, 1, 2,... Cada vaga é capaz de conter um nome de arquivo. Suponha também que existem duas variáveis compartilhadas. Out aponta para o próximo arquivo a ser impresso. In Aponta para a próxima vaga livre do diretório.

Sincronização Em um dado instante, as vagas 4 a 6 estão preenchidas (com os nomes dos arquivos na fila de impressão), e In = 7. Problema Quase simultaneamente, os processos A e B decidem colocar um arquivo na fila de impressão.

Condições de Disputa Dois processos que querem ter acesso simultâneo a memória compartilhada.

Condições de Disputa Pode ocorrer o seguinte: O processo A lê In e armazena o valor 7 na sua variável local chamada proxima_vaga_livre. Logo em seguida, ocorre uma interrupção do relógio e a CPU decide que o processo A já executou o suficiente e então alterna para o processo B. O processo B também lê In e obtém igualmente o valor 7. Da mesma forma, B armazena o 7 na sua variável local próxima_vaga_livre. Neste momento, ambos os processos tem a informação de que a vaga livre é a 7. B prossegue sua execução, armazenando o nome do seu arquivo na vaga 7 e atualiza In para 8.

Condições de Disputa Em seguida, o processo A executa novamente de onde parou. Verifica a variável local proxima_vaga_livre, que é igual a 7, e então escreve o nome do seu arquivo na vaga 7, apagando o nome que B acabou de colocar lá. O processo A atualiza o valor de In para 8. Resultado O processo B nunca terá seu arquivo impresso. Situações como esta são chamadas de condições de disputa.

Regiões Críticas A parte do programa que gera uma condição de disputa é chamada de região crítica ou seção crítica. Programas ou partes de programas que não geram condições de disputa são chamados de códigos reentrante ou código público.

Condições de Disputa Como evitar as condições de disputa? Prover algum meio de assegurar que outros processos sejam impedidos de usar uma variável ou um arquivo compartilhado que já estiver em uso por outro processo Exclusão mútua.

Regiões Críticas Quatro condições necessárias para garantir a exclusão mútua: 1. Nunca dois processos podem estar simultaneamente em suas regiões críticas. 2. Nada pode ser afirmado sobre a velocidade ou sobre o número de CPUs. 3. Nenhum processo executando fora de sua região crítica pode bloquear outros processos. 4. Nenhum processo deve esperar eternamente para entrar em sua região crítica.

Regiões Críticas Comportamento desejado. Exclusão mútua usando regiões críticas.

Exclusão Mútua Alternativas para realizar exclusão mútua com espera ociosa. Desabilitar interrupções. Variáveis de impedimento/trava (lockvariables). Alternância obrigatória. Solução/Algoritmo de Peterson. (Permite a dois ou mais processos ou subprocessos compartilharem um recurso sem conflitos, utilizando apenas memória compartilhada para a comunicação)

Dormir e Acordar A solução de Peterson é correta mas apresenta o defeito de precisar da espera ociosa. Quando quer entrar na região crítica um processo verifica se sua entrada é permitida. Se não for, ele ficará em um laço até que possa entrar. Gasta tempo de CPU Observemos as primitivas de comunicação entre processos que bloqueiam em vez de gastar tempo de CPU quando não podem entrar em sua região crítica Uma das mais simples é o par sleep e wakeup

Dormir e Acordar Sleep é uma chamada de sistema que faz com que o processo que a chama durma/ fique suspenso até que outro processo o desperte. A chamada wakeup tem como parâmetro o processo a ser despertado Estas chamadas podem ainda podem ter outro parâmetro: um endereço de memória para equiparar os wakeups a seus respectivos sleeps.

Problema do produtor- consumidor

Semáforos Uma variável inteira para contar o número de sinais de acordar salvos para uso futuro. Este pode conter valor 0 (nenhum sinal de acordar salvo) ou valor positivo (um ou mais sinais de acordar salvos) Duas operações (generalizações de sleep e wakeup) Down decrementa (gasta um sinal de acordar), se o valor do semáforo é maior que 0. Senão será posto pra dormir. Up incrementa o valor do semáforo e um processo que esteja dormindo pode ser escolhido para terminar o seu down. As operações sobre os semáforos são atômicas e indivisível.

Problema do produtor- consumidor