Escolar Documentos
Profissional Documentos
Cultura Documentos
Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Plo Universitrio de Rio das Ostras - PURO
Conceitos B Bsicos
Mxima utilizao da CPU obtida com a multiprogramao; Ciclo do burst de CPU e E/S A execuo de um processo consiste em um ciclo de execuo da CPU e espera por E/S; Distribuio dos bursts de CPU de um ou mais processos ao longo do tempo;
Processos
Multiprogramao:
Pseudoparalelismo: coleo de processos sendo executados alternadamente na CPU;
Um processo caracterizado por um programa em execuo, mas existe uma diferena sutil entre processo e programa:
Um processo pode ser composto por vrios programas, dados de entrada, dados de sada e um estado (executando, bloqueado, pronto)
Criando Processos
Processos precisam ser criados e finalizados a todo o momento:
Na inicializao do sistema; Na execuo de uma chamada ao sistema de criao de processo realizada por algum processo em execuo; Na requisio de usurio para criar um novo processo; Na inicializao de um processo em batch (em mainframes com sistemas de batch).
Criando Processos
Processos podem ser:
Especficos para usurios especficos:
Leitura de um arquivo; Iniciar um programa (linha de comando ou um duplo clique no mouse);
Com funes especficas, que independem de usurios, que so criados pelo sistema operacional e que so processados em segundo plano (daemons):
Recepo e envio de emails; Servios de Impresso;
Criando Processos
UNIX:
Fork; Cria um processo idntico (filho) ao processo que a chamou (pai), possuindo a mesma imagem de memria, as mesmas cadeias de caracteres no ambiente e os mesmos arquivos abertos; Depois, o processo filho executa uma chamada para mudar sua imagem de memria e executar um novo programa.
Windows:
CreateProcess; Uma nica funo trata tanto do processo de criao quanto da carga do programa correto no novo processo.
Criando Processos
Exemplo UNIX:
Processo init: gera vrios processos filhos para atender os vrios terminais que existem no sistema;
Finalizando Processos
Condies:
Trmino normal (voluntrio):
A tarefa a ser executada finalizada; Chamadas: exit (UNIX) e ExitProcess (Windows).
10
Finalizando Processos
Condies (continuao):
Trmino com erro fatal (involuntrio);
Erro causado por algum erro no programa (bug): Diviso por 0 (zero); Referncia memria inexistente ou no pertencente ao processo; Execuo de uma instruo ilegal;
11
Estados de Processos
Um processo sendo executado no pode continuar sua execuo, pois precisa de algum evento (E/S ou semforo) para continuar;
Executando 1 3 4 2
Bloqueado
Pronto
12
Estados de Processos
Um processo bloqueado de duas maneiras: chamada ao sistema: block ou pause; se no h entradas disponveis para que o processo continue sua execuo;
Executando 1 3 4 2
Bloqueado
Pronto
13
Estados de Processos
Executando 1 3 4
As transies 2 e 3 ocorrem durante o escalonamento de processos: o tempo destinado quele processo acabou e outro processo colocado no processador;
Bloqueado
Pronto
14
Estados de Processos
Executando 1 3 4 2
Bloqueado
Pronto
A transio 4 ocorre quando o evento esperado pelo processo bloqueado ocorre: se o processador est parado, o processo executado imediatamente (2); se o processador est ocupado, o processo deve esperar sua vez;
15
Processos
Processos CPU-bound (orientados CPU): processos que utilizam muito o processador;
Tempo de execuo definido pelos ciclos de processador;
16
Escalonador de Processos
Processos 0 1
...
n-1 n
Escalonador de Processos
17
Implementao 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 de processo; BCP possui todas as informaes do processo contextos de hardware, software, endereo de memria, etc.;
18
Implementao de Processos
Tabela de processos BCP P1
19
Implementao de Processos
Escalonamento de Processos
O escalonador de processos responsvel por escolher o processo que ser executado pela CPU; O escalonamento realizado com o auxlio do hardware; O escalonador deve se preocupar com a eficincia da CPU, pois o chaveamento de processos complexo e custoso (afeta desempenho do sistema e satisfao do usurio); O escalonador de processo um processo que deve ser executado quando da mudana de contexto (troca de processo);
21
Escalonamento de Processos
Situaes nas quais escalonamento necessrio: Um novo processo criado; Um processo terminou sua execuo e um processo pronto deve ser executado; Quando um processo bloqueado (semforo, dependncia de E/S), outro deve ser executado; Quando uma interrupo de E/S ocorre o escalonador deve decidir por: executar o processo que estava esperando esse evento; continuar executando o processo que j estava sendo executado ou executar um terceiro processo que esteja pronto para ser executado;
22
Escalonamento de Processos
Hardware de relgio fornece interrupes de relgio e a deciso do escalonamento pode ser tomada a cada interrupo ou a cada k interrupes; Algoritmos de escalonamento podem ser divididos em duas categorias dependendo de como essas interrupes so tratadas:
Preemptivo: escolhe um processo e o deixa executando por um tempo mximo; No-preemptivo: estratgia de permitir que o processo que est sendo executado continue sendo executado at ser bloqueado por alguma razo (semforos, operaes de E/S-interrupo) ou que libere a CPU voluntariamente;
23
Escalonamento de Processos
Mudana de Contexto:
Overhead de tempo; Tarefa cara:
Salvar as informaes do processo que est deixando a CPU em seu BCP na CPU contedo dos registradores; Carregar as informaes do processo que ser colocado copiar do BCP o contedo dos registradores;
24
25
Latncia de Despacho
26
Escalonamento de Processos
Antes da Mudana de Contexto
BCP-P2 PC = 0BF4h PID = 2 Estado = pronto Prximo processo PC = 076Fh
Processo j executou algumas instrues
27
CPU
Escalonamento de Processos
Depois da Mudana de Contexto
BCP-P2 PC = 0BF4h PID = 2 Estado = executando
Salva o contexto no BCP
PC = 0BF4h
CPU
28
Escalonamento de Processos
Categorias de Ambientes:
Sistemas em Batch: usurios no esperam por respostas rpidas; algoritmos no-preemptivos ou preemptivos com longo intervalo de tempo; Sistemas Interativos: interao constante do usurio; algoritmos preemptivos; Processo interativo comando e executa comando; Sistemas em Tempo Real: processos so executados mais rapidamente, pois o tempo crucial sistemas crticos; espera
29
Escalonamento de Processos
Caractersticas escalonamento:
Qualquer sistema:
Justia (Fairness): cada processo deve receber uma parcela justa de tempo da CPU; Balanceamento: diminuir a ociosidade do sistema; Polticas do sistema prioridade de processos;
de
algoritmos
de
30
Escalonamento de Processos
Caractersticas de algoritmos de escalonamento:
Sistemas em Batch:
Vazo (throughput): maximizar o nmero de jobs executados por hora; Tempo de retorno (turnaround time): tempo no qual o processo espera para ser finalizado; Eficincia: CPU deve estar 100% do tempo ocupada;
Sistemas Interativos:
Tempo de resposta: tempo esperando para iniciar execuo; Proporcionalidade: satisfao do usurios;
31
Escalonamento de Processos
Caractersticas escalonamento: de algoritmos de
32
Escalonador de CPU
Seleciona um processo, entre os presentes na memria que esto prontos para execuo, e o aloca CPU; As decises de escalonamento de CPU podem ocorrer quando um processo:
1.Passa do estado executando para o estado esperando ; 2.Passa do estado executando para o estado pronto; 3.Passa do estado esperando para o estado pronto ; 4.Termina.
O escalonamento nos casos 1 e 4 no-preemptivo; Todos os outros preemptivos; escalonamentos podem ser
33
Despachador (dispatcher)
O despachador passa o controle da CPU ao processo selecionado pelo escalonador de curto prazo; isso envolve:
Troca do contexto; Troca do modo do usurio; Desvio para o local apropriado no programa do usurio a fim de reiniciar esse programa.
Latncia de despacho tempo gasto para o despachante interromper um processo e iniciar a execuo de outro
34
Utilizao de CPU mxima; Throughput mxima; Turnaround mnimo; Tempo de espera mnimo; Tempo de resposta mnimo.
36
Suponha que o processo chegue na ordem: P1 , P2 , P3.. O diagrama de Gantt para o escalonamento ser:
P1 0 24 P2 27 P3 30
diagrama
de
Gantt
para
escalonamento
ser:
P2 0 3
P3 6
P1 30
Muito melhor do que no caso anterior Efeito comboio processo curto atrs de processo longo
38
O SJF o timo prov o menor tempo de espera mdio para um determinado conjunto de processos
39
SJF (no-preemptivo)
P1 0 3 7 P3 8 P2 12 P4 16
SJF (preemptivo)
P1 0 2 P2 4 P3 5 P2 7 P4 11 P1 16
43
44
45
46
47
O diagrama de Gantt :
P1 0 P2 20 37 P3 P4 57 P1 77 P3 P4 P1 P3 P3
97 117
Normalmente, turnaround mdio mais alto do que SJF, mas melhora a resposta
48
49
50
Exerccio
Suponha que existam os seguintes processos para serem executados em um processador:
Processo A B C D E F Tempo de execuo 12 6 2 5 9 8 Tempo de chegada 0 3 5 8 11 13
Fornea o diagrama de Gantt e o tempo de turnaround para os mtodos de escalonamento: FCFS, SJF(preemptivo e no-preemptivo) e Round Robin com quantum igual a 3.
51
52
Multilevel Queue
necessrio haver escalonamento entre as filas
Escalonamento de prioridade fixa; (ou seja, serve a todos a partir do primeiro plano e depois do segundo plano). Possibilidade de estagnao. Fatia de tempo cada fila recebe uma certa parte do tempo de CPU, que pode ser escalonado entre seus processos; por exemplo, 80% para o primeiro plano no RR e 20% para o segundo plano no FCFS
53
54
Escalonamento
Uma nova tarefa entra na fila Q0 , que atendida com base no FCFS. Quando ganha a CPU, a tarefa recebe 8 milissegundos. Se no terminar nesse tempo, a tarefa movida para a fila Q1. Em Q1, a tarefa atendida novamente com base no FCFS e recebe 16 milissegundos adicionais. Se ainda no estiver completa, a tarefa apropriada e movida para a fila Q2.
56
57
dentro
de
um
59
60
61