EBD7 - INTERRUPÇÕES NO CAMINHO PARA JERUSALÉM - IGREJA BATISTA DA VIDEIRA
Sistemas Operacionais - USPwiki.icmc.usp.br/images/b/b1/Aula04.pdf · 30 Escalonamento de Processos...
Transcript of Sistemas Operacionais - USPwiki.icmc.usp.br/images/b/b1/Aula04.pdf · 30 Escalonamento de Processos...
![Page 1: Sistemas Operacionais - USPwiki.icmc.usp.br/images/b/b1/Aula04.pdf · 30 Escalonamento de Processos Tempo de execução de um processo é imprevisível: CPU gera interrupções em](https://reader033.fdocument.pub/reader033/viewer/2022042110/5e8b300eac7ecf49dc2b4904/html5/thumbnails/1.jpg)
SistemasOperacionais
Prof. Jó Ueyama
Apresentação baseada nos slides da Profa. Kalinka Castelo Branco,
do Prof. Dr. Antônio Carlos Sementille e da Profa. Dra. Luciana A. F. Martimiano e nas transparências fornecidas no site de compra do livro“Sistemas Operacionais Modernos”
![Page 2: Sistemas Operacionais - USPwiki.icmc.usp.br/images/b/b1/Aula04.pdf · 30 Escalonamento de Processos Tempo de execução de um processo é imprevisível: CPU gera interrupções em](https://reader033.fdocument.pub/reader033/viewer/2022042110/5e8b300eac7ecf49dc2b4904/html5/thumbnails/2.jpg)
2
Aula de Hoje (conteúdo detalhado)
1. Conceitos Básicos - Chamadas de Sistemas2. Processos3. Criando Processos4. Finalizando Processos5. Estados do Processo6. Implementação de Processos7. Escalonamento de Processo
![Page 3: Sistemas Operacionais - USPwiki.icmc.usp.br/images/b/b1/Aula04.pdf · 30 Escalonamento de Processos Tempo de execução de um processo é imprevisível: CPU gera interrupções em](https://reader033.fdocument.pub/reader033/viewer/2022042110/5e8b300eac7ecf49dc2b4904/html5/thumbnails/3.jpg)
3
Processos
Multiprogramação:Pseudoparalelismo: coleção de processos
sendo executados alternadamente na CPU; Um processo é caracterizado por um
programa em execução, mas existe umadiferença sutil entre processo e programa:Um processo pode ser composto por vários
programas, dados de entrada, dados de saídae um estado (executando, bloqueado, pronto)
![Page 4: Sistemas Operacionais - USPwiki.icmc.usp.br/images/b/b1/Aula04.pdf · 30 Escalonamento de Processos Tempo de execução de um processo é imprevisível: CPU gera interrupções em](https://reader033.fdocument.pub/reader033/viewer/2022042110/5e8b300eac7ecf49dc2b4904/html5/thumbnails/4.jpg)
4
Aula de Hoje (conteúdo detalhado)
1. Conceitos Básicos - Chamadas de Sistemas2. Processos3. Criando Processos4. Finalizando Processos5. Estados do Processo6. Implementação de Processos7. Escalonamento de Processo
![Page 5: Sistemas Operacionais - USPwiki.icmc.usp.br/images/b/b1/Aula04.pdf · 30 Escalonamento de Processos Tempo de execução de um processo é imprevisível: CPU gera interrupções em](https://reader033.fdocument.pub/reader033/viewer/2022042110/5e8b300eac7ecf49dc2b4904/html5/thumbnails/5.jpg)
5
Criando Processos
Processos precisam ser criados efinalizados a todo o momento:Inicialização do sistema;Execução de uma chamada de sistema para
criação de processo realizada por algumprocesso em execução;
Requisição de usuário para criar um novoprocesso;
Inicialização de um processo em batch –mainframes com sistemas em batch;
![Page 6: Sistemas Operacionais - USPwiki.icmc.usp.br/images/b/b1/Aula04.pdf · 30 Escalonamento de Processos Tempo de execução de um processo é imprevisível: CPU gera interrupções em](https://reader033.fdocument.pub/reader033/viewer/2022042110/5e8b300eac7ecf49dc2b4904/html5/thumbnails/6.jpg)
6
Criando Processos Processos criados pelos usuários:
Iniciar um programa (linha de comando ou um duploclique no mouse);
Processos com funções específicas queindependem de usuários – chamados de daemons(ou BG que não há interação direta com usuários): Recepção e envio de emails; Serviços de Impressão; Usando o ‘&’ no Linux
![Page 7: Sistemas Operacionais - USPwiki.icmc.usp.br/images/b/b1/Aula04.pdf · 30 Escalonamento de Processos Tempo de execução de um processo é imprevisível: CPU gera interrupções em](https://reader033.fdocument.pub/reader033/viewer/2022042110/5e8b300eac7ecf49dc2b4904/html5/thumbnails/7.jpg)
7
Criando Processos
UNIX: Fork;
Cria processo Pai e processo Filho commesmo endereçamento;
Depois o processo Filho temendereçamento separado;
Windows:CreateProcess
Cria processo Pai e processo Filho.
![Page 8: Sistemas Operacionais - USPwiki.icmc.usp.br/images/b/b1/Aula04.pdf · 30 Escalonamento de Processos Tempo de execução de um processo é imprevisível: CPU gera interrupções em](https://reader033.fdocument.pub/reader033/viewer/2022042110/5e8b300eac7ecf49dc2b4904/html5/thumbnails/8.jpg)
8
Criando Processos Exemplo UNIX:
Processo init: gera vários processos filhos paraatender os vários terminais que existem no sistema;
Outrosprocessossão geradosnos terminais
![Page 9: Sistemas Operacionais - USPwiki.icmc.usp.br/images/b/b1/Aula04.pdf · 30 Escalonamento de Processos Tempo de execução de um processo é imprevisível: CPU gera interrupções em](https://reader033.fdocument.pub/reader033/viewer/2022042110/5e8b300eac7ecf49dc2b4904/html5/thumbnails/9.jpg)
9
Aula de Hoje (conteúdo detalhado)
1. Conceitos Básicos - Chamadas de Sistemas2. Processos3. Criando Processos4. Finalizando Processos5. Estados do Processo6. Implementação de Processos7. Escalonamento de Processo
![Page 10: Sistemas Operacionais - USPwiki.icmc.usp.br/images/b/b1/Aula04.pdf · 30 Escalonamento de Processos Tempo de execução de um processo é imprevisível: CPU gera interrupções em](https://reader033.fdocument.pub/reader033/viewer/2022042110/5e8b300eac7ecf49dc2b4904/html5/thumbnails/10.jpg)
10
Finalizando Processos
Condições:Término normal (voluntário):
A tarefa a ser executada é finalizada; Chamadas: exit (UNIX) e ExitProcess
(Windows)
Término com erro (voluntário): O processo sendo executado não pode ser
finalizado: gcc filename.c, o arquivo filename.c nãoexiste;
![Page 11: Sistemas Operacionais - USPwiki.icmc.usp.br/images/b/b1/Aula04.pdf · 30 Escalonamento de Processos Tempo de execução de um processo é imprevisível: CPU gera interrupções em](https://reader033.fdocument.pub/reader033/viewer/2022042110/5e8b300eac7ecf49dc2b4904/html5/thumbnails/11.jpg)
11
Finalizando Processos
Término com erro fatal (involuntário); Erro causado por algum erro no programa (bug):
Divisão por 0 (zero); Referência à memória inexistente ou não pertencente ao
processo; Execução de uma instrução ilegal;
Término causado por algum outro processo(involuntário): Kill (UNIX) e TerminateProcess
(Windows);
![Page 12: Sistemas Operacionais - USPwiki.icmc.usp.br/images/b/b1/Aula04.pdf · 30 Escalonamento de Processos Tempo de execução de um processo é imprevisível: CPU gera interrupções em](https://reader033.fdocument.pub/reader033/viewer/2022042110/5e8b300eac7ecf49dc2b4904/html5/thumbnails/12.jpg)
12
Aula de Hoje (conteúdo detalhado)
1. Conceitos Básicos - Chamadas de Sistemas2. Processos3. Criando Processos4. Finalizando Processos5. Estados do Processo6. Implementação de Processos7. Escalonamento de Processo
![Page 13: Sistemas Operacionais - USPwiki.icmc.usp.br/images/b/b1/Aula04.pdf · 30 Escalonamento de Processos Tempo de execução de um processo é imprevisível: CPU gera interrupções em](https://reader033.fdocument.pub/reader033/viewer/2022042110/5e8b300eac7ecf49dc2b4904/html5/thumbnails/13.jpg)
13
Estados de Processos
Três estado básicos:
Executando
Bloqueado Pronto
1 2
3
4
U m p r o c e s s o s e n d oe x e c u t a d o n ã o p o d econtinuar sua execução,pois precisa de algumevento (E/S ou semáforo)para continuar;
![Page 14: Sistemas Operacionais - USPwiki.icmc.usp.br/images/b/b1/Aula04.pdf · 30 Escalonamento de Processos Tempo de execução de um processo é imprevisível: CPU gera interrupções em](https://reader033.fdocument.pub/reader033/viewer/2022042110/5e8b300eac7ecf49dc2b4904/html5/thumbnails/14.jpg)
14
Estados de Processos
Executando
Bloqueado Pronto
1 2
3
4
Um processo é bloqueadode duas maneiras:• chamada ao sistema:block ou pause;
• se não há entradasdisponíveis para que oprocesso continue suaexecução;
![Page 15: Sistemas Operacionais - USPwiki.icmc.usp.br/images/b/b1/Aula04.pdf · 30 Escalonamento de Processos Tempo de execução de um processo é imprevisível: CPU gera interrupções em](https://reader033.fdocument.pub/reader033/viewer/2022042110/5e8b300eac7ecf49dc2b4904/html5/thumbnails/15.jpg)
15
Estados de Processos
Executando
Bloqueado Pronto
1 2
3
4
As transições 2 e 3 ocorremdurante o escalonamentode processos:• o tempo destinado
àquele processo acaboue o u t ro p r oce ss o écolocado no processador;
![Page 16: Sistemas Operacionais - USPwiki.icmc.usp.br/images/b/b1/Aula04.pdf · 30 Escalonamento de Processos Tempo de execução de um processo é imprevisível: CPU gera interrupções em](https://reader033.fdocument.pub/reader033/viewer/2022042110/5e8b300eac7ecf49dc2b4904/html5/thumbnails/16.jpg)
16
Estados de Processos
Executando
Bloqueado Pronto
1 2
3
4
A transição 4 ocorre quando oevento esperado pelo processobloqueado ocorre:• se o processador está
p a r a d o , o p r o c e s s o éexecutado imediatamente (2);
• se o processador estáocupado, o processo deveesperar sua vez;
![Page 17: Sistemas Operacionais - USPwiki.icmc.usp.br/images/b/b1/Aula04.pdf · 30 Escalonamento de Processos Tempo de execução de um processo é imprevisível: CPU gera interrupções em](https://reader033.fdocument.pub/reader033/viewer/2022042110/5e8b300eac7ecf49dc2b4904/html5/thumbnails/17.jpg)
17
Aula de Hoje (conteúdo detalhado)
1. Características de Processos2. Implementação de Processos3. Escalonamento de Processo4. Escalonamento em Batch5. Algoritmos de Escalonamento em Sistemas Batch
![Page 18: Sistemas Operacionais - USPwiki.icmc.usp.br/images/b/b1/Aula04.pdf · 30 Escalonamento de Processos Tempo de execução de um processo é imprevisível: CPU gera interrupções em](https://reader033.fdocument.pub/reader033/viewer/2022042110/5e8b300eac7ecf49dc2b4904/html5/thumbnails/18.jpg)
18
Características - Processos
Processos CPU-bound (orientados à CPU):processos que utilizam muito o processador; Tempo de execução é definido pelos ciclos de
processador;
Processos I/O-bound (orientados à E/S):processos que realizam muito E/S; Tempo de execução é definido pela duração das
operações de E/S;
IDEAL: existir um balanceamento entreprocessos CPU-bound e I/O-bound;
![Page 19: Sistemas Operacionais - USPwiki.icmc.usp.br/images/b/b1/Aula04.pdf · 30 Escalonamento de Processos Tempo de execução de um processo é imprevisível: CPU gera interrupções em](https://reader033.fdocument.pub/reader033/viewer/2022042110/5e8b300eac7ecf49dc2b4904/html5/thumbnails/19.jpg)
19
Escalonador de Processos
Escalonador de Processos
0 n... n-11
Processos
• Nível mais baixodo SO;
• Manipulação dein t e r r upç õe s eprocessos;
![Page 20: Sistemas Operacionais - USPwiki.icmc.usp.br/images/b/b1/Aula04.pdf · 30 Escalonamento de Processos Tempo de execução de um processo é imprevisível: CPU gera interrupções em](https://reader033.fdocument.pub/reader033/viewer/2022042110/5e8b300eac7ecf49dc2b4904/html5/thumbnails/20.jpg)
20
Aula de Hoje (conteúdo detalhado)
1. Características de Processos2. Implementação de Processos3. Escalonamento de Processo4. Escalonamento em Batch5. Algoritmos de Escalonamento em Sistemas Batch
![Page 21: Sistemas Operacionais - USPwiki.icmc.usp.br/images/b/b1/Aula04.pdf · 30 Escalonamento de Processos Tempo de execução de um processo é imprevisível: CPU gera interrupções em](https://reader033.fdocument.pub/reader033/viewer/2022042110/5e8b300eac7ecf49dc2b4904/html5/thumbnails/21.jpg)
21
Implementação de Processos
Tabela de Processos:Cada processo possui uma entrada;Cada entrada possui um ponteiro para o bloco
de controle de processo (BCP) ou descritor deprocesso;
BCP possui todas as informações doprocesso contextos de hardware, software,endereço de memória;
BCP e vetor de interrupção.
![Page 22: Sistemas Operacionais - USPwiki.icmc.usp.br/images/b/b1/Aula04.pdf · 30 Escalonamento de Processos Tempo de execução de um processo é imprevisível: CPU gera interrupções em](https://reader033.fdocument.pub/reader033/viewer/2022042110/5e8b300eac7ecf49dc2b4904/html5/thumbnails/22.jpg)
22
Implementação de Processos
...
Tabela de processos
...
BCP – P1
BCP – P2
BCP – Pn
![Page 23: Sistemas Operacionais - USPwiki.icmc.usp.br/images/b/b1/Aula04.pdf · 30 Escalonamento de Processos Tempo de execução de um processo é imprevisível: CPU gera interrupções em](https://reader033.fdocument.pub/reader033/viewer/2022042110/5e8b300eac7ecf49dc2b4904/html5/thumbnails/23.jpg)
23
Implementação de Processos
Algumas informações do BCP
![Page 24: Sistemas Operacionais - USPwiki.icmc.usp.br/images/b/b1/Aula04.pdf · 30 Escalonamento de Processos Tempo de execução de um processo é imprevisível: CPU gera interrupções em](https://reader033.fdocument.pub/reader033/viewer/2022042110/5e8b300eac7ecf49dc2b4904/html5/thumbnails/24.jpg)
24
Aula de Hoje (conteúdo detalhado)
1. Características de Processos2. Implementação de Processos3. Escalonamento de Processo4. Escalonamento em Batch5. Algoritmos de Escalonamento em Sistemas Batch
![Page 25: Sistemas Operacionais - USPwiki.icmc.usp.br/images/b/b1/Aula04.pdf · 30 Escalonamento de Processos Tempo de execução de um processo é imprevisível: CPU gera interrupções em](https://reader033.fdocument.pub/reader033/viewer/2022042110/5e8b300eac7ecf49dc2b4904/html5/thumbnails/25.jpg)
25
Escalonamento de Processos Escalonador de Processos escolhe o processo
que será executado pela CPU; Escalonador deve se preocupar com a eficiência
da CPU, pois o chaveamento de processos écomplexo e custoso: Afeta desempenho do sistema e satisfação do
usuário; Escalonador de processo é um processo que
deve ser executado quando da mudança decontexto (troca de processo); Políticas: FIFO, Prioridades, etc.
![Page 26: Sistemas Operacionais - USPwiki.icmc.usp.br/images/b/b1/Aula04.pdf · 30 Escalonamento de Processos Tempo de execução de um processo é imprevisível: CPU gera interrupções em](https://reader033.fdocument.pub/reader033/viewer/2022042110/5e8b300eac7ecf49dc2b4904/html5/thumbnails/26.jpg)
26
Escalonamento de Processos
Mudança de Contexto:Overhead de tempo;Tarefa cara:
Salvar as informações do processo que estádeixando a CPU em seu BCP conteúdo dosregistradores;
Carregar as informações do processo que serácolocado na CPU copiar do BCP o conteúdodos registradores;
![Page 27: Sistemas Operacionais - USPwiki.icmc.usp.br/images/b/b1/Aula04.pdf · 30 Escalonamento de Processos Tempo de execução de um processo é imprevisível: CPU gera interrupções em](https://reader033.fdocument.pub/reader033/viewer/2022042110/5e8b300eac7ecf49dc2b4904/html5/thumbnails/27.jpg)
27
Escalonamento de Processos
PC = 0BF4h
PID = 2
Estado = pronto
PCB-P2
CPU
PC = 074Fh
PC = 074Fh
PID = 4
Estado = executando
PCB-P4
Próximo processo
Antes da Mudança de Contexto
![Page 28: Sistemas Operacionais - USPwiki.icmc.usp.br/images/b/b1/Aula04.pdf · 30 Escalonamento de Processos Tempo de execução de um processo é imprevisível: CPU gera interrupções em](https://reader033.fdocument.pub/reader033/viewer/2022042110/5e8b300eac7ecf49dc2b4904/html5/thumbnails/28.jpg)
28
Escalonamento de Processos
PC = 0BF4h
PID = 2
Estado = executando
PCB-P2
CPU
PC = 0BF4h
PC = 074Fh
PID = 4
Estado = pronto
PCB-P4
Depois da Mudança de Contexto
![Page 29: Sistemas Operacionais - USPwiki.icmc.usp.br/images/b/b1/Aula04.pdf · 30 Escalonamento de Processos Tempo de execução de um processo é imprevisível: CPU gera interrupções em](https://reader033.fdocument.pub/reader033/viewer/2022042110/5e8b300eac7ecf49dc2b4904/html5/thumbnails/29.jpg)
29
Escalonamento de Processos
Situações nas quais escalonamento é necessário: Um novo processo é criado; Um processo terminou sua execução e um processo
pronto deve ser executado; Quando um processo é bloqueado (semáforo,
dependência de E/S), outro deve ser executado; Quando uma interrupção de E/S ocorre, o escalonador
deve decidir por: i) executar o processo que estavaesperando esse evento; ii) continuar executando oprocesso que já estava sendo executado ou; iii)executar um terceiro processo que esteja pronto paraser executado.
![Page 30: Sistemas Operacionais - USPwiki.icmc.usp.br/images/b/b1/Aula04.pdf · 30 Escalonamento de Processos Tempo de execução de um processo é imprevisível: CPU gera interrupções em](https://reader033.fdocument.pub/reader033/viewer/2022042110/5e8b300eac7ecf49dc2b4904/html5/thumbnails/30.jpg)
30
Escalonamento de Processos
Tempo de execução de um processo é imprevisível:
CPU gera interrupções em intervalos entre50 a 60 hz (ocorrências por segundo);
Algoritmos de escalonamento podem ser divididosem duas categorias dependendo de como essasinterrupções são tratadas:
Preemptivo: estratégia de suspender oprocesso sendo executado;
Não-preemptivo: estratégia de permitir que oprocesso sendo executado continue sendoexecutado até ser bloqueado por alguma razão(semáforos, operações de E/S-interrupção);
![Page 31: Sistemas Operacionais - USPwiki.icmc.usp.br/images/b/b1/Aula04.pdf · 30 Escalonamento de Processos Tempo de execução de um processo é imprevisível: CPU gera interrupções em](https://reader033.fdocument.pub/reader033/viewer/2022042110/5e8b300eac7ecf49dc2b4904/html5/thumbnails/31.jpg)
31
Escalonamento de Processos
Categorias de Ambientes: Sistemas em Batch: sistemas que processa um lote de
tarefas enfileiradas e só executa o outro após o término doprimeiro; algoritmos preemptivos ou não-preemptivos;
Sistemas Interativos: interação constante do usuário;algoritmos preemptivos; Processo interativo esperacomando e executa comando;
Sistemas em Tempo Real: processos são executadosdentro do prazo estipulado previamente; tempo é crucial sistemas críticos (o que são?); não-preemptivos, maspodem ser preemptivos também (e.g. desde que dentro dodeadline)
![Page 32: Sistemas Operacionais - USPwiki.icmc.usp.br/images/b/b1/Aula04.pdf · 30 Escalonamento de Processos Tempo de execução de um processo é imprevisível: CPU gera interrupções em](https://reader033.fdocument.pub/reader033/viewer/2022042110/5e8b300eac7ecf49dc2b4904/html5/thumbnails/32.jpg)
32
Escalonamento de Processos
Critérios adotados pela maioria dosalgoritmos de escalonamento:
Qualquer sistema: Justiça (Fairness): cada processo deve receber
uma parcela justa de tempo da CPU; Balanceamento: diminuir a ociosidade do
sistema; Políticas do sistema – prioridade de processos;
![Page 33: Sistemas Operacionais - USPwiki.icmc.usp.br/images/b/b1/Aula04.pdf · 30 Escalonamento de Processos Tempo de execução de um processo é imprevisível: CPU gera interrupções em](https://reader033.fdocument.pub/reader033/viewer/2022042110/5e8b300eac7ecf49dc2b4904/html5/thumbnails/33.jpg)
33
Escalonamento de Processos Características de algoritmos de escalonamento:
Sistemas em Batch: Taxa de execução (throughput): máximo número de jobs
executados por unidade de tempo (e.g. hora); Turnaround time (tempo de retorno): tempo no qual o processo
espera para ser finalizado; submissão até o fim da chegada detodo output (tipicamente, tempo de espera + tempo de execução).
Tempo de espera: tempo gasto na fila de prontos; Eficiência: CPU deve estar 100% do tempo ocupada;
Sistemas Interativos: Tempo de resposta: tempo esperando para iniciar execução; Satisfação do usuários; QoE (Quality of Experience).
![Page 34: Sistemas Operacionais - USPwiki.icmc.usp.br/images/b/b1/Aula04.pdf · 30 Escalonamento de Processos Tempo de execução de um processo é imprevisível: CPU gera interrupções em](https://reader033.fdocument.pub/reader033/viewer/2022042110/5e8b300eac7ecf49dc2b4904/html5/thumbnails/34.jpg)
34
Escalonamento de Processos
Características de algoritmos deescalonamento: Sistemas em Tempo Real:
Prevenir perda de dados (e.g. aplicações demultimídia)
Previsibilidade: prevenir perda da qualidade dosserviços oferecidos (e.g. a consistência na transmissãoé melhor do que a rajada)
Diferentemente das aplicações elásticas
![Page 35: Sistemas Operacionais - USPwiki.icmc.usp.br/images/b/b1/Aula04.pdf · 30 Escalonamento de Processos Tempo de execução de um processo é imprevisível: CPU gera interrupções em](https://reader033.fdocument.pub/reader033/viewer/2022042110/5e8b300eac7ecf49dc2b4904/html5/thumbnails/35.jpg)
Perguntas?