sistemas operacionais técnico em informática professora: michelle nery

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

Upload: internet

Post on 18-Apr-2015

107 views

Category:

Documents


2 download

TRANSCRIPT

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

Sistemas Operacionais

Técnico em Informática

Professora: Michelle Nery

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

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

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

Conteúdo Gerenciamento de Processos

Processos Threads Comunicação Interprocessos Escalonamento de Processos Deadlocks

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

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.

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

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.

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

Processos Modelo de Processo

Processo vs. Programa Um processo possui um programa, entrada, saída

e um estado. Exemplo do bolo, calculadora, etc.

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

Processos Estados de Processos

1. Em execução: Usando a CPU2. Pronto: Executável, temporariamente parada

para dar lugar a outro processo.3. Bloqueado: Incapaz de executar enquanto um

evento externo não ocorrer.

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

Processos Transições entre os Estados de Processos

1. De Execução p/ Bloqueado: 1. Um processo bloqueia porque está esperando uma

entrada ou recurso ainda não disponível.

2. De Execução p/ Pronto: 2. O processo em execução já teve tempo suficiente de

CPU e é momento de deixar outro processo ocupá-la.

3. De Pronto p/ Execução: 3. Todos os processos já compartilharam a CPU, e é hora

do primeiro processo obter novamente a CPU.

4. De Bloqueado p/ Pronto: 4. Ocorre quando acontece um evento externo pelo qual o

processo estava aguardando (a chegada de alguma entrada).

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

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.

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

Threads Modelo de Thread

a) Três processos, cada um com um thread. b) Um processo com três threads.

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

Threads Por que usar Thread? Processador de Texto -

Exemplo página 64.

Um processador de texto com 3 threads.

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

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.

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

Atividades2. Quais são os estados de um processo. Explique.

3. Quais são as transições de estado de um processo. Explique.

4. O que são threads?

5. Diferencie thread de processo.

6. Porque usar thread? Explique.

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

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.

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

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.

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

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.

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

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.

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

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.

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

Atividades1. Quando se dá a necessidade de comunicação entre os

processos? Qual o problema ocasionado?2. O que é região crítica?3. O que é exclusão mútua?4. Quais são as soluções que devemos satisfazer para

chegar a uma boa solução?

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

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.

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

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.

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

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.

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

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.

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

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.

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

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).

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

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.

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

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).

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

Lista de Exercício1. O que é IPC?

2. Explique o problema de sincronização.

3. O que é deadlock?

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

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.

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

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.

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

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 SurtoA 12B 8C 15D 5Tempos

Processo SurtoA 12B 8D 5C 15Tempos

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

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.

FCFSProcesso Surto

A 12B 8C 15D 5

Tempos  SJF

Processo SurtoD 5B 8A 12C 15

Tempos  

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

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.

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

Escalonamento em Sistemas Interativos Escalonamento de Alternância Circular (Round

Robin)RR – Quantum = 5ms

Processo Surto Tempo de Espera Tempo de RetornoA 12    B 8    C 15    D 5    A 7 0  B 3 5  C 10 10  D 0 15 20A 2   22B 3   25C 5   30C 0    

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

Escalonamento em Sistemas Interativos Escalonamento por Prioridade

Objetivo: Dar mais importância a alguns processos.

PrioridadeProcess

oSurt

o Prioridade Tempo de Espera Tempo de RetornoA 12 2    B 8 4    C 15 2    D 5 1    D     0 5C     5 20A     20 32B     32 40

Tempos    (0+5+20+32)/4 =

14,25(5+13+25+40)/4 =

24,25

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

Atividades1. Diferencie escalonador de algoritmo de escalonamento.2. Por que se deve escalonar?3. Quando se deve escalonar?4. Explique como são os algortimos de escalonamento com

preempção e sem preempção.

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

Atividades8. Explique os algoritmos de escalonamento,

exemplificando como seria a ordem de chegada dos processos abaixo:

8. A = 109. B = 1510. C = 311. D = 812. E = 13

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

Referências Sistemas Operacionais Modernos – Andrew S.

Tanembaum, 2 Edição, Editora Pearson. Paginas: 53 até 138