Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ......

58
Disciplina: Sistemas Operacionais Parte – 3:Escalonamento de CPU, Conceitos básicos critérios de escalonamento, escalonamento em múltiplos processadores e Alocação de Memória. Prof. Wagner Santos C. de Jesus [email protected] Curso: Análise e Desenvolvimento de Sistemas

Transcript of Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ......

Page 1: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Disciplina: Sistemas Operacionais

Parte – 3:Escalonamento de CPU, Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos

processadores e Alocação de Memória.

Prof. Wagner Santos C. de [email protected]

Curso: Análise e Desenvolvimento de Sistemas

Page 2: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Escalonamento de CPU

2

Page 3: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Conceito Escalonamento de CPU

O escalonamento de CPU é a base dos sistemasoperacionais multiprogramados. Alternando CPUentre os processos, o sistema operacional podetornar o computador mais produtivo (Gagne, 2016).

3

Page 4: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Memória Principal

4

Unidade Logica e

Aritmética

Unidade Central de Processamento - CPU

Controle

Memória

EntradaSaída

Mundo Externo

Para Mundo Externo

Page 5: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Ciclo de burst CPU-E/S

O sucesso do escalonamento da CPU depende dapropriedade observada nos processos: A execução de umprocesso começa com um burst (surto ) de CPU, que éseguido por um burst de E/S .

5

burst de CPU

burst de E/S

burst de CPU

:

Burst CPU

Burst final termina comuma requisição dosistema para terminar aexecução.

Page 6: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Alternando a sequencia de bursts CPU-E/S

6

load storeadd storeRead do arquivo

espera pela E/S burst de E/S

burst de CPU

store IncrementIndexwrite para arquivo

burst de CPU

espera pela E/S burst de E/S

load storeadd storeRead do arquivo

burst de CPU

espera pela E/S burst de E/S

Page 7: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Histograma dos temposde burst da CPU

7

Fre

quên

cia

Duração do burst (milissegundos)

Page 8: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Escalonamento Preemptivo

8

Page 9: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Conceito de Preemptivo

Preempção é o ato de interromper temporariamente umatarefa sendo resolvida por um sistema computacional,sem precisar de sua cooperação, e com a intenção deretomar a tarefa depois.

9

Page 10: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

As decisões de escalonamento de CPU podem ocorrer sob quatro circunstâncias:

10

Page 11: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

1 – Atividade ProcessoEspera

11

Executando(Running)

Esperando(Waiting)

E/SQuando um processo passa do estadoexecutando para o estado esperando.Exemplo Resultado de uma requisiçãode entrada de saída. Ou pelo término deum dos processos filho.

Page 12: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

2 – Atividade ProcessoPronto

12

Pronto(Ready)

Executando(Running)

Interrupção

Quando um processo passa do estado executando para oestado pronto. Ex. Quando ocorre uma interrupção.

Page 13: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

3 – Atividade ProcessoEsperando

13

término E/S

Pronto(Ready)

Esperando(Waiting)

Quando um processo passa doestado esperando para o estadopronto. Ex. Termino de uma E/S.

Page 14: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

4 – Atividade Processo Termino

14

Executando(Running)

Terminado(Terminated)

Quando um processo termina.

Page 15: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Definição de Preempção

Quando o escalonamento ocorre somente sob ascircunstancias 1 e 4, denomina-se não preemptivo.

15

Executando(Running)

Esperando(Waiting)

E/S

Terminado(Terminated)

Page 16: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Modulo despachante

Consiste em ser um módulo que dá o controle da CPU aoprocesso selecionado pelo escalonador de curto prazo.Essa função envolve o seguinte:

• Trocar de contexto.• Trocar para o modo usuário.• Desviar para o local apropriado no programa do usuário

para reiniciar esse programa.

16

Page 17: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Critérios de Escalonamento

17

Page 18: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Critérios de Escalonagem

A escolha das caraterísticas que serão usadas para acomparação pode fazer diferença substancial na escolha doalgoritmo considerado melhor. Os critérios incluem osseguintes:

• Utilização da CPU• Throughput (vazão) – taxa de transferência• Turnaround time (tempo de retorno)• Tempo de espera• Tempo de resposta

18

Page 19: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Utilização da CPU

Utilização da CPU pode variar de 0% a 100%.

40% - Sistema pouco carregado.até 90% - Para um sistema muito carregado.

19

Page 20: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Throughput (vazão)

Se a CPU estiver ocupada:

Para processos longos, essa taxa pode ser um processo porhora;Para transações curtas poderá ser 10 processos por segundo.

20

Page 21: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Turnaround time

Vem a ser o intervalo desde a submissão até otérmino do processo.

• Esperando para entrar na memória,• Esperando na fila de pronto,• Executando na CPU e realizando E/S.

21

Page 22: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Tempo de espera

O algoritmo de escalonamento de CPU não afeta aquantidade de tempo durante a qual o processo éexecutado ou realiza E/S.

Afetando apenas a quantidade de tempo em que umprocesso gasta esperando na fila de pronto.

O tempo de espera é a soma dos períodos gastosaguardando na fila de espera.

22

Page 23: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Tempo de resposta

Essa medida vem a ser o tempo gasto para começar aresponder, e não o tempo gasto para saída da resposta. Otempo de resposta é limitado pela velocidade dodispositivo de saída.

23

Page 24: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Algoritmos de Escalonamento

24

Page 25: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Escalonamento

O escalonamento de CPU trata do problema de decidirqual dos processos na fila de prontos (ready queue) deveser entregue à CPU.

25

P1 P2 P3

Representado por um Diagrama de GANTT

Page 26: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Escolanamento First Come, First Served

FCFS(Primeiro que chega será Servido)

26

Page 27: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

FCFS

É o algoritmo de escalonamento de CPU que sefuncionamento consiste em primeiro a chegar, primeiroa ser atendido. Utiliza o conceito de fila FIFO (First Inpute Fist Output).

Entretanto, o tempo de espera médio sob a políticaFCFS normalmente é muito longo.

27

Page 28: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

FCFSConsidere o seguinte conjunto de processos que chegamno instante 0, com quantidade de tempo de burst de CPUindicada em milissegundos:

28

Processo Tempo de burst

P1 24

P2 3

P3 3

P1 P2 P3

0 24 27 30

O tempo médio espera do é de (0+24+27)/3 = 17 milissegundos.

Page 29: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Escolanamento Shortest-job-First - SJF(Menor Tarefa Primeiro)

29

Page 30: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Escalonamento SJF

Esse algoritmo associa a cada processo o tamanho dopróximo burst de CPU do processo. Quando a CPU estiverdisponível ele será alocado ao processo que possui omenor próximo burst de CPU. Se próximo burt de CPU dedois processos forem iguais, o escalonamento FCFS seráusado no desempate.

30

Page 31: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

SJF

31

Processo Tempo de burst

P1 6

P2 8

P3 7

P4 3

P4 P1 P3 P2

0 3 9 16 24

Tempo de espera médio (3+16+9+0)/4 = 7 Milissegundos

Page 32: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Shortest Remaining Time(Tempo restante

mais curto)32

Page 33: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Escalonamento SRTF

Na entrada de um novo processo, o algoritmo deescalonamento avalia seu tempo de execução incluindo ojob em execução, caso a estimativa de seu tempo deexecução seja menor que o do processo concorrentementeem execução, ocorre a substituição do processo emexecução pelo recém chegado, de duração mais curta, ouseja, ocorre a preempção do processo em execução.

33

Page 34: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

SRTF

34

Processo Tempo de chegada Tempo de burst

P1 0 8

P2 1 4

P3 2 9

P4 3 5

P1 P2 P4 P1 P3

0 1 5 10 18 27

Page 35: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Simulação de Fila de Processos - SJF

35

Page 36: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Comunicação em Sistemas Cliente

Servidor

36

Page 37: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Comunicação entre Processos

• IPC (Inter-Process Communication) – Usado para troca de dados entre processos locais.

• RPC (Remote Procedure Calls) – Usado para trocade dados entre processos remotos.

37

Page 38: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

RPC (Remote Procedure Calls)

Foi projetado como meio de separar o mecanismo dechamada de procedimento para uso entre sistemas comconexões de rede. Em vários aspectos, ela ésemelhante ao mecanismo de IPC (Inter-ProcessCommunication), é o grupo de mecanismos quepermite aos processos transferirem informação entre si.

38

Page 39: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

A tecnologia cliente /servidor é uma arquitetura na qual oprocessamento da informação é dividido em módulos ouprocessos distintos. Um processo é responsável pelamanutenção da informação (servidores) e outrosresponsáveis pela obtenção dos dados (os clientes).

39

ProcessoServiço

ProcessoRequisição

Page 40: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Chamadas de procedimentosLocal

40

Cliente Servidor

Porta de comunicação com cliente

Porta de conexão

Porta de comunicação com servidor

Objeto de seção compartilhado(<= 256 bytes)

Requisição de conexão Descritor

Descritor

Descritor

Page 41: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Atividade de ProcessoCliente Servidor

41

Aplicação Servidor Aplicação ClienteInicia antes Inicia depois

Não precisa saber qual cliente irá se conectar Precisa saber a qual servidor se conectar

Espera passivamente um tempo indeterminadopelo contato do cliente

Inicia o contato quando a comunicação énecessária

Comunica-se com o cliente enviando e recebendodados

Comunica-se com o servidor enviando erecebendo dados

Continua executando após atender um cliente,esperando pelo próximo

Pode encerrar após interagir com o servidor

Page 42: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Alocação de Memória

42

Page 43: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Swapping

Um processo precisa estar na memória para ser executado.Contudo, um processo pode ter de ser swapping(troca)temporariamente entre a memória e um backing store(armazenamento de apoio), para depois ser trazido de voltapara a memória, para continuar a execução.

43

SistemaOperacional

Espaçodo usuário

ProcessoP1

ProcessoP2

Armazenamento de apoio (backing store)

2

1Swap out

(retira)

Swap in(insere)

Disco

Page 44: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Alocação de memória contígua

A memória é dividida em duas partições:

• Uma para o Sistema Operacional Residente.• Uma outra para o Processos de Usuário.

44Contigua – Próximas (Adjacente)

Page 45: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Proteção e mapeamentode memória

45

CPU <

Registrador de limite

Registrador de relocação

memória

Interceptação: Erro de endereçamento

Endereçológico sim

não

Endereçofísico

+

Page 46: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Alocação de memoria

Podemos alocar os Sistema Operacional:

• Memoria Baixa (Vetor de Interrupção) - RAM Ondese coloca o Sistema Operacional

• Memoria Alta (Dados enviados pelos processos).Registradores (CPU)

46

Page 47: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

47

Diagrama de classificação daMemória RAM

Page 48: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Fragmentação de Memória

48

Page 49: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Fragmentação externa

À medida que os processos são carregados eremovidos da memória, o espaço de memória livre érepartido em pequenas partes. A fragmentação externaexiste quando há espaço de memória total suficiente parasatisfazer uma requisição, mas os espaços disponíveis nãosão contíguos.

49

Ocupado-1 Ocupado-2

Page 50: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Problemas da Fragmentação

Considere um esquema de alocação de múltiplaspartições, com buraco de 18.464 bytes. Com o próximoprocesso requisitando 18.462 bytes

50

Processo-1 Processo-2

18.464 bytes 18.462 bytes2 bytes

Page 51: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Solução da Fragmentação

Uma solução para o problema da fragmentação externa éa compactação. Consiste em redistribuir o conteúdo damemória de modo a colocar toda a memória livre junta, emum grande bloco.

51

Page 52: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Contra Ponto Compactação

Contudo a compactação nem sempre é possível nemsempre é possível. Se a realocação for estática e for feitaem tempo de montagem ou carga, a compactação nãopoderá ser feita; a compactação somente poderá serefetuada se a realocação for dinâmica e feita em tempode execução.

52

Page 53: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Conceito de Paginação

53

Page 54: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Paginação

Vem a ser um esquema de gerencia de memoriaque permite que espaço de endereços físicos de umprocesso seja não contíguo. A paginação evita afragmentação externa e a necessidade de compactação.Resolvendo também o ajuste de trecho de memoria detamanho variado.

54

Page 55: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Métodos de Paginação

55

O método para implementação da paginação envolvedividir a memória física em blocos de tamanho fixo,chamados quadros, e dividir a memória lógica em blocosdo mesmo tamanho, chamados páginas.

QuadroPágina

Memoria FísicaMemoria lógica

CPU RAM

Page 56: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Definição de página

• Tamanho da página e do quadro é definido pelo hardware.

• O tamanho de uma página é uma potência de 2, variando de 512 bytes e 16 MB por página.

• Onde 2m é o tamanho do endereço lógico.• 2n Tamanho da página (bytes).

56

p dNúmero de página Deslocamento de página

m n

bits de alta ordem bits de baixa ordem

Page 57: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Suporte do Hardware para paginação

Cada endereço gerado pela CPU é divido em duaspartes:

• Um número de página (p)• Deslocamento de página (d)

57

O número de página é usado como um índice para atabela de página

Page 58: Curso: Análise e Desenvolvimento de Sistemas · Disciplina: Sistemas Operacionais Parte ... Conceitos básicos cr itérios de escalonamento, escalonamento em múltiplos processadores

Hardware de Paginação

58

CPU p d f d

Endereçológico

Endereçofísico

___

___

f

____

____

p

Tabela de página

f

Memória física

f000....0000

f1111....1111