Redes de Computadores. INF201 - Fundamentos de Sistemas Operacionais - 2º Período

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

Download "Redes de Computadores. INF201 - Fundamentos de Sistemas Operacionais - 2º Período"

Transcrição

1 Redes de Computadores INF201 - Fundamentos de Sistemas Operacionais - 2º Período

2 PARTE II: PROCESSOS E THREADS SUMÁRIO 7. SINCRONIZAÇÃO E COMUNICAÇÃO ENTRE PROCESSOS: 7.1 Introdução; 7.2 Aplicações Concorrentes; 7.3 Especificação de Concorrência em Programas; 7.4 Problemas de Compartilhamento de Recursos; 7.5 Exclusão Mútua; 7.6 Sincronização Condicional; 7.7 Semáforos; 7.8 Monitores; 7.9 Troca de Mensagens; 7.10 Deadlock.

3 7.1 Introdução Com o surgimento dos sistemas multiprogramáveis, passou a ser possível estruturar aplicações concorrentes, que tem como base a execução cooperativa de múltiplos processos ou threads. Em sistemas com múltiplos processadores, a possibilidade do paralelismo na execução de instruções somente estende as vantagens que a programação concorrente proporciona. O compartilhamento de recursos entre os processos pode ocasionar situações indesejáveis, capazes até de comprometer a execução das aplicações. Os processos concorrentes devem ter suas execuções sincronizadas.

4 7.2 Aplicações Concorrentes É necessário que os processos concorrentes tenham sua execução sincronizada através de mecanismos do sistema operacional. Os mecanismos que garantem a comunicação entre processos concorrentes e o acesso a recursos compartilhados são chamados mecanismos de sincronização. No projeto de SOs multiprogramáveis, é fundamental a implementação desses mecanismos para garantir a integridade e a confiabilidade na execução de aplicações.

5 7.2 Aplicações Concorrentes Sincronização Processo gravador gravação leitura Processo leitor dado Buffer

6 7.3 Especificação de Concorrência em Programas Existem várias notações utilizadas para especificar as partes de um programa que devem ser executadas concorrentemente. FORK E JOIN, introduzidos por Conway (1963) e Dennis e Van Horn (1966):

7 7.3 Especificação de Concorrência em Programas PARBEGIN e PAREND (Dijkstra, 1965), que, posteriormente, foram chamados de COBEGIN e COEND:

8 7.3 Especificação de Concorrência em Programas Processo principal PARBEGIN Comando_1; Comando_2;.. Comando_n; PAREND Processo 1 Processo 2 Processo n Processo principal

9 7.4 Problemas de Compartilhamento de Recursos Para a compreensão de como a sincronização entre processos concorrentes é fundamental para a confiabilidade dos sistemas multiprogramáveis, são apresentados dois exemplos de compartilhamento de recursos: O primeiro exemplo envolve o compartilhamento de um arquivo em disco; O segundo apresenta uma variável na memória principal sendo compartilhada por dois processos. Em qualquer situação, onde dois ou mais processos acessem um mesmo recurso, devem existir mecanismos de controle para evitar esses tipos de problemas, conhecidos como condições de corrida.

10 7.4 Problemas de Compartilhamento de Recursos 1º Exemplo:

11 7.4 Problemas de Compartilhamento de Recursos 1º Exemplo:

12 7.4 Problemas de Compartilhamento de Recursos 2º Exemplo:

13 7.5 Exclusão Mútua Ideia de exclusividade de acesso. Solução: impedir que dois ou mais processos acessem o mesmo recurso simultaneamente. A parte do código do programa onde é feito o acesso ao recurso compartilhado é denominada região crítica. Os mecanismos que implementam a exclusão mútua utilizam protocolos de acesso à região crítica. Os protocolos de entrada e saída garantem a exclusão mútua da região crítica de um programa.

14 7.5 Exclusão Mútua Além da garantia da exclusão mútua, duas situações indesejadas também devem ser evitadas.

15 7.5 Exclusão Mútua 1º Situação: Starvation ou Espera Indefinida. Um processo nunca consegue executar sua região crítica e, consequentemente, acessar o recurso compartilhado. O SO possui um critério para selecionar, dentre os processos que aguardam pelo uso do recurso, qual será o escolhido. Critérios que podem gerar problemas: Escolha aleatória (randômica); Com base em prioridades. Uma possível solução: utilizar o esquema FIFO (First In First Out).

16 7.5 Exclusão Mútua 2º Situação: Um processo fora da sua região crítica impede que outros processos entrem nas suas próprias regiões críticas. Diversas soluções foram propostas para garantir a exclusão mútua de processos concorrentes. A seguir, são apresentadas algumas soluções: Soluções de Hardware; Soluções de Software.

17 7.5.1 Soluções de Hardware Desabilitação de Interrupções: o processo desabilita todas as interrupções antes de entrar em sua região crítica, e as reabilita após deixar a região crítica.

18 7.5.1 Soluções de Hardware Essa solução, apesar de simples, apresenta algumas limitações: A multiprogramação pode ficar comprometida, já que a concorrência entre processos tem como base o uso de interrupções; Em sistemas com múltiplos processadores, essa solução torna-se ineficiente devido ao tempo de propagação quando um processador sinaliza aos demais que as interrupções devem ser habilitadas ou desabilitadas; O mecanismo de clock do sistema é implementado através de interrupções, devendo essa solução ser utilizada com bastante critério.

19 7.5.1 Soluções de Hardware Instrução test-and-set: instrução de máquina especial que permite ler uma variável, armazenar seu conteúdo em uma outra área e atribuir um novo valor à mesma variável. Tem como característica ser executada sem interrupção. A instrução test-and-set possui o formato a seguir, e quando executada o valor lógico da variável Y é copiado para X, sendo atribuído à variável Y o valor lógico verdadeiro.

20 7.5.1 Soluções de Hardware Para coordenar o acesso concorrente a um recurso, a instrução test-and-set utiliza uma variável lógica global. No exemplo do programa Test_and_Set essa variável é denominada Bloqueio. Bloqueio = false acesso liberado. Bloqueio = true acesso bloqueado. void main () { bool Bloqueio = false; PARBEGIN Processo_A (); Processo_B (); PAREND

21 7.5.1 Soluções de Hardware test-and-set void Processo_A () { bool Pode_A = true; do { while (Pode_A) { Test_and_Set (Pode_A, Bloqueio); Regiao_Critica_A; Bloqueio = false; while (true); void Processo_B () { bool Pode_B = true; do { while (Pode_B) { Test_and_Set (Pode_B, Bloqueio); Regiao_Critica_B; Bloqueio = false; while (true);

22 7.5.1 Soluções de Hardware

23 7.5.1 Soluções de Hardware O uso de uma instrução especial de máquina oferece algumas vantagens: Simplicidade de implementação da exclusão mútua em múltiplas regiões críticas; Uso da solução de hardware em arquiteturas com múltiplos processadores. Desvantagem: possibilidade do starvation ou espera indefinida.

24 7.5.2 Soluções de Software Diversos algoritmos foram propostos na tentativa de implementar a exclusão mútua através de soluções de software. As primeiras soluções tratavam apenas da exclusão mútua para dois processos e, inicialmente, apresentavam alguns problemas. A seguir apresenta-se de forma evolutiva como foi o desenvolvimento de uma solução definitiva para a exclusão mútua entre N processos.

25 7.5.2 Soluções de Software Primeiro algoritmo: void main () { char Vez = A ; PARBEGIN Processo_A (); Processo_B (); PAREND void Processo_A () { do { while (Vez == B ) { Regiao_Critica_A; Vez = B ; Processamento_A; while (true); void Processo_B () { do { while (Vez == A ) { Regiao_Critica_B; Vez = A ; Processamento_B; while (true);

26 7.5.2 Soluções de Software Primeiro algoritmo:

27 7.5.2 Soluções de Software Esse algoritmo, apesar de implementar a exclusão mútua, apresenta duas limitações: O acesso ao recurso compartilhado só pode ser realizado por dois processos e sempre de maneira alternada; No caso da ocorrência de algum problema com um dos processos, de forma que a variável de bloqueio não seja alterada, o outro processo permanecerá indefinidamente bloqueado.

28 7.5.2 Soluções de Software Segundo algoritmo: void main () { bool CA=false, CB=false; PARBEGIN Processo_A (); Processo_B (); PAREND void Processo_A () { do { while (CB) { CA = true; Regiao_Critica_A; CA = false; Processamento_A; while (true); void Processo_B () { do { while (CA) { CB = true; Regiao_Critica_B; CB = false; Processamento_B; while (true);

29 7.5.2 Soluções de Software Segundo algoritmo:

30 7.5.2 Soluções de Software No segundo algoritmo: O uso do recurso não é realizado necessariamente alternado; Caso ocorra algum problema com um dos processos fora da região crítica, o outro não ficará bloqueado; Caso um processo tenha um problema dentro da sua região crítica ou antes de alterar a variável, o outro processo permanecerá indefinidamente bloqueado; Na prática, nem sempre a exclusão mútua é garantida.

31 7.5.2 Soluções de Software Terceiro algoritmo: void main () { bool CA=false, CB=false; PARBEGIN Processo_A (); Processo_B (); PAREND void Processo_A () { do { CA = true; while (CB) { Regiao_Critica_A; CA = false; Processamento_A; while (true); void Processo_B () { do { CB = true; while (CA) { Regiao_Critica_B; CB = false; Processamento_B; while (true);

32 7.5.2 Soluções de Software No terceiro algoritmo: Garantia da exclusão mútua; Cada processo altera o estado da sua variável indicando que irá entrar na região crítica sem conhecer o estado do outro processo; Problema: possibilidade de bloqueio indefinido de ambos os processos.

33 7.5.2 Soluções de Software Quarto algoritmo: void main () { bool CA=false, CB=false; PARBEGIN Processo_A (); Processo_B (); PAREND void Processo_A () { do { CA = true; while (CB) { CA = false; //pequeno int. de tempo aleatório CA = true; Regiao_Critica_A; CA = false; Processamento_A; while (true); void Processo_B () { do { CB = true; while (CA) { CB = false; //pequeno int. de tempo aleatório CB = true; Regiao_Critica_B; CB = false; Processamento_B; while (true);

34 7.5.2 Soluções de Software No quarto algoritmo: Semelhante ao terceiro algoritmo, porém existe a possibilidade da alteração do estado da variável ser revertida; Garante a exclusão mútua; Não gera o bloqueio simultâneo dos processos; Problema: quando os tempos aleatórios forem próximos, pode ocorrer uma situação onde nenhum dos dois processos conseguirá executar sua região crítica.

35 7.5.2 Soluções de Software Algoritmo de Dekker: A primeira solução de software que garantiu a exclusão mútua entre dois processos sem a incorrência de outros problemas foi proposta pelo matemático holandês T. Dekker, com base no 1º e 4º algoritmos; Possui uma lógica bastante complexa e pode ser encontrado em Stallings (1997). Algoritmo de Peterson: Proposto por. G. L. Peterson; Apresenta uma solução simples para o problema da exclusão mútua entre dois processos.

36 7.5.2 Soluções de Software Algoritmo de Peterson: void main () { bool CA=false, CB=false; PARBEGIN Processo_A (); Processo_B (); PAREND void Processo_A () { do { CA = true; Vez = B ; while (CB && Vez == B ) { Regiao_Critica_A; CA = false; Processamento_A; while (true); void Processo_B () { do { CB = true; Vez = A ; while (CA && Vez == A ) { Regiao_Critica_B; CB = false; Processamento_B; while (true);

37 7.5.2 Soluções de Software Algoritmo para exclusão mútua entre N processos: O algoritmo de Dekker e a versão inicial do algoritmo de Perterson garantem a exclusão mútua de dois processos; Posteriormente, o algoritmo de Peterson foi generalizado para o caso de N processos; O algoritmo do padeiro (bakery algorithm), proposto por Lamport (1974), é uma solução clássica para o problema da exclusão mútua entre N processos;

38 7.5.2 Soluções de Software Apesar de todas as soluções apresentadas implementarem a exclusão mútua, todas possuíam um problema conhecido como espera ocupada (busy wait); Na espera ocupada, toda vez que um processo não consegue entrar em sua região crítica, o processo permanece em looping, testando uma condição, até que lhe seja permitido o acesso; Solução: a introdução de mecanismos de sincronização que permitam que um processo, quando não puder entrar em sua região crítica, seja colocado no estado de espera.

39 7.6 Sincronização Condicional É uma situação em que o acesso ao recurso compartilhado exige a sincronização de processos vinculada a uma condição de acesso. Um recurso pode não se encontrar pronto para uso devido a uma condição específica. Um exemplo clássico desse tipo de sincronização é a comunicação entre dois processos através de operações de gravação e leitura em um buffer, onde processos geram informações (processos produtores) utilizadas por outros processos (processos consumidores). O programa a seguir exemplifica o problema da sincronização condicional, também conhecido como problema do produtor/consumidor ou do buffer limitado.

40 7.6 Sincronização Condicional struct Tipo_Dado { //Tipo qualquer void Produtor () { //Código definido posteriormente void Consumidor () { //Código definido posteriormente void main () { const TamBuf = //Tamanho qualquer Tipo_Dado[] Buffer = new Tipo_Dado [TamBuf]; Tipo_Dado Dado1, Dado2; int Cont = 0; PARBEGIN Produtor (); Consumidor (); PAREND

41 7.6 Sincronização Condicional void Produtor () { do { Produz_Dado (Dado1); while (Cont == TamBuf) { Grava_Buffer (Dado1, Buffer); Cont++; while (true); void Consumidor () { do { while (Cont == 0) { Le_Buffer (Dado2, Buffer); Consome_Dado (Dado2); Cont--; while (true); Não está sendo considerada, neste algoritmo, a implementação da exclusão mútua na variável compartilhada Cont. Apesar do algoritmo apresentado resolver a questão da sincronização condicional, não resolve o problema da espera ocupada.

42 7.7 Semáforos O conceito de semáforos foi proposto E. W. Dijkstra em 1965; Foi apresentado como um mecanismo de sincronização que permitia implementar, de forma simples, a exclusão mútua e a sincronização condicional entre dois processos; Atualmente, a maioria das linguagens de programação disponibiliza rotinas para o uso de semáforos; Definição: um semáforo é uma variável inteira, não negativa, que só pode ser manipulada por duas instruções, DOWN e UP; As instruções DOWN e UP são indivisíveis;

43 7.7 Semáforos Instrução UP: incrementa uma unidade ao valor do semáforo; Instrução DOWN: decrementa a variável semáforo; A instrução DOWN executada em um semáforo com valor 0 faz com que o processo entre no estado de espera. Os semáforos podem ser classificados como: Binários: só podem assumir os valores 0 e 1; Contadores: podem assumir qualquer valor inteiro positivo, além do 0.

44 7.7.1 Exclusão Mútua Utilizando Semáforos Pode ser implementada através de um semáforo binário associado ao recurso compartilhado; Vantagem: não ocorrência da espera ocupada; As instruções DOWN e UP funcionam respectivamente como protocolos de entrada e saída; O semáforo fica associado a um recurso compartilhado, indicando quando o recurso está sendo acessado por um dos processos concorrentes; Semáforo = 1 recurso livre e semáforo = 0 recurso em uso.

45 7.7.1 Exclusão Mútua Utilizando Semáforos Processo deseja entrar na região crítica DOWN (S> 0) DOWN (S= 0) UP (S) - processo sai da região crítica Processo acessa a região crítica Libera processo da fila de espera Fila de espera de processos

46 7.7.1 Exclusão Mútua Utilizando Semáforos void main () { Semaforo S = 1; PARBEGIN Processo_A (); Processo_B (); PAREND void Processo_A () { do { DOWN (S); Regiao_Critica_A; UP (S); while (true); void Processo_B () { do { DOWN (S); Regiao_Critica_B; UP (S); while (true);

47 7.7.1 Exclusão Mútua Utilizando Semáforos Processo Instrução S Espera A do 1 * B do 1 * A DOWN (S) 0 * B do 0 * A Regiao_Critica_A 0 * B DOWN (S) 0 Processo_B A UP (S) 1 Processo_B B DOWN (S) 0 Processo_B A do 0 Processo_B B Regiao_Critica_B 0 *

48 7.7.2 Sincronização Condicional Utilizando Semáforos Os semáforos podem ser utilizados nos casos onde a sincronização condicional é exigida. Um exemplo desse tipo de sincronização ocorre quando um processo solicita uma operação de E/S. O problema do produtor/consumidor já apresentado é um outro exemplo de como a exclusão mútua e a sincronização condicional podem ser implementadas com o uso de semáforos. Vejamos os exemplos a seguir:

49 7.7.2 Sincronização Condicional Utilizando Semáforos struct Tipo_Dado { //Tipo qualquer void main () { const TamBuf = 2; Tipo_Dado[] Buffer = new Tipo_Dado [TamBuf]; Tipo_Dado Dado1, Dado2; Semaforo Vazio = TamBuf; Semaforo Cheio = 0; Semaforo Mutex = 1 PARBEGIN Produtor (); Consumidor (); PAREND

50 7.7.2 Sincronização Condicional Utilizando Semáforos void Produtor () { do { Produz_Dado (Dado1); DOWN (Vazio); DOWN (Mutex); Grava_Buffer (Dado1, Buffer); UP (Mutex); UP (Cheio); while (true); void Consumidor () { do { DOWN (Cheio); DOWN (Mutex); Le_Buffer (Dado2, Buffer); UP (Mutex); UP (Vazio); Consome_Dado (Dado2); while (true);

51 7.7.2 Sincronização Condicional Utilizando Semáforos Processo Instrução Vazio Cheio Mutex Espera Produtor Produz_Dado * Consumidor Down (Cheio) Consumidor Produtor Down (Vazio) Consumidor Produtor Down (Mutex) Consumidor Produtor Grava_Buffer (...) Consumidor Produtor Up (Mutex) Consumidor Produtor Up (Cheio) Consumidor Consumidor Down (Cheio) * Produtor Produz_Dado Produtor Consumidor Down (Mutex) Produtor Consumidor Le_Buffer (...) Produtor Consumidor Up (Mutex) Produtor Consumidor Up (Vazio) Produtor

52 7.7.2 Sincronização Condicional Utilizando Semáforos Semáforos contadores são bastante úteis quando aplicados em problemas de sincronização condicional onde existem processos concorrentes alocando recursos do mesmo tipo. O semáforo é inicializado com o número total de recursos de um determinado tipo, e, sempre que um processo deseja: Alocar um recurso, executa um DOWN; Liberar um recurso, executa um UP. Se o semáforo contador ficar com valor igual a 0, significa que não existem mais recursos a serem utilizados.

53 7.7.3 Problema dos Filósofos

54 7.7.3 Problema dos Filósofos O algoritmo Filosofo_1 apresenta uma solução que não resolve o problema totalmente, pois se todos os filósofos estiverem segurando apenas um palito cada um, nenhum filósofo conseguirá comer (deadlock). Existem várias soluções para resolver o problema dos filósofos sem a ocorrência do deadlock: Permitir que apenas 4 filósofos sentem a mesa simultaneamente; Permitir que um filósofo pegue um palito apenas se o outro estiver disponível; Permitir que um filósofo ímpar pegue primeiro o seu palito da esquerda e depois o da direita, enquanto um filósofo par pegue o palito da direita e, em seguida, o da esquerda.

55 7.7.3 Problema dos Filósofos Versão 1 void main () { Semaforo[] Palito = {1, 1, 1, 1, 1; int I; PARBEGIN for (I=0; I<5; I++) Filosofo (I); PAREND void Filosofo (int I) { do { Pensando; DOWN (Palito[I]); DOWN (Palito[(I+1) % 5]); Comendo; UP (Palito[I]); UP (Palito[(I+1) % 5]); while (true);

56 7.7.3 Problema dos Filósofos versão 2 void main () { Semaforo[] Palito = {1, 1, 1, 1, 1; Semaforo Lugares = 4; int I; PARBEGIN for (I=0; I<5; I++) Filosofo (I); PAREND void Filosofo (int I) { do { Pensando; DOWN (Lugares); DOWN (Palito[I]); DOWN (Palito[(I+1) % 5]); Comendo; UP (Palito[I]); UP (Palito[(I+1) % 5]); UP (Lugares); while (true);

57 7.9 Troca de Mensagens É um mecanismo de comunicação e sincronização entre processos. Os processos cooperativos podem fazer uso de um buffer para trocar mensagens através de duas rotinas: SEND: permite o envio de uma mensagem para um processo receptor; RECEIVE: possibilita o recebimento de uma mensagem enviada por um processo transmissor. O mecanismo de troca de mensagens exige que os processos envolvidos na comunicação tenham suas execuções sincronizadas.

58 7.9 Troca de Mensagens Processo transmissor Processo receptor Canal de comunicação SEND RECEIVE

59 7.9 Troca de Mensagens A troca de mensagens entre processos pode ser implementada de duas maneiras: Comunicação direta: exige que, ao enviar ou receber uma mensagem, o processo enderece explicitamente o nome do processo receptor ou transmissor; Comunicação indireta: utiliza uma área compartilhada, onde as mensagens podem ser colocadas pelo processo transmissor e retiradas pelo receptor. Essa área é conhecida como mailbox ou port, e suas características, são definidas no momento de sua criação.

60 7.9 Troca de Mensagens Comunicação direta: Processo A Processo B

61 7.9 Troca de Mensagens Comunicação indireta: Processo A Processo B Mailbox ou Port

62 7.9 Troca de Mensagens Existem três diferentes esquemas para implementar a sincronização entre processos que trocam mensagens: Garantir que um processo, ao enviar uma mensagem, permaneça esperando até que o processo receptor a leia (rendezvous). Na mesma condição, um processo deve aguardar o envio da mensagem pelo transmissor; Permitir que o processo transmissor não permaneça bloqueado aguardando a leitura da mensagem pelo processo receptor; O terceiro esquema implementa uma forma assíncrona de comunicação, onde receptor e transmissor não permanecem aguardando o envio e o recebimento de mensagens.

63 7.10 Deadlock

64 7.10 Deadlock Deadlock é a situação em que um processo aguarda por um recurso que nunca estará disponível ou um evento que não ocorrerá. Essa situação é consequência, na maioria das vezes, do compartilhamento de recursos, como dispositivos, arquivos e registros, entre processos concorrentes em que a exclusão mútua é exigida. O problema do deadlock existe em qualquer sistema multiprogramável; no entanto as soluções implementadas devem considerar o tipo do sistema e o impacto em seu desempenho.

65 7.10 Deadlock Espera circular: Processo A solicita o Recurso 2 Processo A Recurso 1 alocado ao Processo A Recurso 2 Recurso 1 Processo B Recurso 2 alocado ao Processo B Processo B solicita o Recurso 1

66 7.10 Deadlock Para que ocorra a situação de deadlock, quatro condições são necessárias simultaneamente: 1. Exclusão mútua; 2. Espera por recurso; 3. Não-preempção; 4. Espera circular.

67 7.10 Prevenção de Deadlock Para prevenir a ocorrência de deadlocks, é preciso garantir que uma das quatro condições apresentadas, necessárias para sua existência, nunca se satisfaça. A ausência da primeira condição: nenhum processo terá que esperar para ter acesso a um recurso, mesmo que já esteja sendo utilizado por outro processo; Para evitar a segunda condição, processos que já possuam recursos garantidos não devem requisitar novos recursos;

68 7.10 Prevenção de Deadlock A terceira condição pode ser evitada quando é permitido que um recurso seja retirado de um processo no caso de outro processo necessitar do mesmo recurso; A última maneira de evitar um deadlock é excluir a possibilidade da quarta condição (espera circular). A prevenção de deadlocks evitando-se a ocorrência de qualquer uma das quatro condições é bastante limitada. É possível evitar o deadlock mesmo se todas as condições necessárias à sua ocorrência estejam presentes. Solução: algoritmo do banqueiro, proposto por Dijkstra (1965).

69 7.10 Detecção do Deadlock É um mecanismo que determina, realmente, a existência da situação de deadlock, permitindo identificar os recursos e processos envolvidos no problema. Para detectar deadlocks, os sistemas operacionais devem manter estruturas de dados capazes de identificar cada recurso do sistema, o processo que o está alocando e os processos que estão à espera da liberação do recurso. Dependendo do tipo de sistema, o ciclo de busca por um deadlock pode variar.

70 7.10 Correção do Deadlock Após a detecção do deadlock, o sistema operacional deverá de alguma forma corrigir o problema. Uma possível solução: eliminar um ou mais processos envolvidos no deadlock e desalocar os recursos já garantidos por eles, quebrando, assim, a espera circular. Os processos eliminados não tem como ser recuperados, porém outros processos, que antes estavam em deadlock, poderão prosseguir a execução. Uma solução menos drástica envolve a liberação de apenas alguns recursos alocados aos processos para outros processos, até que o ciclo de espera termine.

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

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

Sincronização e Comunicação entre Processos

Sincronização e Comunicação entre Processos Sincronização e Comunicação entre Processos Monitores/Semáforos Semáforos Mecanismos de sincronização nãoestruturados; Exige do desenvolvedor bastante cuidado, pois qualquer engano pode levar a problemas.

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

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

Sistemas Operacionais Aula 6

Sistemas Operacionais Aula 6 Sistemas Operacionais Aula 6 Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://dase.ifpe.edu.br/~alsm Curso de Análise e Desenvolvimento de Sistemas de Informação Recife - PE O que fazer

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Operacionais. Prof. André Y. Kusumoto Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Deadlocks Situação na qual um, ou mais processos, fica impedido de prosseguir sua execução devido ao fato de cada um estar aguardando

Leia mais

Comunicação entre Processos

Comunicação entre Processos Programação Paralela e Distribuída Ordenação e Sincronização Prof. Msc. Marcelo Iury de Sousa Oliveira marceloiury@gmail.com http://sites.google.com/site/marceloiury/ Comunicação entre Processos Processos

Leia mais

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais Fundamentos de Sistemas Operacionais Aula 6: Monitores, Troca de Mensagens e Deadlock Diego Passos Última Aulas Mecanismos de Exclusão Mútua Operações atômicas. Protocolos de controle de acesso. Spin-locks.

Leia mais

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais Fundamentos de Sistemas Operacionais Aula 5: Exclusão Mútua Diego Passos Última Aula Programação Concorrente Programas compostos por mais de um processo ou thread. Pode trazer benefícios: Simplificar o

Leia mais

LabSO Gerência de Processos. Retrospectiva da aula passada... Na aula passada... Na aula passada...

LabSO Gerência de Processos. Retrospectiva da aula passada... Na aula passada... Na aula passada... LabSO Gerência de Processos Retrospectiva da aula passada... AULA 4 Flávia Maristela (flavia@flaviamaristela.com) Romildo Martins (romildo@romildo.net) Na aula passada... Processos Estados do processo

Leia mais

Sistemas Operacionais: Sincronização entre processos

Sistemas Operacionais: Sincronização entre processos Sistemas Operacionais: Sincronização entre processos Sincronização Programa concorrente Executado por diversos processos Acesso concorrente a dados Paralelismo real x Paralelismo aparente Multiprocessadores:

Leia mais

SISTEMAS OPERACIONAIS. Sincronização e Comunicação entre Processos UNIBAN

SISTEMAS OPERACIONAIS. Sincronização e Comunicação entre Processos UNIBAN SISTEMAS OPERACIONAIS Sincronização e Comunicação entre Processos UNIBAN 40 SINCRONIZAÇÃO E COMUNICAÇÃO ENTRE PROCESSOS Na década de 1960, com o surgimento dos sistemas multiprogramáveis, passou a ser

Leia mais

DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO SISTEMAS OPERACIONAIS I SEM/12 PROVA I. Tempo de Prova: 100 minutos / Escore Máximo: 300 pontos

DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO SISTEMAS OPERACIONAIS I SEM/12 PROVA I. Tempo de Prova: 100 minutos / Escore Máximo: 300 pontos DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO SISTEMAS OPERACIONAIS I - 1 0 SEM/12 PROVA I Tempo de Prova: 100 minutos / Escore Máximo: 300 pontos Aluno: G A B A R I T O Escore: Responda às perguntas de forma

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Operacionais. Prof. André Y. Kusumoto Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Fundamentos Paradigma do produtor-consumidor Sincronização de Processos Produtor while (count == BUFFER_SIZE) ; //no-op //adiciona

Leia mais

Sincronização e comunicação entre entidades de processamento. Mutex Volnys Bernal 1. Tópicos. Exclusão Mútua (mutex) Exclusão Mútua (Mutex)

Sincronização e comunicação entre entidades de processamento. Mutex Volnys Bernal 1. Tópicos. Exclusão Mútua (mutex) Exclusão Mútua (Mutex) 2004-2013 Volnys Bernal 1 2004-2013 Volnys Bernal 2 Tópicos Exclusão Mútua (mutex) Volnys Borges Bernal volnys@lsi.usp.br http://www.lsi.usp.br/~volnys Exclusão Mútua () Objetivo, utilidade, requisitos

Leia mais

Aula 6: Comunicação entre processos. Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela

Aula 6: Comunicação entre processos. Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela Aula 6: Comunicação entre processos Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela (-- motivação --) Processos em execução no sistema operacional podem ser: Independentes:

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

Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação

Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação SISTEMAS OPERACIONAIS Aula 7 Regiane Kawasaki kawasaki@ufpa.br Slides adaptados da Profa. Sarita Mazzini Bruschi

Leia mais

Comunicação entre processos

Comunicação entre processos Universidade Federal do Acre Centro de Ciências Exatas e Tecnológicas Bacharelado em Sistemas de Informação Comunicação entre processos Macilon Araújo Costa Neto macilon@ufac.br Capítulo 2 do livro do

Leia mais

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

Sistemas Operacionais Sincronização e Comunicação entre Processos 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 profneto_ti@hotmail.com

Leia mais

Unidade III Gerência de Processos

Unidade III Gerência de Processos Sistemas Operacionais Unidade III Gerência de Processos http://www.lncc.br/~lrodrigo Professor: Luis Rodrigo lrodrigo@lncc.br Página: 1 de 34 Unidade III: Gerência de Processos Conceito de Processo Materialização

Leia mais

Programação Concorrente Locks

Programação Concorrente Locks Programação Concorrente Prof. Eduardo Alchieri Variáveis do tipo trava (lock) Lock: É um mecanismo de sincronização de processos/threads, em que processos/threads devem ser programados de modo que seus

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Processos Exclusão Mútua Mecanismos para se Obter Exclusão MútuaM Mecanismos de Hardware: Inibição de Interrupções Instrução TSL (Test and Set Lock) Mecanismos de Software: Com Espera

Leia mais

Exclusão Mútua (mutex)

Exclusão Mútua (mutex) 2004-2017 Volnys Bernal 1 Exclusão Mútua (mutex) Volnys Borges Bernal volnys@lsi.usp.br Departamento de Sistemas Eletrônicos Escola Politécnica da USP 2004-2017 Volnys Bernal 2 Tópicos Exclusão Mútua (Mutex)

Leia mais

Sistemas Distribuídos Aula 5

Sistemas Distribuídos Aula 5 Sistemas Distribuídos Aula 5 Aula passada Sincronização Race condition Região crítica Locks Algoritmo de Peterson Aula de hoje Atomicidade test-and-set Locks revisitado Semáforos Dois problemas Atomicidade

Leia mais

Problema do Produtor -Consumidor. Solução por semáforos

Problema do Produtor -Consumidor. Solução por semáforos Problema do Produtor -Consumidor Solução por semáforos Autoria Autores alunos da disciplina SO II Local Instituto de Informática UFRGS Versão v7 agosto de 2008 por C. Geyer Visão geral do assunto...2 Conceito...3

Leia mais

Programação concorrente (processos e threads)

Programação concorrente (processos e threads) Programação concorrente (processos e threads) Programação concorrente Por que precisamos dela? Para utilizar o processador completamente Paralelismo entre CPU e dispositivos de I/O Para modelar o paralelismo

Leia mais

Sistemas de Informação. Sistemas Operacionais

Sistemas de Informação. Sistemas Operacionais Sistemas de Informação Sistemas Operacionais PROCESSOS E THREADS PARTE III SUMÁRIO 4. GERÊNCIA DO PROCESSADOR: 4.1 Introdução; 4.2 Funções Básicas; 4.3 Critérios de Escalonamento; 4.4 Escalonamentos Não-Preemptivos

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

Capítulo 3 Programação Concorrente. Nunca encontrei um homem tão ignorante que eu não pudesse aprender algo com ele.

Capítulo 3 Programação Concorrente. Nunca encontrei um homem tão ignorante que eu não pudesse aprender algo com ele. Universidade Federal de Itajubá UNIFEI Instituto de Engenharia de Sistemas e Tecnologias da Informação IESTI CCO 004 Sistemas Operacionais Prof. Edmilson Marmo Moreira 3.1 Introdução Capítulo 3 Programação

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

Sistemas Operacionais Sistemas Operacionais Processos - Parte 2 Prof. Dr. Fábio Rodrigues de la Rocha (Processos - Parte 2) 1 / 33 (Processos - Parte 2) 2 / 33 (Processos - Parte 2) 3 / 33 (Processos - Parte 2) 4 / 33 (Processos

Leia mais

Redes de Computadores. INF201 - Fundamentos de Sistemas Operacionais - 2º Período

Redes de Computadores. INF201 - Fundamentos de Sistemas Operacionais - 2º Período Redes de Computadores INF201 - Fundamentos de Sistemas Operacionais - 2º Período PARTE II: PROCESSOS E THREADS SUMÁRIO 5. PROCESSO: 5.1 Introdução; 5.2 Estrutura do Processo; 5.3 Estados do Processo; 5.4

Leia mais

1 Porque o estado de um processo deve ser salvo quando ele deixa a CPU?

1 Porque o estado de um processo deve ser salvo quando ele deixa a CPU? 1 Porque o estado de um processo deve ser salvo quando ele deixa a CPU? 2 O que é ambiente de execução? 3 Qual a finalidade da PCB? 4 Quais os componentes básicos da PCB? 5 Quais os 3 grupos de elemento

Leia mais

Comunicação entre processos (2)

Comunicação entre processos (2) Comunicação entre processos (2) Pedro Cruz EEL770 Sistemas Operacionais Lembretes Proposta de trabalho Enviar para cruz@gta.ufrj.br Prazo: dia 02 de abril 2 Aula passada Comunicação entre processos é útil

Leia mais

Sistemas Operacionais. Gerência de Processador

Sistemas Operacionais. Gerência de Processador Sistemas Operacionais Gerência de Processador Sumário 1. Introdução 2. Funções Básicas do Escalonamento 3. Critérios de Escalonamento 4. Escalonamento 1. Não-Preemptivo 2. Preemptivo 5. Políticas de Escalonamento

Leia mais

Sincronização e Comunicação

Sincronização e Comunicação Sincronização e Comunicação Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Maio, 2017 1 / 28 Sumário 1 Concorrência 2 Sistemas Multiprogramáveis Troca de mensagens

Leia mais

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais Fundamentos de Sistemas Operacionais Aula 4: Programação Concorrente Diego Passos Últimas Aulas Processos Compostos por: Código (programa). Estado (memória, registradores). Em um sistema com multiprogramação:

Leia mais

Sistemas Operacionais. Condição de corrida e Região crítica

Sistemas Operacionais. Condição de corrida e Região crítica Sistemas Operacionais Condição de corrida e Região crítica Região Crítica Parte do código que acessa a área compartilhada Condição em que dois processos lêem e escrevem um dado compartilhado e o resultado

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais I Índice 2 Processos... 1 2.2.5 Semáforos... 1 2.2.6 Monitores... 2 2.2.7 Passagem de Mensagens... 5 2 Processos 2.2.5 Semáforos Para resolver este problema, Dijkstra propôs em 1965

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Operacionais. Prof. André Y. Kusumoto Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Semáforos Sincronização de Processos Um semáforo é uma estrutura de dados que consiste em um número inteiro e em uma fila Seu

Leia mais

Sincronização de Processos (2)

Sincronização de Processos (2) Sincronização de Processos (2) Tipos de Soluções (cont.) Soluções de Hardware Inibição de interrupções Instrução TSL (apresenta busy wait) Soluções de software com busy wait Variável de bloqueio Alternância

Leia mais

Sistemas Operacionais. Deadlock

Sistemas Operacionais. Deadlock Sistemas Operacionais Deadlock Deadlocks! Recursos: hardware ou informação! Preemptivo X não preemptivo! Uso do Recurso:! Pedido (Request ou Open)! Uso! Liberação! Um conjunto de processos está em deadlock

Leia mais

Concorrência. Condições de Corrida. 5a. Tentativa. Dificuldades: Sincronização de Processos (2) Aula 11 Profa. Patrícia Dockhorn Costa

Concorrência. Condições de Corrida. 5a. Tentativa. Dificuldades: Sincronização de Processos (2) Aula 11 Profa. Patrícia Dockhorn Costa Concorrência Dificuldades: Sincronização de Processos (2) Aula 11 Profa. Patrícia Dockhorn Costa Compartilhamento de recursos globais. Gerência de alocação de recursos. Localização de erros de programação

Leia mais

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período Redes de Computadores Fundamentos de Sistemas Operacionais - 2º Período PARTE III: GERÊNCIA DE RECURSOS SUMÁRIO 8. GERÊNCIA DO PROCESSADOR: 8.1 Introdução; 8.2 Funções Básicas; 8.3 Critérios de Escalonamento;

Leia mais

Sistemas Operacionais. Comunicação entre processos

Sistemas Operacionais. Comunicação entre processos Sistemas Operacionais Comunicação entre processos Comunicação entre Processos Os SO s hoje são multi-tarefa Alguns processos precisam cooperar para cumprir seus objetivos Sugestões de implementação? Exemplos

Leia mais

Gerência de Recursos. Gerência do Processador

Gerência de Recursos. Gerência do Processador Gerência de Recursos Gerência do Processador Escalonamento Não-Preemptivos e Preemptivos Preempção - possibilidade de o SO interromper um processo em execução e substituí-lo por um outro. O Escalonamento

Leia mais

Threads e Sincronização no Linux

Threads e Sincronização no Linux Threads e Sincronização no Linux MCTA026-13 - Sistemas Operacionais Emilio Francesquini e Fernando Teubl Ferreira e.francesquini@ufabc.edu.br / fernando.teubl@ufabc.edu.br 2019.Q1 Centro de Matemática,

Leia mais

SSC0640 Sistemas Operacionais I

SSC0640 Sistemas Operacionais I SSC0640 Sistemas Operacionais I 8ª Aula Comunicação e Sincronismo de Processos Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Slides adaptados de Marcos José Santana / Regina H. C. Santana / Luciana

Leia mais

Sincronização de Processos (2)

Sincronização de Processos (2) Sincronização de Processos (2) Tipos de Soluções (cont.) Soluções de Hardware Inibição de interrupções Instrução TSL (apresenta busy wait) Soluções de software com busy wait Variável de bloqueio Alternância

Leia mais

Gerência do Processador. Adão de Melo Neto

Gerência do Processador. Adão de Melo Neto Gerência do Processador Adão de Melo Neto 1 Introdução Sistemas Multiprogramáveis: Múltiplos processos podem permanecer na memória principal compartilhando o uso da CPU. POLÍTICA DE ESCALONAMENTO São um

Leia mais

Sistemas de Informação. Sistemas Operacionais

Sistemas de Informação. Sistemas Operacionais Sistemas de Informação Sistemas Operacionais PROCESSOS E THREADS PARTE I SUMÁRIO 2. PROCESSO: 2.1 Introdução; 2.2 Estrutura do Processo; 2.3 Estados do Processo; 2.4 Mudanças de Estado do Processo; 2.5

Leia mais

Programação Orientada a Objetos. Concorrência

Programação Orientada a Objetos. Concorrência Programação Orientada a Objetos Concorrência Cristiano Lehrer, M.Sc. Níveis de concorrência: Introdução Nível de instrução de máquina: Executando duas ou mais instruções de máquina simultaneamente. Nível

Leia mais

Arquitetura de Computadores Sistemas Operacionais II

Arquitetura de Computadores Sistemas Operacionais II Definição de Processo Arquitetura de Computadores Sistemas Operacionais II Processo é o mesmo de Programa? Programa Estrutura estática Instruções + Dados Processo Entidade Ativa Instância de um Programa

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Processos Semáforos Semáforos Mecanismo de sincronização que não requer espera ocupada Dijkstra propôs usar uma variável inteira para contar o n o de WAKEUPs para uso futuro Menos

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS Sincronização Slide 7 Nielsen C. Damasceno Introdução Utilizando Sistemas Distribuídos, uma grande dificuldade que temos é como garantir o acesso exclusivo a um recurso compartilhado,

Leia mais

Sincronização e Comunicação de/entre Processos. Na Aula Anterior... Nesta Aula. Comunicação entre Processos. Pipes 07/09/2016

Sincronização e Comunicação de/entre Processos. Na Aula Anterior... Nesta Aula. Comunicação entre Processos. Pipes 07/09/2016 GSI018 Sistemas Operacionais 07/09/2016 Sincronização e Comunicação de/entre Processos Universidade Federal de Uberlândia Faculdade de Computação Prof. Dr. rer. nat. Daniel D. Abdala Na Aula Anterior...

Leia mais

Sistemas Operacionais

Sistemas Operacionais Introdução 2 a edição Revisão: Fev/2003 Sistemas Operacionais Programação concorrente Capítulo 3 Programa executado por apenas um processo é dito de programa seqüêncial Existe apenas um fluxo de controle

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Deadlocks Referência Sistemas operacionais modernos Andrew S. TANENBAUM Prentice-Hall, 1995 Seção 11.5 pág. 340-344 2 Conteúdo Detecção de deadlock distribuído Detecção centralizada

Leia mais

DEADLOCKS IMPASSES. Vinícius Pádua

DEADLOCKS IMPASSES. Vinícius Pádua DEADLOCKS IMPASSES O que é um Deadlock? 2 O que é um Deadlock? Cenário Dois processos : Gravar CD com dados do scanner Processo A solicita o CD é autorizado Processo B solicita o scanner é autorizado Processo

Leia mais

Sistemas Distribuídos Aula 7

Sistemas Distribuídos Aula 7 Sistemas Distribuídos Aula 7 Aula passada Atomicidade Test-and-set Locks revisitado Semáforos Dois problemas Aula de hoje Limitação dos semáforos Monitores Variáveis de condição Semântica do signal Sincronização

Leia mais

Semáforos. Gerenciamento de Recursos I

Semáforos. Gerenciamento de Recursos I Semáforos O problema dos leitores/escritores, apresentado a seguir, consiste em sincronizar processos que consultam/atualizam dados em uma base comum. Pode haver mais de um leitor lendo ao mesmo tempo;

Leia mais

SISTEMA DE ARQUIVOS DO SISTEMA OPERACIONAL

SISTEMA DE ARQUIVOS DO SISTEMA OPERACIONAL . SISTEMA DE ARQUIVOS DO SISTEMA OPERACIONAL 1. A organização de um arquivo define como os dados estão internamente organizados. Explique a organização de arquivos indexada. NA ORGANIZAÇÃO INDEXADO O ARQUIVO

Leia mais

Questões de Múltipla escolha

Questões de Múltipla escolha ATPS Sistemas Operacionais Professor Matheus de Lara Calache Valor total do trabalho: 10 Cada resposta vale 0,34. Questões de Múltipla escolha 1) Processos podem ser organizados em filas como Fila de Prontos

Leia mais

Capítulo 7: Impasse (Deadlocks( Deadlocks)

Capítulo 7: Impasse (Deadlocks( Deadlocks) Capítulo 7: Impasse (Deadlocks( Deadlocks) Capítulo 7: Impasse (Deadlocks( Deadlocks) O Problema do Impasse Modelo de Sistema Caracterização de Impasse Métodos para Manipular Impasses Prevenção de Impasse

Leia mais

Alocação de Recursos. Introdução. Sistemas de Tempo Real: Introdução. Modelo de Recursos. Modelo de Recursos. Modelo de Recursos

Alocação de Recursos. Introdução. Sistemas de Tempo Real: Introdução. Modelo de Recursos. Modelo de Recursos. Modelo de Recursos Introdução Sistemas de Tempo Real: Alocação de Recursos Rômulo Silva de Oliveira Departamento de Automação e Sistemas DAS UFSC Processador é o recurso mais imtante Mais essencial Outros recursos também

Leia mais

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais DCA-108 Sistemas Operacionais Capítulo 2 Luiz Affonso Guedes www.dca.ufrn.br/~affonso affonso@dca.ufrn.br Multiprogramação Luiz Affonso Guedes 1 Luiz Affonso Guedes 2 Conteúdo Caracterização de um SO Moderno

Leia mais

Alocação de Recursos. Introdução. Sistemas de Tempo Real: Introdução. Modelo de Recursos. Modelo de Recursos. Modelo de Recursos

Alocação de Recursos. Introdução. Sistemas de Tempo Real: Introdução. Modelo de Recursos. Modelo de Recursos. Modelo de Recursos Introdução Sistemas de Tempo Real: Alocação de Recursos Rômulo Silva de Oliveira Departamento de Automação e Sistemas DAS UFSC Processador é o recurso mais imtante Mais essencial Outros recursos também

Leia mais

Sistemas Operacionais

Sistemas Operacionais Introdução Sistemas Operacionais Sincronização de processos Aula 07 Em sistemas multiprogramados há interação entre processos para comunicação, que pode ser feita via compartilhamento de memória/arquivos

Leia mais

Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação

Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação SISTEMAS OPERACIONAIS Aulas 6 Regiane Kawasaki kawasaki@ufpa.br Slides adaptados da Profa. Sarita Mazzini Bruschi

Leia mais

Sistemas Operacionais. DeadLock. Edeyson Andrade Gomes.

Sistemas Operacionais. DeadLock. Edeyson Andrade Gomes. Sistemas Operacionais DeadLock Edeyson Andrade Gomes www.edeyson.com.br Roteiro da Aula DeadLock Metas Algoritmos 2 DeadLock Um estado de deadlock ocorre quando dois ou mais processos estão esperando por

Leia mais

SISTEMAS OPERACIONAIS. 2ª. Lista de Exercícios

SISTEMAS OPERACIONAIS. 2ª. Lista de Exercícios SISTEMAS OPERACIONAIS INF09344 - Sistemas Operacionais / INF02780 - Sistemas Operacionais / INF02828 - Sistemas de Programação II Prof a. Roberta Lima Gomes (soufes@gmail.com) 2ª. Lista de Exercícios Data

Leia mais

Sistemas Operacionais

Sistemas Operacionais Introdução Sistemas Operacionais Sincronização de processos Aula 08 Em sistemas multiprogramados há interação entre processos para comunicação, que pode ser feita via compartilhamento de memória/arquivos

Leia mais

Escalonamento. Eduardo Ferreira dos Santos. Abril, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 42

Escalonamento. Eduardo Ferreira dos Santos. Abril, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 42 Escalonamento Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Abril, 2017 1 / 42 Sumário 1 Multiprogramação 2 Escalonamento 3 Concorrência Memória compartilhada

Leia mais

Escalonamento. Eduardo Ferreira dos Santos. Abril, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 28

Escalonamento. Eduardo Ferreira dos Santos. Abril, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 28 Escalonamento Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Abril, 2016 1 / 28 Sumário 1 Multiprogramação 2 Escalonamento 3 Concorrência 2 / 28 Multiprogramação

Leia mais

Capítulo 3 Deadlocks - Impasses

Capítulo 3 Deadlocks - Impasses Capítulo 3 Deadlocks - Impasses 3.1. Recurso 3.2. Introdução aos deadlocks 3.3. Algoritmo do avestruz 3.4. Detecção e recuperação de deadlocks 3.5. Evitando deadlocks 3.6. Prevenção de deadlocks 3.7. Outras

Leia mais

Semáforos. Gerenciamento de Recursos I

Semáforos. Gerenciamento de Recursos I Semáforos O problema dos leitores/escritores, apresentado a seguir, consiste em sincronizar processos que consultam/atualizam dados em uma base comum. Pode haver mais de um leitor lendo ao mesmo tempo;

Leia mais

Impasses. Pedro Cruz. EEL770 Sistemas Operacionais

Impasses. Pedro Cruz. EEL770 Sistemas Operacionais Impasses Pedro Cruz EEL770 Sistemas Operacionais Lembretes Proposta de trabalho Enviar para cruz@gta.ufrj.br Prazo: hoje 2 Última aula Semáforos Up Down Mutexes Monitor Mensagens Bloquear no envio/recebimento

Leia mais

ENADE 2011 SISTEMAS OPERACIONAIS

ENADE 2011 SISTEMAS OPERACIONAIS ENADE 2011 SISTEMAS OPERACIONAIS SOs: conteúdos comuns Gerência de processos/processador Comunicação Concorrência e Sinc. de Processos Gerenciamento de Memória Alocação de Recursos e Deadlocks Sistemas

Leia mais

Thread. Thread. Sistemas Operacionais. Leonard B. Moreira. UNIVERSIDADE ESTÁCIO DE SÁ fevereiro, / 41

Thread. Thread. Sistemas Operacionais. Leonard B. Moreira. UNIVERSIDADE ESTÁCIO DE SÁ   fevereiro, / 41 Thread Sistemas Operacionais Leonard B. Moreira UNIVERSIDADE ESTÁCIO DE SÁ e-mail: leonardbarreto@gmail.com.br fevereiro, 2013 1 / 41 Sumário 1 Introdução 2 Ambientes Monothread 3 Ambientes Multithread

Leia mais

Sistemas Operacionais

Sistemas Operacionais Introdução Inst tituto de Info ormátic ca - UF FRGS Sistemas Operacionais i Introdução à Programação Concorrente Aula 05 Em sistemas multiprogramados há interação entre processos para comunicação, que

Leia mais

LabSO Gerência de Processos. Processos. Porque eu preciso entender este assunto?

LabSO Gerência de Processos. Processos. Porque eu preciso entender este assunto? LabSO Gerência de AULA 3 Flávia Maristela (flavia@flaviamaristela.com) Romildo Martins (romildo@romildo.net) Porque eu preciso entender este assunto? Para entender como um computador consegue executar

Leia mais

Introdução a Programação Concorrente. Aula 02. Prof. André Luis Meneses Silva

Introdução a Programação Concorrente. Aula 02. Prof. André Luis Meneses Silva Introdução a Programação Concorrente Aula 02 Prof. André Luis Meneses Silva Agenda Pthreads Trabalhando com Threads Exclusão Mútua Semáforos Pthreads Históricamente, fabricantes de hardware implementam

Leia mais

Tipos de Soluções (cont.)

Tipos de Soluções (cont.) Sincronização de Processos (2) Tipos de Soluções (cont.) Soluções de Hardware Inibição de interrupções Instrução TSL (apresenta busy wait) Soluções de software com busy wait Variável de bloqueio Alternância

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Programação Concorrente Sincronização entre processos Edson Moreno edsonmoreno@pucrsbr http://wwwinfpucrsbr/~emoreno Sumário Conceituação Princípios de concorrência Região crítica

Leia mais

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais Fundamentos de Sistemas Operacionais Aula 12: Revisão para a P1 Diego Passos Capítulo 1 Sistemas Operacionais São programas. Duas funções: Gerenciar os recursos do hardware. Dividir entre os vários processos.

Leia mais

Sincronização em Sistemas Distribuídos

Sincronização em Sistemas Distribuídos Sincronização em Sistemas Distribuídos Universidade Federal do ABC Turma: Ciência da Computação Prof. Dr. Francisco Isidro Massetto Sincronização Como as regiões críticas são implementadas em um SD? Como

Leia mais

Sistemas Operacionais. Concorrência

Sistemas Operacionais. Concorrência Sistemas Operacionais Concorrência Sumário 1. Introdução 2. Sistemas Multiprogramáveis 3. Interrupções e Exceções 4. Operações de E/S 1. Entrada e Saída Controlada por Programa 2. Evolução da Entrada e

Leia mais

Problema dos Leitores/Escritores

Problema dos Leitores/Escritores Sincronização: Semáforos Problema dos Leitores/Escritores Autores Eduardo André Mallmann 0905/96-9 João Paulo Reginatto 1530/96-0 Local Instituto de Informática UFRGS disciplina: Sistemas Operacionais

Leia mais

OO Engenharia Eletrônica

OO Engenharia Eletrônica OO Engenharia Eletrônica - Programação em C/C++ Slides 18: Introdução à programação multi-thread. Thread: linha de execução de um processo. Multi-thread: execução de múltiplas threads em um processo. Prof.

Leia mais

Estrutura deste arquivo.. Comunicação Interprocesso Parte 1 de 2 - Cap. 2. Introdução 1 CONDIÇÕES DE CORRIDA

Estrutura deste arquivo.. Comunicação Interprocesso Parte 1 de 2 - Cap. 2. Introdução 1 CONDIÇÕES DE CORRIDA Estrutura deste arquivo.. Comunicação Interprocesso Parte 1 de 2 - Cap. 2 Prof. Alexandre Beletti Ferreira 1. Condições de Corrida 2. Seções Críticas 3. Exclusão Mútua com Espera Ativa 1. Desativando Interrupções

Leia mais

SSC0640 Sistemas Operacionais I

SSC0640 Sistemas Operacionais I SSC64 Sistemas Operacionais I 2ª Aula Deadlocks Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Slides adaptados de Marcos José Santana / Regina H. C. Santana / Luciana A. F. Martimiano baseados no livro

Leia mais

Gerência do Processador. Adão de Melo Neto

Gerência do Processador. Adão de Melo Neto Gerência do Processador Adão de Melo Neto 1 Introdução Sistemas Multiprogramáveis: Múltiplos processos podem permanecer na memória principal compartilhando o uso da CPU. POLÍTICA DE ESCALONAMENTO Como

Leia mais

Capítulo 3. Deadlocks. Recursos

Capítulo 3. Deadlocks. Recursos Capítulo 3 Deadlocks 3.1. Recursos 3.2. Introdução a deadlocks 3.3. O algoritmo a avestruz 3.4. Detecção e recuperação de deadlock 3.5. Evitando Deadlock 3.6. Prevenindo Deadlock 3.7. Outros assuntos 1

Leia mais

Unidade 3. Controle de Concorrência. Primitivas de Programação Concorrente Clássica

Unidade 3. Controle de Concorrência. Primitivas de Programação Concorrente Clássica Unidade 3 Controle de Concorrência Primitivas de Programação Concorrente Clássica Programação Concorrente A abstração de programação concorrente é o estudo de sequênciasde execução intercaladas, de instruções

Leia mais

PCS-2529 Introdução aos Processadores. Prof. Dr. Paulo Sérgio Cugnasca

PCS-2529 Introdução aos Processadores. Prof. Dr. Paulo Sérgio Cugnasca PCS-2529 Introdução aos Processadores Prof. Dr. Paulo Sérgio Cugnasca 1 2 Existem 4 esquemas diferentes de E/S possíveis, cada um se aplicando em uma determinada situação. E/S Programada. E/S Acionada

Leia mais

( ) ( ) Auto Avaliação F ( ) M ( ) D ( ) Seqüência: Sistemas Operacionais - UCSAL Professor : Marco Antônio C. Câmara Exercícios - Dia 20/04/2011

( ) ( ) Auto Avaliação F ( ) M ( ) D ( ) Seqüência: Sistemas Operacionais - UCSAL Professor : Marco Antônio C. Câmara Exercícios - Dia 20/04/2011 Aluno(a) : A avaliação terá a duração de uma hora, portanto, seja objetivo nas respostas e procure não perder tempo. A prova deverá ser realizada sem rasuras e com caneta azul ou preta. Eventuais questões

Leia mais

Capítulo 3. Programação Concorrente. Conteúdo. Objetivos. Recordando. Recordando. Objetivos de sistema operacional. DCA-108 Sistemas Operacionais

Capítulo 3. Programação Concorrente. Conteúdo. Objetivos. Recordando. Recordando. Objetivos de sistema operacional. DCA-108 Sistemas Operacionais DCA-108 Sistemas Operacionais Capítulo 3 Luiz Affonso Guedes www.dca.ufrn.br/~affonso affonso@dca.ufrn.br Programação Luiz Affonso Guedes 1 Luiz Affonso Guedes 2 Conteúdo Caracterização e escopo da programação

Leia mais