sistemas operacionais - aula 8 - sincronização e comunicação entre processos
Post on 11-Jun-2015
399 Views
Preview:
DESCRIPTION
TRANSCRIPT
TADS - SO – Aula 8Prof. Charles Fortes
chalkmaster@gmail.com
Sistemas Operacionais
Sincronização e Comunicação entre Processos
2
Atualizando a Turma
3
4
Previously on TADS-SO...
5
Conceitos básicos de SO
O que é um sistema operacional?
É um programa ou conjunto de programas cuja função é gerenciar os recursos do hardware
Funções básicas
Facilidade de acesso aos recursos do sistema + Compartilhar os recursos de forma organizada e protegida
6
Conceitos básicos de SO
Hardware e Software são logicamente equivalentes
Sistemas monoprogramáveis executam apenas uma tarefa por vez
Sistemas multiprogramáveis executam várias tarefas “ao mesmo tempo”
Sistemas multiprocessadores possuem vários processadores, além disto podem ser fortemente ou fracamente acoplados.
7
Conceitos básicos de SO
O Processar é comporto por: Unidade de Controle, Unidade Lógica e Aritmética, e registradores
A memória principal pode ser volátil ou não volátil
Memória secundária é o armazenamento de dados “permanente” e não volátil
A linguagem de máquina é o que o processador realmente entende e está diretamente ligado a sua arquitetura, que comumente vão ser RISC ou CISC
8
Conceitos básicos de SO
Tradutor: Traduz o programa para linguagem de máquina
Interpretador: Interpreta código direto
Linker: Liga vários módulos como um só
Loader: Carrega o programa na memória
Depurador: Acompanhar a execução de um programa
9
Conceitos básicos de SO
Multiprogramáveis surgiram pela necessidade de usar melhor os recursos do computador
Ao final de cada instrução, a unidade de controle verifica interrupções e exceções e as trata
10
Conceitos básicos de SO
Kernel
oferece um conjunto de rotinas e serviços
11
Conceitos básicos de SO
Processos e Threads
ProgramaConjunto de instruções
Processoum programa em execução
12
Aplicações Concorrentes
13
A aplicação concorrente tem como base a execução cooperativa de múltiplos processos ou threads que trabalham em uma mesma tarefa na busca de um resultado comum.
14
Quando temos apenas um processador, o sistema operacional alterna a execução dos processos segundo os critérios de escalonamento pré-estabelecidos para ele.
Mesmo não havendo paralelismo real, ainda assim conseguimos aumento de desempenho.
15
Em uma aplicação concorrente, os recursos de do sistema são
compartilhados, como E/S, áreas de memória, arquivos, etc.
Este compartilhamento muitas vezes cria situações indesejadas, por isto estes processos tem que ter suas execuções sincronizadas. Estes recursos são oferecidos
pelos sistemas operacionais.
16
Comunicação entre processosTrocas de mensagens e variáveis compartilhadas
17
Especificação de ConcorrênciaComandos Fork e Join
18
Especificação de Concorrência
19
Problemas de Compartilhamento de RecursosProblema da conta corrente
20
Problemas de Compartilhamento de RecursosNem sempre a sai como se parece
21
Problemas de Compartilhamento de RecursosNem sempre a sai como se parece
22
Exclusão Mútua
A forma mais eficiente é impedir o acesso simultâneo. Quando é assim, o acesso a área crítica é feito um bloqueio para acesso exclusivo
23
No starvation (espera indefinida), um processo nunca consegue acesso ao recurso compartilhado. Quando um acaba o SO escolhe quem vai acessar agora, e isto pode fazer com que seu processo sempre perca pela aleatoriedade ou por prioridade
Exclusão MútuaSituações indesejadas
24
A solução seria usar uma fila (FIFO) para controlar as entradas
Exclusão MútuaSituações indesejadas
25
Desabilitar as interrupções
Instruções Test-And-Set
Soluções de HardwareSituações indesejadas
26
Soluções de HardwareTest-And-Set
27
Soluções de HardwareTest-And-Set
28
Primeiro Algoritmo
Soluções de SoftwareSituações indesejadas
29
Segundo Algoritmo
Soluções de SoftwareSituações indesejadas
30
Terceiro Algoritmo
Soluções de SoftwareSituações indesejadas
31
Quarto Algoritmo
Soluções de SoftwareSituações indesejadas
32
Algoritmo de Peterson
Soluções de SoftwareSituações indesejadas
33
Todos eles tem o problema do busy wait
Soluções de SoftwareSituações indesejadas
34
Vinculado a uma condição de acesso.
Sincronização Condicional
35
Semáforos
36
DeadLock
37
38
39
Problema dos filósofos
Uma mesa com cinco pratos e cinco garfos, onde os filósofos podem sentar, comer e pensar. Toda vez que um filósofo para e pensar e deseja comer, é necessário que ele utilize dois garfos, posicionados a sua direita e sua esquerda
40
Problema dos filósofos
Soluções
a) Permitir que apenas quatro filósofos sentem a mesa simultaneamente;
b) Permitir que o filósofo pegue um garfo apenas se o outro estiver disponível;
c) Permitir que um filósofo ímpar pegue primeiro o seu garfo da esquerda e depois o da direita, enquanto um filósofo par pegue o garfo da direita e, em seguida, o da esquerda;
41
Exemplo do Barbeiro (problema do barbeiro)
Um barbeiro recebe clientes para cortar cabelo. Na barbearia há uma cadeira de barbeiro e apenas cinco cadeiras para clientes esperarem. Quando um cliente chega, caso o barbeiro esteja trabalhando, ele senta se houver cadeira vazia ou vai embora se todas as cadeiras estiverem ocupadas. No caso de o barbeiro não ter nenhum cliente para atender, ele senta na cadeira e dorme até que um novo cliente apareça.
42
Monitores
43
Sincronização condicional entre Monitores
44
Let’s Code
45
Exercício para entregar por e-mail
Enviar para: chalkmaster@gmail.comAssunto: [TADS_ASO] Exercício Capítulo 7
Prazo limite: 22/05/2014 às 23h59m horário de Brasília
(valerá o horário que o google marcar como “recebido” no e-mail)
46
Livro texto: Arquitetura de Sistemas Operacionais 4ªed.Capítulo 7 – Item 7.11 página 131
Questões de 1 a 13 apenas
Se pegar as respostas na internet ou eu receber 2 iguais eu anulo o exercício
Valendo: 1 x
47
Dúvidas?
chalkmaster@gmail.com
top related