A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Sistemas Operacionais

Apresentações semelhantes


Apresentação em tema: "Sistemas Operacionais"— Transcrição da apresentação:

1 Sistemas Operacionais
Técnico em Informática Professora: Michelle Nery

2 Ementa Sistemas Operacionais Quatro Operações Básicas
Gerenciamento de Processos Gerenciamento de Memória Gerenciamento de Dispositivo de Entrada/Saída Gerenciamento de Sistema de Arquivos

3 Conteúdo Gerenciamento de Processos Processos Threads
Comunicação Interprocessos Escalonamento de Processos Deadlocks

4 Processos Processos Em um sistema multiprogramado, a CPU pode saltar de um programa para o outro, dando aos usuários a ilusão de paralelismo, ou pseudo-paralelismo. O verdadeiro paralelismo de hardware dos sistemas multiprocessadores. A troca entre de processos ocorridos na CPU é chamada de multiprogramação.

5 Processos Modelo de Processo Multiprogramação
a) Quatro programas na memória b) Cada processo está executando em instantes diferentes e todos eles estão avançando proporcionalmente.

6 Processos Modelo de Processo Processo vs. Programa
Um processo possui um programa, entrada, saída e um estado. Exemplo do bolo, calculadora, etc.

7 Processos Estados de Processos Em execução: Usando a CPU
Pronto: Executável, temporariamente parada para dar lugar a outro processo. Bloqueado: Incapaz de executar enquanto um evento externo não ocorrer.

8 Processos Transições entre os Estados de Processos
De Execução p/ Bloqueado: Um processo bloqueia porque está esperando uma entrada ou recurso ainda não disponível. De Execução p/ Pronto: O processo em execução já teve tempo suficiente de CPU e é momento de deixar outro processo ocupá-la. De Pronto p/ Execução: Todos os processos já compartilharam a CPU, e é hora do primeiro processo obter novamente a CPU. De Bloqueado p/ Pronto: Ocorre quando acontece um evento externo pelo qual o processo estava aguardando (a chegada de alguma entrada).

9 Threads Cada processo tem seu espaço de endereçamento e um único thread (fluxo) de controle = processo. Contudo, é desejável ter múltiplos threads de controle no mesmo espaço de endereçamento executando quase paralelamente, como se fossem processos separados, mas utilizando um mesmo espaço de endereçamento = compartilhado.

10 Threads Modelo de Thread a) Três processos, cada um com um thread.
b) Um processo com três threads.

11 Threads Por que usar Thread? Processador de Texto - Exemplo página 64.
Um processador de texto com 3 threads.

12 Threads Por que usar Thread? Processador de Texto - Exemplo página 64.
Com três threads: O primeiro thread interage com o usuário. O segundo thread reformata o documento quando pedido. O terceiro thread escreve periodicamente o conteúdo da RAM no disco. Se fossem três processos? Não funcionaria, pois os três processos precisariam operar sobre o documento.

13 Atividades Quais são os estados de um processo. Explique.
Quais são as transições de estado de um processo. Explique. O que são threads? Diferencie thread de processo. Porque usar thread? Explique.

14 Comunicação InterProcessos
A comunicação entre processos acontece por exemplo, quando um processo necessita da saída de um outro processo para realizar a sua operação e assim prossegue até o fim da linha de comando.

15 Condição de Disputa Processos que trabalham em conjunto devem compartilhar um espaço de endereçamento comum. Dois processos querem ter simultaneamente à memória compartilhada.

16 Regiões Críticas O que fazer para evitar condições de disputa?
A resposta para evitar esse problema e muitos outros que envolvam memória compartilhada, arquivos compartilhados ou qualquer outra coisa compartilhada é impedir que mais de um processo leia e escreve simultaneamente na memória compartilhada, ou seja exclusão mútua. Aquela parte do programa que há acesso à memória compartilhada é chamada de região crítica ou seção crítica.

17 Exclusão Mútua com Espera Ociosa
Variáveis de Impedimento (Lock Variable) Desvantagem: apresentam o defeito de precisar da espera ociosa. Basicamente, elas verificam se a entrada na região crítica é permitida, caso não for, o processo fica em um laço ocioso esperando até a liberação. Existem algumas primitivas que podem resolver o problema sem gastar tempo de CPU. Uma delas é o par de sleep e wakeup, ou seja, estado bloqueado e pronto, respectivamente. Exemplo do produtor – consumidor.

18 O Problema do Produtor-Consumidor
Consideremos o problema do produtor-consumidor. Dois processos compartilhando um buffer comum e de tamanho fixo. Um dele coloca informação no buffer e o outro, o consumidor, a retira. O problema se origina quando o produtor quer colocar um novo item no buffer e ele está cheio. A solução é colocar o produtor para dormir e só despertá-lo quando o consumidor remover um ou mais itens. Da mesma maneira, se o consumidor quiser remover um item do buffer e ele estiver vazio, ele dormirá até que o produtor coloque algo no buffer e o desperte.

19 Atividades Quando se dá a necessidade de comunicação entre os processos? Qual o problema ocasionado? O que é região crítica? O que é exclusão mútua? Quais são as soluções que devemos satisfazer para chegar a uma boa solução?

20 Problemas Clássicos de IPC
A literatura sobre Sistemas Operacionais está repleta de problemas interessantes que têm sido amplamente discutidos e analisados a partir de vários métodos de sincronização. Iremos averiguar um desses problemas mais comuns: O Problema do Jantar dos Filósofos.

21 Problemas Clássicos de IPC
O Problema do Jantar dos Filósofos Em 1965, Dijkstra formulou e resolveu um problema de sincronização que ele chamou de problema do jantar dos filósofos. Cada um que inventasse uma primitiva de sincronização via-se obrigado a demonstrar até que ponto era maravilhosa a nova primitiva, mostrando com que elegância ela resolvia o problema do jantar dos filósofos. Nota: A vida de um filósofo consiste em comer e pensar.

22 Problemas Clássicos de IPC
O Problema do Jantar dos Filósofos Cinco filósofos estão sentados em torno de uma mesa circular. Cada filósofo tem um prato de espaguete. O espaguete está tão escorregadio que um filósofo precisa de dois garfos para comê-lo. Entre cada par de pratos está um garfo. A vida de um filósofo consiste em alternar períodos de comer e pensar. Quando um filósofo fica com fome, ele tenta pegar os garfos à sua direita e à sua esquerda, um de cada vez, em qualquer ordem. Se conseguir pegar dois garfos, ele comerá durante um determinado tempo e então colocará os garfos na mesa novamente e continuará a pensar.

23 Problemas Clássicos de IPC
O Problema do Jantar dos Filósofos Você consegue escrever um programa para cada filósofo que faça o que deve fazer e nunca trave? Suponha que todos os cinco filósofos resolva usar seus garfos simultaneamente  nenhum deles será capaz de pegar o garfo que estiver a sua direita e, assim, ocorrerá um deadlock.

24 Resolvendo um deadlock: Algoritmo Avestruz
O método mais simples é o do algoritmo do avestruz: enterre sua cabeça na areia e finja que nada está acontecendo. A maioria dos sistemas operacionais, incluindo Unix e Windows, simplesmente ignora o problema, supondo que a maior parte dos usuários preferiria um deadlock ocasional a uma regra que restrinja o usuário a executar apenas um processo levando mais tempo para recuperar a falha.

25 Problemas Clássicos de IPC
O Problema do Jantar dos Filósofos Modificações: Depois de pegar o garfo esquerdo, verifique se o garfo direito está disponível. Se não estiver, o filósofo devolverá o garfo esquerdo à mesa, espera por algum tempo e então repete todo o processo. Falha: Imagine que todos os filósofos poderiam começar o algoritmo simultaneamente, pegando seus garfos esquerdos e vendo que seus garfos direitos não estariam disponíveis, devolveriam seus garfos esquerdos, de novo pegariam seus garfos esquerdos simultaneamente, e assim permaneceriam para sempre. Uma situação como essa - na qual todos os programas continuam executando indefinidamente, mas falham ao tentar progredir - é chamada de inanição (starvation).

26 Problemas Clássicos de IPC
O Problema do Jantar dos Filósofos Hmmm! "Se os filósofos esperassem por um tempo aleatório, em vez de esperarem por um tempo fixo depois de falharem ao pegar o garfo do lado direito, a probabilidade de tudo continuar travado seria muito pequena". Ok: Redes funcionam assim: se dois computadores enviam um pacote ao mesmo tempo (levando a uma colisão de pacotes), cada um espera por um tempo aleatório antes de tentar novamente. Contudo: pense nessa solução no controle de segurança em uma usina de energia nuclear.

27 Problemas Clássicos de IPC
O Problema do Jantar dos Filósofos Solução: Semáforo nos filósofos Antes de começar a pegar garfos, um filósofo faria um down no mutex (Tem alguém usando os garfos?). Depois de usar os garfos, ele faria um up no mutex (Já comi, algum de vocês pode comer!). Falha:de desempenho: Somente um filósofo estaria comendo e poderia haver mais de um filósofo comendo. Solução: outros estados como comendo, pensando, faminto (tentando pegar o garfo).

28 Lista de Exercício O que é IPC? Explique o problema de sincronização.
O que é deadlock?

29 Escalonamento Quando dois ou mais processos estão simultaneamente no estado pronto, ou seja, competindo pelo tempo de CPU deverá ser feita uma escolha de qual processo executará. A parte do sistema operacional que faz a escolha é chamada de escalonador, e o algoritmo que ele usa é o algoritmo de escalonamento. Muito se tem visto fazer para alcançar algoritmos de escalonamento inteligentes e eficientes.

30 Escalonamento em Lote FCFS (First Come, First Server) – Primeiro a Chegar, Primeiro a ser Servido. Há uma fila única de processos prontos. Quando o primeiro job entra no sistema, logo quando chega, é iniciado imediatamente e autorizado a executar por quanto tempo queira. A medida que chegam os outros jobs, eles são encaminhados para o fim da fila. Quando o processo em execução é bloqueado, o primeiro processo na fila é o próximo a executar. Quando o processo bloqueado fica em estado de pronto, ele é posto no fim da fila.

31 Escalonamento em Lote FCFS (First Come, First Server) – Primeiro a Chegar, Primeiro a ser Servido. E se o processo D chegasse antes que o processo C? Processo Surto A 12 B 8 C 15 D 5 Tempos Processo Surto A 12 B 8 D 5 C 15 Tempos

32 Escalonamento em Lote SJF (Shortest Job First) – Job Mais Curto Primeiro. Quando vários jobs igualmente importantes estiverem postados na fila de entrada à espera de serem iniciados, o escalonador escolhe o job mais curto primeiro. FCFS Processo Surto A 12 B 8 C 15 D 5 Tempos SJF

33 Escalonamento em Sistemas Interativos
Escalonamento de Alternância Circular (Round Robin) A cada processo é atribuído um intervalo de tempo, o seu quantum, no qual ele é permitido executar. Se, ao final do quantum o processo estiver ainda executando, a CPU sofrerá preempção e será dada a outro processo. Se o processo foi bloqueado ou terminou antes que o quantum tenha decorrido, a CPU é alternada para outro processo.

34 Escalonamento em Sistemas Interativos
Escalonamento de Alternância Circular (Round Robin) RR – Quantum = 5ms Processo Surto Tempo de Espera Tempo de Retorno A 12 B 8 C 15 D 5 7 3 10 20 2 22 25 30

35 Escalonamento em Sistemas Interativos
Escalonamento por Prioridade Objetivo: Dar mais importância a alguns processos. Prioridade Processo Surto Tempo de Espera Tempo de Retorno A 12 2 B 8 4 C 15 D 5 1 20 32 40 Tempos ( )/4 = 14,25 ( )/4 = 24,25

36 Atividades Diferencie escalonador de algoritmo de escalonamento.
Por que se deve escalonar? Quando se deve escalonar? Explique como são os algortimos de escalonamento com preempção e sem preempção.

37 Atividades Explique os algoritmos de escalonamento, exemplificando como seria a ordem de chegada dos processos abaixo: A = 10 B = 15 C = 3 D = 8 E = 13

38 Referências Sistemas Operacionais Modernos – Andrew S. Tanembaum, 2 Edição, Editora Pearson. Paginas: 53 até 138


Carregar ppt "Sistemas Operacionais"

Apresentações semelhantes


Anúncios Google