• Nenhum resultado encontrado

Gerência de Processador

N/A
N/A
Protected

Academic year: 2021

Share "Gerência de Processador"

Copied!
7
0
0

Texto

(1)

1

Gerência de Processador

Ambientes Operacionais

Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br www.inf.pucrs.br/~stoscani

2

Multiprogramação

„ Torna mais eficiente o aproveitamento dos recursos computacionais

„ Mais de um programa sendo executado ao mesmo

tempo

‰ Diversos programas são mantidos na memória (um

executando e vários esperando para executar)

„ O próprio SO é composto de vários programas „ Gerenciamento de recursos para estes processos:

‰ Tempo de processador ‰ Espaço de memória ‰ Espaço em disco ‰ Periféricos 3

Programa e Processo

„

Programa: é o código a ser executado

(estático, passivo)

„

Processo: é o código em execução

(dinâmico, ativo)

‰ Altera seu estado no decorrer de sua execução ‰ Além do código, também possui os dados da

execução

4

Processo

‰Um programa pode ter várias instâncias em

execução (isto é, vários processos podem estar executando o mesmo programa ao mesmo tempo)

„ Ex. mais de um browser aberto ao mesmo tempo „ Cada um tem seus dados, por exemplo: página que

está sendo visitada.

Ciclo de vida de um Processo

„

Em geral:

‰ Criação ‰ Execução ‰ Término

„ Tem SOs que trabalham com um número fixo de

processos, todos eles “criados” na inicialização do sistema

Criação de processos

„ A criação pode ser feita através de chamadas de sistemas

‰ e.g. fork, spawn, etc.

„ Podem ser associados a terminais

„ Podem ser associados a uma sessão de trabalho

‰ e.g. login de usuários: login + senha → shell

„ Em geral, pode se formar uma hierarquia de processos

(2)

7

Ciclo de CPU e ciclo de E/S

„ A vida de um processo se alterna entre:

‰ Ciclo de processador (ou ciclo de CPU) „ Tempo que ocupa a CPU

‰ Ciclo de E/S

„ Tempo que espera conclusão de uma operação de E/S

„ Troca de ciclos:

„ CPU → E/S: chamada de sistema „ E/S → CPU: ocorrência de interrupção

8

Tipos de comportamentos

„ Os processos podem ser:

‰ CPU bound (ciclos de UCP grandes) ‰ I/O bound (ciclos de E/S freqüentes)

„ Exemplos:

‰ CPU bound: processo que inverte uma matriz ‰ I/O bound: processo que copia um arquivo

„ É conveniente ter uma mistura dos dois tipos de processos na memória, pois isto dá flexibilidade para o escalonamento (escolha de processos a serem executados)

9

Término de um processo

„

Final normal

„

Final por erro

‰ e.g. divisão por zero, problema de E/S, limite de

tempo, falta de memória, proteção

„

Intervenção de outros processos (kill)

„

Log off de usuários

10

Relacionamento entre processos

„

Processos independentes

„

Grupos de processos

‰Algum relacionamento

„ e.g. shell e os processos disparados dentro dele ‰Podem compartilhar recursos

‰Definem algum tipo de hierarquia

Hierarquia de processos

„ Processo criador é o pai „ Processo criado é o filho

„ Em geral, vai haver uma árvore de processos, que é

alterada de forma dinâmica

„ Questão associada: o que fazer quando um processo com

descendentes é destruído?

‰ Terminar todos processos de descendência

‰ Postergar termino do pai até que todos descendentes acabem ‰ Descendência ser herdada pelo processo “vô”

‰ Descendência ser herdada por um processo do SO

Fila de processos aptos

„

Após ser criado o processo entra em ciclo de

processador

‰Vários processos podem estar esperando pelo

processador (prontos para receber a CPU)

‰Os processos à espera da CPU ficam em uma

(3)

13

Transição de estado

„ Cada processo muda de estado, durante a sua vida, de

acordo com o seguinte diagrama de transição:

Criação Apto Executando Destruição

Bloqueado Ocorrência de evento (interrupçao) Seleção Término Chamada de sistema 14

Transição de estado

„ O sistema operacional escolhe (entre os processos

aptos) qual será o próximo a entrar em execução

„ O módulo responsável por esta escolha é o

escalonador (scheduler)

„ Os processos são bloqueados apenas quando realizam

chamadas do sistema

„ Na maioria dos casos, o SO não permite que um

processo monopolize a CPU ( ver diagrama de transição a seguir)

„ Só no caso de haver multiprocessamento (i.é, mais de

uma UCP) pode-se ter mais de um processo no estado executando

15

Transição de estado (mais detalhes)

Criação Apto Executando Destruição

Bloqueado Ocorrência de evento (interrupçao) Seleção Término Tempo Chamada de sistema Retorno imediato Erro 16

Registro descritor de processo

(Process Control Block)

„ O SO mantém para cada processo um registro descritor:

‰ Número único do processo;

‰ Prioridade do processo no sistema (usada para definir a

ordem na qual os processos recebem o processador);

‰ Localização e tamanho da área de memória ocupada pelo

processo;

‰ Identificação dos arquivos abertos no momento;

‰ Informações para contabilidade (tempo de processador gasto,

espaço de memória ocupado, etc.);

‰ Estado do processo: apto, executando, bloqueado; ‰ Contexto de execução (isto é, conteúdos dos registradores da

UCP correspondentes a esse processo);

‰ Apontadores para encadeamento do descritor nas filas do SO.

Processos e filas

„

O registro descritor (RD) de um processo

sempre está encadeado a alguma fila:

‰Fila de RDs livres. Pode ser

„ Fila de tamanho fixo ou „ RDs alocados dinâmicamente ‰Fila de aptos

‰Fila de bloqueados

„

Eventos ocasionam transferências entre

filas

Escalonamento

„

O escalonador é o componente do SO

responsável por selecionar um processo apto

para executar no processador

„

O objetivo é dividir o tempo do processador

de forma justa entre todos processos aptos

„

Outros objetivos:

„ Maximizar a utilização do processador „ Maximizar a produção do sistema (throughput) „ Minimizar o tempo de espera

(4)

19

Chaveamento de Contexto

„ É a troca do processo em execução (O contexto do processo que estava em execução deve ser guardado e o contexto do próximo a executar deve ser restaurado)

‰ Salvar contexto do processo é a primeira ação do SO ao

receber a CPU em uma interrupção

‰ Restaurar contexto do processo é a última ação do SO antes

de passar CPU ao processo escolhido pelo escalonador

„ Dispatcher é o nome do componente do SO que restaura o contexto do processo escolhido

20

Chaveamento de Contexto

21

Tipos de escalonadores

„

Três tipos:

‰ Curto prazo (existe em qualquer SO) ‰ Médio prazo (só existe em certos SOs) ‰ Longo prazo (também é raro)

22

Escalonador de longo prazo

„

Decide quando um processo vai ser criado

„

Normalmente não é utilizado para processos

criados através de terminais (estes começam

imediatamente)

„

Controla o grau de multiprogramação

Escalonador de médio prazo

„

Utilizado quando o sistema fica

sobrecarregado

„

Decide qual processo vai ser retirado ou

restaurado na memória

‰ Operação de swap:

„ Swap out: processo retirado da memória e enviado ao

disco

„ Swap in: processo volta do disco para a memória

Escalonador de curto prazo

„

Seleciona um entre os processos prontos

para execução

„

Acionado sempre que a CPU fica livre

(processo foi bloqueado, terminou ou ocorreu

uma interrupção)

(5)

25

Algoritmo de escalonamento FIFO

„

Processos que se tornam aptos entram no

fim da fila

„

Processo que está no inicio da fila é o

próximo a ser executado

„

Processo executa até que:

‰ Libere explicitamente o processador

‰ Realize uma chamada de sistema

‰ Termine sua execução

26

FIFO (First-In First-Out)

também chamado FCFS (First-Come First-Served

)

„ Processos A, B, C e D

„ Duração do próximo ciclo (A:12, B:8, C:15,D:5)

„ Tempo médio: (0+12+20+35)/4=16.75 A 0 12 20 35 40 B C D 27

FIFO

„

Prejudica processos I/O bound

„

Nem sempre propicia bom tempo de

resposta

28

SJF (Shortest Job First )

„

Processos com menor tempo (futuro) de

utilização de CPU entra no inicio da fila,

empurra os outros para trás

„

Processos I/O bound são favorecidos (isto

“maximiza” a utilização dos periféricos)

SJF

„ Menor tempo médio de espera

„ Duração do próximo ciclo (A:12, B:8, C:15,D:5)

„ Tempo médio: (0+5+13+25)/4 =10.75 A 0 40 B C D 5 13 25

SJF

„

Como prever o tempo de execução?

„

Serve como limite teórico

(6)

31

Escalonadores Preemptivos e

Não-preemptivos

‰ Esquema não-preemptivo. Uma vez selecionado, o

processo utiliza o processador até:

„ o término da execução do processo „ uma chamada de sistema ser realizada ‰ Esquema preemptivo. Uma vez selecionado, o

processo utiliza o processador até:

„ término da execução do processo „ chamada de sistema é realizada

„ processo de mais alta prioridade fica pronto para executar

32

Round robin (fatia de tempo)

„ cada processo recebe uma fatia de tempo do processador (quantum ou time-slice) „ Processos entram no fim da fila „ O primeiro da fila é executado por uma

pequena fatia de tempo (ordem de 20 mS)

„ Sempre que a fatia de tempo acaba, a CPU é

transferida para o próximo da fila

„ O processo que acaba sua fatia de tempo vai para o fim da fila

33

Round-robin

„ Duração do próximo ciclo (A:12, B:8, C:15,D:5) „ Para fatia de 3 unidades de tempo

„ Tempo médio: (0+5+13+25)/4 =10.75 A 0 40 B C D 3 6 9 12 15 18 23 28 34 34

Round-robin

„

Problema

‰Como definir a fatia de tempo

‰O chaveamento entre processos não é

instantâneo!

‰Exemplo, supor que: „ instrução executa em 1µs

„ 200 instruções para chaveamento → 200 µs „ Se fatia de tempo é 1ms então o chaveamento é 20%

do tempo para realizar trabalho útil (overhead de 20%)

Round-robin

„

Processos I/O bound são prejudicados

‰ Pois eles não executam durante toda sua fatia de

tempo

‰ Solução: „ Uso de prioridades

„ Processos I/O bound tem maior prioridade

Prioridade

„

Processos com maior prioridade executam

primeiro

‰No caso de mesma prioridade, é preciso escolher

uma alternativa para resolver qual executa primeiro: FIFO, SJF, Round-Robin

(7)

37

Prioridade

Processo Prioridade Duração do próximo ciclo de processados A 3 12 B 4 8 C 2 15 D 1 5 A 0 40 B C D 5 20 32 38

Prioridade

„

Como definir prioridades?

„

Processos com menor prioridade podem ficar

esperando indefinidamente

‰Solução: aging (processos tem sua prioridade

aumentanda lentamente)

39

Múltiplas filas

‰ Processos em foreground e em background

„ Como dividir tempo?

‰ Pode-se ter fila separada para I/O bound, com

maior prioridade para os processos desta fila (isto melhora a utilização dos periféricos)

‰ Tem-se realimentação quando os processos

podem mudar de uma fila para outra

40

Referências

Documentos relacionados

Para além deste componente mais prático, a formação académica do 6º ano do MIM incluiu ainda disciplinas de cariz teórico, nomeadamente, a Unidade Curricular de

Nesse contexto, o presente trabalho tem como objetivo realizar testes de tração mecânica e de trilhamento elétrico nos dois polímeros mais utilizados na impressão

Clique nos ícones para localização no mapa Kitabu Livraria Negra.

Considering that this study revealed that the dimensions of the coracoid process are not relevant criteria for selecting the best surgical option, it seems important to study

Por meio destes jogos, o professor ainda pode diagnosticar melhor suas fragilidades (ou potencialidades). E, ainda, o próprio aluno pode aumentar a sua percepção quanto

O objetivo desse trabalho ´e a construc¸ ˜ao de um dispositivo embarcado que pode ser acoplado entre a fonte de alimentac¸ ˜ao e a carga de teste (monof ´asica) capaz de calcular

Para Azevedo (2013), o planejamento dos gastos das entidades públicas é de suma importância para que se obtenha a implantação das políticas públicas, mas apenas

Contexto de Thread : Conjunto m´ınimo de valores armazenados em registradores e mem ´oria, usados para execuc¸ ˜ao de uma sequ ˆencia de instruc¸ ˜oes (contexto de processador,