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

Tamanho: px
Começar a partir da página:

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

Transcrição

1 Universidade Estadual de Mato Grosso do Sul UEMS Curso de Licenciatura em Computação Sistemas Operacionais Sincronização e Comunicação entre Processos Prof. José Gonçalves Dias Neto

2 Comunicação entre processos A bufferização (Buffering) é uma forma de se estabelecer comunicação entre processos; Dois processos concorrentes, podem compartilhar um buffer para troca de informações através de operações de gravação e escrita; Um processo só pode gravar no buffer caso este não esteja cheio; Um processo só pode ler dados armazenados, caso exista algum dado para ser lido; Em ambos, os processos devem aguardar o buffer estar pronto.

3 Comunicação entre processos Mecanismos de sincronização: Mecanismos que garantem a comunicação entre processos concorrentes e o acesso a recursos compartilhados. Estes mecanismos são essenciais para garantir a integridade e confiabilidade na execução de aplicações concorrentes;

4 Especificação de Concorrência em Programas PARBEGIN: Comando que especifica que a sequencia de comandos seja executada concorrentemente em ordem imprevisível através da criação de um processo; PAREND: Define um ponto de sincronização, onde o processamento só continua quando todos os processos ou threads já tiverem terminado suas execuções.

5 Exemplo void Expressao(){ float X, Temp1, Temp2, Temp3; PARBEGIN Temp1 = SQRT(1024); Temp2 = 35,4*0,23; Temp3 = 302/7; PAREND; X = Temp1 + Temp2 Temp3; printf( X = %f, X);

6 Problemas de Compartilhamento de Recursos Imagine um programa de gerenciamento de contas correntes de um banco. Dois programas acessam o arquivo de contas correntes, recuperam o saldo do mesmo cliente e lançam duas despesas distintas. O que de errado pode acontecer, caso façam isto concorrentemente??

7 Problemas de Compartilhamento de Recursos Programa 1: Lê o saldo do cliente (R$ 2.000); Programa 2: Lê o saldo do cliente (R$ 2.000); Programa 1: Soma um débito ao saldo (- R$ 250); Programa 2: Soma um débito ao saldo (- R$ 100); Programa 1: Salva o valor do saldo lido + debito; Programa 2: Salva o valor do saldo lido + debito; Quanto o cliente possui na conta agora? Quanto deveria possuir?

8 Exclusão Mútua (Mutual Exclusion) Impede que dois ou mais processos acessem um mesmo recurso simultaneamente. Enquanto um processo estiver acessando um recurso, todos os demais processos que queiram acessá-lo deverão esperar pelo termino da utilização do recurso. Utilizada apenas quando um processo utiliza um recurso compartilhado. O código do programa onde é feito o acesso ao recurso compartilhado é denominada região critica (Critical Region).

9 Exclusão Mútua (Mutual Exclusion) Os mecanismos que implementam a exclusão mutua utilizam de protocolos de acesso a região crítica; Os protocolos de entrada e de saída garantem a exclusão mútua da região crítica de um programa;

10 Exclusão Mútua (Mutual Exclusion) Programa 1: Caso dos programas de conta bancária: verifica se existe outro programa utilizando o recurso; Como não existe, o programa 1 indica que usará o arquivo; Programa 2: Verifica se existe outro programa utilizando o recurso; Como o programa 1 está utilizando, o programa 2 fica aguardando a saída do programa 2 da região crítica; Programa 1: Efetua o débito, atualiza o saldo da conta e indica que saiu da região crítica; Programa 2: recebe a informação que a região crítica está disponível, indica que usará o arquivo, efetua o débito, atualiza o saldo da conta e indica que saiu da região crítica.

11 Exclusão Mútua - Starvation Starvation: Situação onde um processo nunca consegue executar sua região crítica e, consequentemente acessar o recurso. Starvation acontece em função do critério de escalonamento (todos são postos para executar, menos determinado processo); Possível solução para starvation é a organização de filas segundo critério FIFO. Vilão fila por prioridade

12 Exclusão Mútua Processo fora da região crítica pode impedir que outros processos entrem nas suas próprias regiões criticas; Problema voltado a esquecimentos ou finalizações erradas; Um processo pode entrar na região critica bloqueando os outros, e ao sair não desbloqueá-la.

13 Soluções para exclusão mútua Soluções em Hardware: Desabilitação de interrupções; Instrução test-and-set; Soluções em Software: Implementação de algorítmos (Dekker, Peterson)

14 Hardware Desabilitação de interrupções Considerada a solução mais simples de ser implementada; O processo que acessa a região crítica, desabilita todas as interrupções ao entrar e as reabilita ao sair. Mudanças de contexto de processos são executadas apenas através de interrupções. Pode ocorrer complicações de sincronização devido a esquecimentos de processos.

15 Hardware Desabilitação de interrupções Problema agravado em ambientes multiprocessados; O mecanismo de clock é implementado sobre interrupções; Solução utilizada quando precisa-se garantir atomicidade de pequenos grupos de instruções;

16 Hardware Instrução test and set Muitos processadores possuem esta instrução; A instrução lê uma variável, armazena seu conteúdo em uma outra área e atribui um novo valor a mesma variável; Trata-se de uma instrução indivisível; Isso garante que outros processos não manipulem a mesma área ao mesmo tempo; Test and set(x,y);

17 Soluções de Software Solução dependente do algoritmo implementado; Os primeiros algoritmos tratavam inicialmente de apenas 2 (dois) processos e apresentavam problemas;

18 Algorítmo 1 void Processo_A(){ repeat while (vez == 'B'); Região_Crítica_A; vez = 'B'; Processamento_A; until (false); void Processo_B(){ repeat while (vez == 'A'); Região_Crítica_B; vez = 'A'; Processamento_B; until (false); Int main(){ vez = 'A'; PARBEGIN Processo_A(); Processo_B(); PAREND; return 0;

19 Algorítmo 1 - Análise O mecanismo é utilizável apenas por 2 (dois) processos; O acesso é sempre de maneira alternada; Mesmo que um processo A seja de execução mais rápida, sua velocidade ao final será dependente da velocidade de B; Se o processo A demorar muito no processamento, poderá afetar o acesso do processo B a região crítica, mesmo que o processo A não esteja utilizando o recurso;

20 Algorítmo 2 void Processo_A(){ repeat while (CB); CA = true; Região_Crítica_A; CA = false; Processamento_A; until (false); void Processo_B(){ repeat while (CA); CB = true; Região_Crítica_B; CB = false; Processamento_B; until (false); Int main(){ CA = false; CB = false; PARBEGIN Processo_A(); Processo_B(); PAREND; return 0;

21 Algorítmo 2 - Análise Caso um processo tenha problema dentro da região critica ou antes de alterar a variável, o outro permanecerá indefinidamente bloqueado.

22 Algorítmo de Peterson void Processo_A(){ repeat CA = true; vez = 'B'; while (CB && vez == 'B'); Região_Crítica_A; CA = false; Processamento_A; until (false); void Processo_B(){ Repeat CB = true; vez = 'A'; while (CA && vez == 'A'); Região_Crítica_B; CB = false; Processamento_B; until (false); Int main(){ CA = false; CB = false; PARBEGIN Processo_A(); Processo_B(); PAREND; return 0;

23 Algorítmo de Peterson - Análise Apesar de sua implementação para dois processos, pode ser generalizada para N destes; CA e CB indicam a intenção de cada processo de entrar na região crítica; Variável vez resolve os conflitos gerados pela concorrência; Além de garantir a exclusão mútua, a starvation de um processo nunca ocorrerá (variável vez);

24 Sincronização Condicional Situação em que o acesso ao recurso compartilhado exige a sincronização de processos vinculada a uma condição de acesso. Caso da comunicação através de buffer; Problema do produtor/consumidor;

25 Semáforos Conceito proposto por E.W Dijkstra (1963); Um dos principais mecanismos utilizados em projetos de sistemas operacionais; Consiste em uma variável inteira não negativa que só pode ser manipulada por duas rotinas: UP e DOWN; UP incrementa a variável, DOWN decrementa; Semáforos podem ser binários (Mutexes Mutual Exclusion Semaphores) ou contadores;

26 Exclusão Mútua - Semáforos A exclusão mútua pode ser implementada através da utilização de um semáforo binário; Instruções DOWN e UP funcionam como protocolos de entrada e saída, respectivamente; Semáforo com valor 1 indica recurso liberado, já com valor 0 indica a utilização do recurso; Ao entrar na região crítica o processo executa uma operação DOWN no semáforo, ao sair executa a operação UP, assim outro processo pode utilizá-la.

27 Exclusão Mútua - Semáforos

28 Exclusão Mútua - Semáforo #<bibliotecas>; int semaforo = 1; void Processo_A(){ repeat DOWN(semaforo); Região_Crítica_A; UP(semaforo); until (false); void Processo_B(){ repeat DOWN(semaforo); Região_Crítica_B; UP(semaforo); until (false); UP(int semaforo){ if(semaforo == 0 && existe_processo_bloqueado()) desbloqueia_processo(); else semaforo++; DOWN(int semaforo){ if(semaforo == 0) bloqueia_processo(); else semaforo ; Int main(){ PARBEGIN Processo_A(); Processo_B(); PAREND; return 0;

29 Sincronização Condicional - Semáforos Os semáforos também podem ser utilizados nos casos de sincronização condicional; Utilizados principalmente no caso produtor/consumidor; Se o buffer estiver vazio a operação DOWN(cheio) deixa o consumidor em espera; Apos a gravação de dados pelo produtor este executa UP(cheio) liberando o consumidor;

30 Produtor/Consumidor - Semáforos #<bibliotecas>; int vazio = 2; Int cheio = 0; Int mutex = 1; void Produtor(){ repeat Produz_Dado(); DOWN(vazio); DOWN(mutex); Grava_Buffer(Dado_1, Buffer); UP(mutex); UP(cheio); until (false); void Consumidor(){ repeat DOWN(cheio); DOWN(mutex); Consome_Dado(Dado_2); UP(mutex); UP(vazio); until (false); Int main(){ PARBEGIN Produtor(); Consumidor(); PAREND; return 0;

31 Troca de mensagens Semáforos e monitores não são implementados diretamente pelas linguagens como C/C++, Java, Pascal. Cabe ao programador (masoquista) implementálos manualmente e imbuti-los em bibliotecas; Um descuido com as variáveis e o sistema pode ocasionar deadlocks;

32 Deadlocks - impasses 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. (wikipedia) É a situação em que um processo aguarda por um recurso que nunca estará disponível ou um evento que não ocorrerá. (Machado, Maia)

33 Deadlocks -Impasses

34 Deadlocks - Impasses

35 Jantar dos Filósofos Problema clássico de sincronização de processos; Adivinha quem propôs o problema? Dijkstra Consiste em ter 5 filósofos dispostos em uma mesa redonda para jantar espaguete; A mesa possui 5 pratos, um para cada filósofo; Entre cada prato possui um garfo (5 garfos); Um filósofo pode comer e pensar; Para comer, um filósofo necessita de dois garfos; Cada filósofo só pode pegar um garfo por vez; Ao comer, o filósofo usa os garfos e após alguns instantes deve obrigatoriamente soltá-los;

36 Jantar dos filósofos

37 Solução óbvia void filosofo(int i){ while(true){ pense(); pegar_garfo(esquerda); pegar_garfo(direita); comer(); soltar_garfo(esquerda); soltar_garfo(direita); Isto funciona? Por que?

38 Problemas da solução anterior Caso todos os filósofos pegue o garfo do mesmo lado ao mesmo tempo, deadlock ocorrerá; A solução seria, após pegar o garfo, verificar se o do outro lado está em uso, caso esteja, soltar o garfo que havia pego. (mas não funciona starvation); Esperar tempos aleatórios seria uma solução, mas isso não garante 100% dos casos;

39 Solução Jantar dos Filósofos void filosofo(int i){ while(true){ pense(); pegar_garfos(i); comer(); soltar_garfos(i); void pegar_garfos(int i){ DOWN(&mutex); state[i] = FAMINTO; teste(i); UP(&mutex); DOWN(&S[i]); void soltar_garfos(int i){ DOWN(&mutex); state[i] = PENSANDO; teste(esquerda); teste(direita); UP(&mutex); Void teste(int i){ if(state[i] == FAMINTO && state(esquerda)!= COMENDO && state(direita)!= COMENDO{ state[i] = COMENDO; UP(&S[I]);

40 Problema do Barbeiro Um barbeiro precisa atender clientes sem sua barbearia; Na barbearia existe uma cadeira de barbeiro e N cadeiras para clientes esperarem; Caso o barbeiro não tenha clientes, ele se senta e dorme; Quando um cliente chega: Se o barbeiro tiver trabalhando e houver cadeira de espera disponível, o cliente se senta, caso todas as cadeiras estejam ocupadas o cliente vai embora sem atendimento; A solução proposta utiliza três semáforos: clientes: um semáforo contador; barbeiro e mutex: semáforos binários.

41 Solução problema do Barbeiro void barbeiro(){ while(true){ DOWN(clientes); DOWN(mutex); espera ; UP(barbeiro); UP(mutex(); corta_cabelo(); void cliente(){ DOWN(mutex); if(espera < cadeiras){ espera++; UP(clientes); UP(mutex); DOWN(barbeiro); Ter_cabelo_cortado(); eles UP(mutex);

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais SINCRONIZAÇÃO E COMUNICAÇÃO ENTRE PROCESSOS MACHADO/MAIA: CAPÍTULO 07, PÁGINA 101 Prof. Pedro Luís Antonelli Anhanguera Educacional sistemas multiprogramáveis Os sistemas multiprogramáveis

Leia mais

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

9 - Sincronização e Comunicação entre Processos 1 9 - Sincronização e Comunicação entre Processos 91 Introdução Em um sistema multitarefa, seja com um único processador ou com mais de um processador ou ainda com vários núcleos por processador, os processos

Leia mais

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

Sincronização e Comunicação entre Processos. Adão de Melo Neto Sincronização e Comunicação entre Processos Adão de Melo Neto 1 INTRODUÇÃO Em um sistema multitarefa os processos alternam sua execução segundo critérios de escalonamento estabelecidos pelo sistema operacional.

Leia mais

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

Sistemas Operacionais. Capítulo 7 Sincronização e Comunicação entre Processos Sistemas Operacionais Capítulo 7 Sincronização e Comunicação entre Processos Baseado no Livro e Material de Apoio de Arquitetura de Sistemas Operacionais 3ª edição - LTC - 2004 Francis Berenger Machado

Leia mais

Sistemas Operacionais Aula 08: Sincronização de Processos. Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com

Sistemas Operacionais Aula 08: Sincronização de Processos. Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Sistemas Operacionais Aula 08: Sincronização de Processos Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Objetivos Introduzir o problema da seção crítica, cujas soluções podem ser usadas

Leia mais

Sistemas Operacionais

Sistemas Operacionais AULA 09 Sincronização de Processos - II Monitores Conforme comentamos, o uso equivocado dos semáforos pode levar a uma situação de deadlock, por isso devemos tomar cuidado ao programar utilizando este

Leia mais

Revisão Ultima aula [1/2]

Revisão Ultima aula [1/2] SOP - TADS Comunicação Interprocessos - 2 IPC Prof. Ricardo José Pfitscher dcc2rjp@joinville.udesc.br Material cedido por: Prof. Rafael Rodrigues Obelheiro Prof. Maurício Aronne Pillon Revisão Ultima aula

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 11 Sincronização de Processos Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso

Leia mais

BC1518-Sistemas Operacionais. Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br

BC1518-Sistemas Operacionais. Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas Operacionais Sincronização de Processos (aula 5 Parte 2) Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br Roteiro Semáforos Monitores Passagem de Mensagem Exemplos em S.O.

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Processos e Threads Gustavo Reis gustavo.reis@ifsudestemg.edu.br - O que são Processos? Uma abstração de um programa em execução. Mantêm a capacidade de operações (pseudo)concorrentes,

Leia mais

Notas da Aula 4 - Fundamentos de Sistemas Operacionais

Notas da Aula 4 - Fundamentos de Sistemas Operacionais Notas da Aula 4 - Fundamentos de Sistemas Operacionais 1. Threads Threads são linhas de execução dentro de um processo. Quando um processo é criado, ele tem uma única linha de execução, ou thread. Esta

Leia mais

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

Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto Introdução Processo cooperativo é aquele que pode afetar outros processos em execução no sistema Ou ser por eles afetado Processos

Leia mais

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

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Comunicação e Sincronismo entre processos Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO 1 Comunicação entre Processos Processos

Leia mais

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS 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

Leia mais

Sincronização. Cooperação entre Processos

Sincronização. Cooperação entre Processos Sincronização Parte II Programação Concorrente Cooperação entre Processos Vários processos executam em conjunto uma ou mais tarefas, nas quais Competem por recursos Indicam uns aos outros a: Ausência/existência

Leia mais

Processos e Threads (partes I e II)

Processos e Threads (partes I e II) Processos e Threads (partes I e II) 1) O que é um processo? É qualquer aplicação executada no processador. Exe: Bloco de notas, ler um dado de um disco, mostrar um texto na tela. Um processo é um programa

Leia mais

Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br

Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Principais problemas programação concorrente Deadlocks (impasses) Starvation (inanição) Condições de corrida Erros de consistência na

Leia mais

III - Processos e Threads

III - Processos e Threads III - Processos e Threads P rocesso é geralmente entendido como um programa em execução porém, na realidade, trata-se de uma estrutura mais complexa que contém, além do programa no seu formato executável,

Leia mais

Problemas Clássicos de Sincronização

Problemas Clássicos de Sincronização Problemas Clássicos de Sincronização Filósofos Jantando Filósofo i: Solução Óbvia O problema dos filósofos jantando foi introduzido e solucionado por Dijkstra em 1965. Neste problema, 5 filósofos estão

Leia mais

Capítulo 2 Processos e Threads Prof. Fernando Freitas

Capítulo 2 Processos e Threads Prof. Fernando Freitas slide 1 Capítulo 2 Processos e Threads Prof. Fernando Freitas Material adaptado de: TANENBAUM, Andrew S. Sistemas Operacionais Modernos. 3ª edição. Disponível em: http://www.prenhall.com/tanenbaum_br slide

Leia mais

Conceito de processo como uma unidade de trabalho em um sistema moderno de tempo compartilhado. Estados de um processo.

Conceito de processo como uma unidade de trabalho em um sistema moderno de tempo compartilhado. Estados de um processo. gerenciamento de processos Objetivo Compreender a maneira como o sistema operacional controla o gerenciamento dos programas em execução por meio do gerenciamento de processos no qual cada processo representa

Leia mais

Sistemas Operacionais. Técnicas de Implementação de Exclusão Mútua. Aula VI Prof. Rosemary Silveira

Sistemas Operacionais. Técnicas de Implementação de Exclusão Mútua. Aula VI Prof. Rosemary Silveira Sistemas Operacionais Técnicas de Implementação de Exclusão Mútua Aula VI Prof. Rosemary Silveira Tópicos de Apresentação Condições de Corrida Técnicas de Implementação de Exclusão Mútua Condições de Corrida

Leia mais

ARQUITETURA DE COMPUTADORES E SISTEMAS OPERACIONAIS P/ CONCURSOS PÚBLICOS FOCO: ESAF/CESGRANRIO/FCC. Prof. Almeida Jr

ARQUITETURA DE COMPUTADORES E SISTEMAS OPERACIONAIS P/ CONCURSOS PÚBLICOS FOCO: ESAF/CESGRANRIO/FCC. Prof. Almeida Jr ARQUITETURA DE COMPUTADORES E SISTEMAS OPERACIONAIS P/ CONCURSOS PÚBLICOS FOCO: ESAF/CESGRANRIO/FCC Prof. Almeida Jr Processos Conceitos Básicos Nomes Tipos Batch: jobs CPU-bound T.Sharing: Tarefas/Processos

Leia mais

Notas da Aula 6 - Fundamentos de Sistemas Operacionais

Notas da Aula 6 - Fundamentos de Sistemas Operacionais 1. Monitores Notas da Aula 6 - Fundamentos de Sistemas Operacionais Embora os semáforos sejam uma boa solução para o problema da exclusão mútua, sua utilização não é trivial. O programador é obrigado a

Leia mais

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

void echo(); { chin = getchar(); chout = chin; putchar(chout); } Sincronização Processos (Aula de 10) Concorrência Dificuldades: Profa. Patrícia Ação Compartilhamento Gerência Localização D. Proteger Promover de alocação de recursos. globais. CostaLPRM/DI/UFES programas).

Leia mais

Sistemas Operacionais

Sistemas Operacionais Universidade Estadual de Mato Grosso do Sul UEMS Curso de Licenciatura em Computação Sistemas Operacionais Prof. José Gonçalves Dias Neto profneto_ti@hotmail.com Sistemas Operacionais Carga horária total:

Leia mais

Capítulo 2 Processos e Threads. 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4 Problemas clássicos de IPC 2.

Capítulo 2 Processos e Threads. 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4 Problemas clássicos de IPC 2. Capítulo 2 Processos e Threads 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4 Problemas clássicos de IPC 2.5 Escalonamento 1 Processos O Modelo de Processo Multiprogramação de quatro programas

Leia mais

Udesc/Ceplan Bacharelado em Sistemas de Informação Sistemas Operacionais. Prof. Alexandre Veloso alexandre.matos@udesc.br

Udesc/Ceplan Bacharelado em Sistemas de Informação Sistemas Operacionais. Prof. Alexandre Veloso alexandre.matos@udesc.br Programação Concorrente [Parte 2] Udesc/Ceplan Bacharelado em Sistemas de Informação Sistemas Operacionais Prof. Alexandre Veloso alexandre.matos@udesc.br Condição de Corrida Uma forma de um processo comunicar-se

Leia mais

Sistemas Operacionais

Sistemas Operacionais 7 Sistemas Operacionais 7.1 Fundamentos da ciência da computação Cengage Learning Objetivos 7.2 Compreender o papel do sistema operacional. Compreender o processo de inicialização para carregar o sistema

Leia mais

Sincronização de Processos (4) Monitores

Sincronização de Processos (4) Monitores Sincronização de Processos (4) Monitores Monitores (1) Sugeridos por Dijkstra (1971) e desenvolvidos por Hoare (1974) e Brinch Hansen (1975), são estruturas de sincronização de alto nível, que têm por

Leia mais

Programação Orientada a Objetos Threads

Programação Orientada a Objetos Threads Threads Prof. Edwar Saliba Júnior Janeiro de 2013 1 Introdução Multithreading: fornece múltiplas threads de execução para a aplicação; permite que programas realizem tarefas concorrentemente; às vezes

Leia mais

Introdução Aplicações Concorrentes Especificação de Concorrência em Programas Problemas de Compartilhamento de Recursos Exclusão Mútua Sincronização

Introdução Aplicações Concorrentes Especificação de Concorrência em Programas Problemas de Compartilhamento de Recursos Exclusão Mútua Sincronização Sincronização e Comunicação entre Processos Introdução Aplicações Concorrentes Especificação de Concorrência em Programas Problemas de Compartilhamento de Recursos Exclusão Mútua Sincronização Condicional

Leia mais

Disciplina de Sistemas Distribuídos. Sincronização em SD. Prof. M.Sc. Alessandro Kraemer kraemer@utfpr.edu.br. Kraemer

Disciplina de Sistemas Distribuídos. Sincronização em SD. Prof. M.Sc. Alessandro Kraemer kraemer@utfpr.edu.br. Kraemer Disciplina de Sistemas Distribuídos Sincronização em SD Prof. M.Sc. Alessandro kraemer@utfpr.edu.br Cronograma Contextualização Tipos de sincronização Mecanismos para sincronização da região crítica Exclusão

Leia mais

Sincronização de Processos (1) Mecanismos de busy wait

Sincronização de Processos (1) Mecanismos de busy wait Sincronização de Processos (1) Mecanismos de busy wait Condições de Corrida Exemplo: Fila de impressão. Qualquer processo que queira imprimir precisa colocar o seu documento na fila de impressão (compartilhada).

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas de Entrada/Saída Princípios de Software Sistema de Entrada/Saída Princípios de Software Tratadores (Manipuladores) de Interrupções Acionadores de Dispositivos (Device Drivers)

Leia mais

Sistemas Operacionais Processos e Threads

Sistemas Operacionais Processos e Threads Sistemas Operacionais Processos e Threads Prof. Marcos Monteiro, MBA http://www.marcosmonteiro.com.br contato@marcosmonteiro.com.br 1 Estrutura de um Sistema Operacional 2 GERÊNCIA DE PROCESSOS Um processo

Leia mais

Fundamentos. Módulo 6: Sincronização de Processos. Bounded-Buffer (Cont.) Bounded-Buffer

Fundamentos. Módulo 6: Sincronização de Processos. Bounded-Buffer (Cont.) Bounded-Buffer Módulo 6: Sincronização de Processos Fundamentos Fundamentos O problema das regiões críticas Hardware de Sincronização Semáforos Problemas Clássicos de Sincronização Regiões Críticas Monitores Sincronização

Leia mais

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA 1. INTRODUÇÃO O conceito de concorrência é o princípio básico para o projeto e a implementação dos sistemas operacionais multiprogramáveis. O sistemas multiprogramáveis

Leia mais

Sistemas Operacionais Gerência de Dispositivos

Sistemas Operacionais Gerência de Dispositivos Universidade Estadual de Mato Grosso do Sul UEMS Curso de Licenciatura em Computação Sistemas Operacionais Gerência de Dispositivos Prof. José Gonçalves Dias Neto profneto_ti@hotmail.com Introdução A gerência

Leia mais

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

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira IFPE Disciplina: Sistemas Operacionais Prof. Anderson Luiz Moreira SERVIÇOS OFERECIDOS PELOS SOS 1 Introdução O SO é formado por um conjunto de rotinas (procedimentos) que oferecem serviços aos usuários

Leia mais

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

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Questões Em uma rede de sobreposição (overlay), mensagens são roteadas de acordo com a topologia da sobreposição. Qual uma importante desvantagem

Leia mais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais Notas da Aula 15 - Fundamentos de Sistemas Operacionais 1. Software de Entrada e Saída: Visão Geral Uma das tarefas do Sistema Operacional é simplificar o acesso aos dispositivos de hardware pelos processos

Leia mais

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

Deadlocks. Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Dispositivos e recursos são compartilhados a todo momento: impressora, disco, arquivos,

Leia mais

Computação Concorrente (MAB-117) Monitores

Computação Concorrente (MAB-117) Monitores Computação Concorrente (MAB-117) Monitores Prof. Silvana Rossetto 1 Departamento de Ciência da Computação (DCC) Instituto de Matemática (IM) Universidade Federal do Rio de Janeiro (UFRJ) Maio de 2012 1.

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Processos I: Threads, virtualização e comunicação via protocolos Prof. MSc. Hugo Souza Nesta primeira parte sobre os Processos Distribuídos iremos abordar: Processos e a comunicação

Leia mais

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

Threads em Java. Sistemas Operacionais - Laboratório Professor Machado Threads em Java Sistemas Operacionais - Laboratório Professor Machado 1 Conceitos de Programação Concorrente Uma unidade concorrente é um componente de um programa que não exige a execução seqüencial,

Leia mais

Programação Concorrente Processos e Threads

Programação Concorrente Processos e Threads Programação Concorrente Processos e Threads Prof. Eduardo Alchieri Processos O conceito mais central em qualquer sistema operacional é o processo Uma abstração de um programa em execução Um programa por

Leia mais

Capítulo 8 Arquitetura de Computadores Paralelos

Capítulo 8 Arquitetura de Computadores Paralelos Capítulo 8 Arquitetura de Computadores Paralelos Necessidade de máquinas com alta capacidade de computação Aumento do clock => alta dissipação de calor Velocidade limitada dos circuitos => velocidade da

Leia mais

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

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura 4-1 - Exemplo 4 PROCESSOS Os primeiros sistemas operacionais permitiam que apenas um processo fosse executado por vez. Dessa maneira, este processo tinha todo o sistema computacional a sua disposição. Os atuais sistemas

Leia mais

Projeto de Sistemas de Tempo Real

Projeto de Sistemas de Tempo Real Projeto de Sistemas de Tempo Real Centro de Informática - Universidade Federal de Pernambuco Engenharia da Computação Kiev Gama kiev@cin.ufpe.br Slides elaborados pelo professor Marcio Cornélio O autor

Leia mais

Arquitetura de Sistemas Operacionais

Arquitetura de Sistemas Operacionais Arquitetura de Sistemas Operacionais 3 a Edição Versão: 3. (Jan/) Francis Berenger Machado Luiz Paulo Maia Soluções dos Exercícios - Autores LTC Soluções de Exercícios Autores Versão 3. (Jan/4) Capítulo

Leia mais

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

Sincronização e Comunicação entre Processos. Adão de Melo Neto Sincronização e Comunicação entre Processos Adão de Melo Neto 1 MOTIVAÇÃO 2 INTRODUÇÃO Em um sistema multiprogramado (concorrente) os processos alternam sua execução (ou seja, são executados alternadamente

Leia mais

O texto desta seção foi publicado em http://msdn.microsoft.com/ptbr/library/ms177433.aspx. o http://msdn.microsoft.com/pt-br/library/ms178104.

O texto desta seção foi publicado em http://msdn.microsoft.com/ptbr/library/ms177433.aspx. o http://msdn.microsoft.com/pt-br/library/ms178104. AULA 12 - Deadlocks Em alguns casos pode ocorrer a seguinte situação: um processo solicita um determinado recurso e este não está disponível no momento. Quando isso ocontece o processo entra para o estado

Leia mais

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

Prof.: Roberto Franciscatto. Capítulo 1.1 Introdução Sistemas Operacionais Prof.: Roberto Franciscatto Capítulo 1.1 Introdução Tipos de Sistemas Operacionais Sistemas Monoprogramáveis / Monotarefa Voltados tipicamente para a execução de um único programa.

Leia mais

UNIVERSIDADE ESTADUAL DO CEARÁ. Programação Paralela e Concorrente

UNIVERSIDADE ESTADUAL DO CEARÁ. Programação Paralela e Concorrente UNIVERSIDADE ESTADUAL DO CEARÁ Programação Paralela e Concorrente Felipe de Almeida Xavier João Gonçalves Filho Prof.: Marcial Porto Fernandez FORTALEZA 2011 Sumário 1 Manual de Instalação 2 1.1 Programa

Leia mais

Monitores. Conceito Sistemas Operacionais II

Monitores. Conceito Sistemas Operacionais II Monitores Conceito Sistemas Operacionais II Monitores Autores Daniel Artur Seelig Fábio Lutz Local Universidade Federal do Rio Grande do Sul Instituto de Informática Sistemas Operacionais II Professor

Leia mais

Introdução aos Sistemas

Introdução aos Sistemas Introdução Introdução aos Sistemas Operacionais 1 2 3... n Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br www.inf.pucrs.br/~stoscani Compilador Editor de texto Browser Programas

Leia mais

Métodos de Sincronização do Kernel

Métodos de Sincronização do Kernel Métodos de Sincronização do Kernel Linux Kernel Development Second Edition By Robert Love Tiago Souza Azevedo Operações Atômicas Operações atômicas são instruções que executam atomicamente sem interrupção.

Leia mais

Sincronização e comunicação entre processos

Sincronização e comunicação entre processos Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Sincronização e comunicação entre processos Em um sistema multiprogramável com

Leia mais

Gerência do Processador

Gerência do Processador Andrique Amorim www.andrix.com.br professor@andrix.com.br Gerência do Processador Desenvolvimento web II IMPORTANTE SABER Desenvolvimento web II DEADLOCK (interbloqueio, blocagem, impasse) Situação em

Leia mais

Estruturas do Sistema de Computação

Estruturas do Sistema de Computação Estruturas do Sistema de Computação Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto Faculdade de Tecnologia de Americana Centro Paula Souza Estruturas do Sistema de

Leia mais

Até o final de década de 70, os sistemas operacionais suportavam apenas processos com um único thread;

Até o final de década de 70, os sistemas operacionais suportavam apenas processos com um único thread; CAPÍTULO VI THREADS 6.1 INTRODUÇÃO Até o final de década de 70, os sistemas operacionais suportavam apenas processos com um único thread; O sistema operacional Toth, em 1979, foi o primeiro a implementar

Leia mais

Universidade Federal da Paraíba

Universidade Federal da Paraíba Universidade Federal da Paraíba Mestrado em Informática Fora de Sede Universidade Tiradentes Aracaju - Sergipe Disciplina Sistemas Operacionais Professor Jacques Philippe Sauvé Aluno José Maria Rodrigues

Leia mais

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia O Sistema Operacional que você usa é multitasking? Por multitasking, entende-se a capacidade do SO de ter mais de um processos em execução ao mesmo tempo. É claro que, num dado instante, o número de processos

Leia mais

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

Sistema Operacional. Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais Sistema Operacional Processo e Threads Introdução a Processos Todos os computadores modernos são capazes de fazer várias coisas ao mesmo tempo. Enquanto executa um programa do usuário, um computador pode

Leia mais

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

Série de Problemas - Sincronização com Semáforos Sistemas Operativos Série de Problemas - Sincronização com Semáforos Bibliografia essencial para a compreensão/realização da série: "Modern Operating Systems", Andrew S. Tanenbaum, Prentice Hall, Capítulo

Leia mais

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br LP II Estrutura de Dados Introdução e Linguagem C Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br Resumo da aula Considerações Gerais Introdução a Linguagem C Variáveis e C Tipos de

Leia mais

Sistemas Distribuídos: Conceitos e Projeto Threads e Migração de Processos

Sistemas Distribuídos: Conceitos e Projeto Threads e Migração de Processos Sistemas Distribuídos: Conceitos e Projeto Threads e Migração de Processos Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.deinf.ufma.br

Leia mais

MC504 - Sistemas Operacionais

MC504 - Sistemas Operacionais MC504 - Sistemas Operacionais Algoritmo da Padaria Problema dos Produtores e Consumidores Primitivas de Sincronização Islene Calciolari Garcia Primeiro Semestre de 2014 Sumário 1 Algoritmo da Padaria 2

Leia mais

Programação Concorrente

Programação Concorrente Programação Concorrente Monitores e Troca de Mensagens Monitores Considere que, no projeto da solução do produtor-consumidor com semáforos, os 2 downs tenham sido trocados Se o buffer estiver cheio deadlock

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

Fundamentos de Programaçã. ção Concorrente

Fundamentos de Programaçã. ção Concorrente Java 2 Standard Edition Fundamentos de Programaçã ção Concorrente Helder da Rocha www.argonavis.com.br 1 Programação concorrente O objetivo deste módulo é oferecer uma introdução a Threads que permita

Leia mais

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

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Conceitos básicos e serviços do Sistema Operacional Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Tipos de serviço do S.O. O S.O.

Leia mais

Algoritmos em Javascript

Algoritmos em Javascript Algoritmos em Javascript Sumário Algoritmos 1 O que é um programa? 1 Entrada e Saída de Dados 3 Programando 4 O que é necessário para programar 4 em JavaScript? Variáveis 5 Tipos de Variáveis 6 Arrays

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor

Leia mais

Gerência de Processador

Gerência de Processador Gerência de Processador Prof. Edwar Saliba Júnior Junho de 2009 Unidade 03-003 Gerência de Processador 1 Introdução Com o surgimento dos sistemas multiprogramáveis, onde múltiplos processos poderiam permanecer

Leia mais

Organização e Arquitetura de Computadores

Organização e Arquitetura de Computadores Organização e Arquitetura de Computadores Entrada e saída Alexandre Amory Edson Moreno Nas Aulas Anteriores Foco na Arquitetura e Organização internas da Cleo Modelo Von Neuman Circuito combinacional Circuito

Leia mais

Ciclo de Vida de um Processo

Ciclo de Vida de um Processo Nas aulas anteriores Ciclo de Vida de um Processo Marcelo Johann Conceito de Processo Mecanismo de Programação em C/UNIX Continuando Interrupções TRAP Chaveamento de Contexto Chamadas de Sistema INF01142

Leia mais

Capítulo 4 Gerência do Processador. O que sabemos é uma gota, o que ignoramos é um oceano. Isaac Newton

Capítulo 4 Gerência do Processador. O que sabemos é uma gota, o que ignoramos é um oceano. Isaac Newton Universidade Federal de Itajubá UNIFEI Instituto de Engenharia de Sistemas e Tecnologias da Informação IESTI CCO 004 Sistemas Operacionais Prof. Edmilson Marmo Moreira 4.1 Introdução Capítulo 4 Gerência

Leia mais

Faculdade Lourenço Filho - ENADE 2011-1

Faculdade Lourenço Filho - ENADE 2011-1 1. Quando se constrói um banco de dados, define-se o modelo de entidade e relacionamento (MER), que é a representação abstrata das estruturas de dados do banco e seus relacionamentos. Cada entidade pode

Leia mais

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS Tópico 4 Estrutura do Sistema Operacional Prof. Rafael Gross prof.rafaelgross@fatec.sp.gov.br FUNÇÕES DO NUCLEO As principais funções do núcleo encontradas na maioria dos sistemas

Leia mais

SISTEMAS OPERACIONAIS. Prof. André Dutton

SISTEMAS OPERACIONAIS. Prof. André Dutton 1 SISTEMAS OPERACIONAIS Prof. André Dutton O OS esta ligado diretamente com o Hardware do Computador no qual ele é executado. CPU MEMORIA CONTROLAD OR DE VIDEO CONTROLAD OR DE TECLADO CONTROLAD OR DE DISCO

Leia mais

Introdução a Threads Java

Introdução a Threads Java Introdução a Threads Java Prof. Gerson Geraldo Homrich Cavalheiro Universidade Federal de Pelotas Departamento de Informática Instituto de Física e Matemática Pelotas RS Brasil http://gersonc.anahy.org

Leia mais

Capítulo 2. Processos e Threads. Processos e threads

Capítulo 2. Processos e Threads. Processos e threads Capítulo 2 Processos e Threads 1 Processos e threads 1. Processos 2. Threads 3. Comunicação inter processos (IPC) 4. Problemas clássicos de IPC 5. Escalonamento (Scheduling) 2 1 Processos: O modelo de

Leia mais