Buscar

Fundamentos de Sistemas Operacionais

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 47 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 47 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 47 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Fundamentos de Sistemas 
Operacionais 
Seção 3: 
Comunicação entre Processos 
e Escalonamento de 
Processador. 
Profa. Dra. Maria Teodora Ferreira 
maria.ferreira@bilac.com.br 
Objetivo: 
Entender sobre a comunicação 
entre processos e o escalonamento 
de processadores. 
2 
Aplicação Concorrente 
Execução cooperativa de múltiplos processos ou 
threads, que trabalham em uma mesma tarefa na busca 
de um resultado comum. 
 
O compartilhamento de recursos entre processos pode 
ocasionar situações indesejáveis, capazes até de 
comprometer a execução das aplicações. 
 
 
 
 
 
 
 
3 
Aplicação Concorrente 
Para evitar esse tipo de problema, os processos 
concorrentes devem ter suas execuções sincronizadas, 
a partir de mecanismos oferecidos pelo SO, com o 
objetivo de garantir o processamento correto dos 
programas. 
 
 
 
 
 
 
 
 
 
4 
Aplicação Concorrente 
Em uma aplicação concorrente, é necessário que 
processos comuniquem entre si. 
 
Esta comunicação pode ser implementada através de 
diversos mecanismos, como 
Variáveis compartilhadas na memória principal ou 
Trocas de mensagens. 
 
 
 
 
 
 
 
 
 
5 
Aplicação Concorrente 
Os mecanismos que garantem a comunicação entre 
processos concorrentes e o acesso a recursos 
compartilhados são chamados mecanismos de 
sincronização. 
 
 
 
 
 
 
 
 
 
 
6 
para evitar que outro processo tenha 
acesso a uma variável comum, quando 
a mesma está sendo modificada por 
um processo. 
Problema da Condição 
de Corrida 
Condições de corrida são situações onde dois ou mais 
processos estão acessando dados compartilhados, e o 
resultado final do processamento depende de quem 
executa e quando executa. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7 
Problema da Condição 
de Corrida 
Como evitar condições de disputa? 
Encontrar alguma forma de proibir que mais de um 
processo acesse o dado compartilhado ao mesmo 
tempo, isto é, estabelecer a exclusão mútua de 
execução. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8 
Exclusão Mútua 
 Impedir que dois ou mais processos acessem um 
mesmo recurso simultaneamente. 
Enquanto um processo estiver acessando determinado 
recurso, todos os demais processos que queiram 
acessá-lo deverão esperar pelo término da utilização do 
recurso. 
 Ideia de exclusividade de acesso. 
 
 
 
 
 
 
 
 
 
 
9 
Região Crítica 
Parte do código do programa onde é feito o acesso à 
memória compartilhada (ou ao recurso compartilhado), ou 
seja, é a parte do programa cujo processamento pode 
levar à ocorrência de condições de corrida. 
 
 
 
 
 
 
 
 
 
 
10 
Troca de Mensagens 
É um mecanismo de comunicação e sincronização entre 
processos. 
Para que haja a comunicação entre os processos deve 
existir um canal de comunicação. 
Trocar mensagens através de duas rotinas: 
SEND (receptor, mensagem) e 
RECEIVE (transmissor, mensagem). 
 
 
 
 
 
 
 
 
 
 
 
11 
Troca de Mensagens 
12 
Troca de Mensagens 
O mecanismo de troca de mensagens exige que os 
processos envolvidos na comunicação tenham suas 
execuções sincronizadas. 
A troca de mensagens entre processos pode ser 
implementada de duas maneiras distintas: 
Comunicação direta e 
Comunicação indireta. 
 
 
 
 
 
 
 
 
 
 
13 
Comunicação 
Direta 
 Exige que, ao enviar ou receber 
uma mensagem, o processo 
enderece explicitamente o 
nome do processo receptor ou 
transmissor. 
 Só permite a troca entre dois 
processos. 
 Necessidade de especificação 
dos processos envolvidos. 
Indireta 
 Utiliza uma área 
compartilhada (Mailbox ou 
Port). 
 Vários processos podem estar 
associados. 
14 
Processo A Processo B
Comunicação 
Direta 
Processo A Processo B
Mailbox
ou Port
Comunicação 
Indireta 15 
Deadlock 
É a situação em que um processo aguarda por um recurso 
que nunca estará disponível ou um evento que não 
ocorrerá. 
 
 
 
 
 
 
 
 
 
 
 
 
16 
Deadlock 
Para que ocorra a situação de deadlock, 4 condições são 
necessárias simultaneamente: 
• Exclusão mútua: Cada recurso só pode estar alocado a um único processo 
em um determinado instante. 
• Espera por recurso: Um processo, além dos recursos já alocados, pode 
estar esperando por outros recursos. 
• Não-preempção: Um recurso não pode ser liberado de um processo só 
porque outros processos desejam o mesmo recurso. 
• Espera circular: Um processo pode ter de esperar por um recurso alocado 
a outro processo, e vice-versa. 
 
 
 
 
 
 
 
 
 
 
 
 
17 
Gerência do 
Processador: 
Escalonamento 
18 
Introdução 
 A partir do momento em que diversos processos podem 
estar no estado de pronto, critérios devem ser 
estabelecidos para determinar qual processo será 
escolhido para fazer uso do processador. 
 Os critérios utilizados para esta seleção compõem a 
chamada política de escalonamento. 
• Base da gerência do processador e da multiprogramação em 
um SO. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19 
Estado de
Espera
Estado de
Execução
Estado de
Pronto
Escalonam
ento
20 
Funções Básicas 
 A política de escalonamento de um SO tem diversas 
funções básicas: 
• Manter o processador ocupado a maior parte do tempo; 
• Balancear o uso da UCP entre processos; 
• Privilegiar a execução de aplicações críticas. 
 A rotina do SO que tem como principal função 
implementar os critérios da política de escalonamento é 
denominada escalonador (scheduler). 
 
 
 
 
 
 
 
 
 
 
 
 
 
21 
Critérios de Escalonamento 
 Utilização da CPU: % do tempo que a CPU fica ocupada. 
 Throughput (“vazão”): número de processos executados em 
um determinado intervalo de tempo. 
 Tempo de Processador / Tempo de UCP: é o tempo que 
um processo leva no estado de execução durante seu 
processamento. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22 
Critérios de Escalonamento 
 Tempo de espera: é o tempo total que um processo 
permanece na fila de pronto durante seu processamento, 
aguardando para ser executado. 
 Turnaround: é o tempo que o processo leva desde a sua 
criação até seu término, 
 levando em consideração todo o tempo gasto na espera para 
alocação de memória, espera na fila de pronto, processamento na 
UCP e na fila de espera. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23 
Critérios de Escalonamento 
 Tempo de resposta: é o tempo decorrido entre uma 
requisição ao sistema ou à aplicação e o instante em que a 
resposta é exibida. 
 Qualquer política de escalonamento busca: 
 otimizar a utilização do processador e o throughput; 
 diminuir os tempos de turnaround, espera e resposta. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24 
Níveis de Escalonamento 
Escalonamento de alto nível (longo prazo) 
» Determina que serviços podem disputar os recursos. 
» Controla o número de processos admitidos por vez no sistema. 
Escalonamento de nível intermediário (médio prazo) 
» Determina quais processos terão permissão de competir por 
processadores. 
Escalonamentode baixo nível (curto prazo) 
» Atribui prioridades. 
 
 
 
 
 
 
 
25 
Escalonamentos 
Preemptivos e Não-Preemptivos 
 
As políticas de escalonamento podem ser classificadas 
segundo a possibilidade do SO interromper um processo 
em execução e substituí-lo por um outro  preempção. 
 
 
 
 
 
26 
Preemptivo 
O SO pode interromper um 
processo em execução e 
passá-lo para o estado de 
pronto, com o objetivo de 
alocar outro processo na 
UCP. 
Não permite a 
monopolização da UCP. 
 
 
 
 
 
 
 
Não-Preemptivo 
Quando um processo está 
em execução nenhum 
evento externo pode 
ocasionar a perda do uso 
do processador. 
Permite monopolização da 
UCP. 
 27 
Algoritmos de Escalonamento 
FIFO (First-inFirst-Out); 
SJF (Shortest Job First); 
SRT (Shortest Remaining Time); 
Escalonamento Cooperativo; 
Prioridade; 
Múltiplas Filas; 
Múltiplas Filas com Realimentação; 
Escalonamento para vários processadores; 
Escalonamento de tempo real. 
 
 
 
 
 
 
 
28 
FIFO 
O processo que chegar primeiro ao estado de pronto é o 
selecionado para execução. 
Não é preemptível. 
Implementado através de fila. 
 
 
 
 
 
 
 
 
 
PRIMEIRO QUE ENTRA É O 
PRIMEIRO QUE SAI 
29 
FIFO 
Tempo médio de espera: 
(0 + 10 + 14) /3 = 8 𝑢. 𝑡 
Tempo médio de espera: 
(7 + 0 + 4) /3 = 3,7 𝑢. 𝑡 
30 
SJF (Shortest Job First) 
Não preemptivo. 
Seleciona o processo que tiver o menor tempo de processador 
ainda por executar. 
Reduz tempo médio de espera. 
 
 
 
 
 
 
 
 
 
 
Processo A
Processo B
Processo C
3 7 17 u.t.
Tempo médio de espera: 
(7 + 3 + 0) /3 = 3,3 𝑢. 𝑡 
31 
SRT (Shortest Remaining Time) 
SJF com preempção. 
Toda vez que um processo no estado de pronto tem um 
tempo de processador estimado menor do que o 
processo em execução o SO realiza uma preempção, 
substituindo-o pelo novo processo. 
 
 
 
 
 
 
 
 
 
 
32 
Escalonamento Cooperativo 
Um processo em execução pode voluntariamente liberar o 
processador, retornando à fila de pronto e possibilitando que 
um novo processo seja escalonado, permitindo assim uma 
melhor distribuição no uso do processador. 
A liberação do processador é realizada exclusivamente pelo 
processo em execução, que de uma maneira cooperativa libera 
a UCP para um outro processo. 
 
 
 
 
 
 
 
 
 
 
33 
Escalonamento Circular (RR) 
Também conhecido como Round Robin (RR). 
É do tipo preemptivo. 
Semelhante ao FIFO, porém quando um processo passa para

Outros materiais