sistemas de informaçãobrunotoledoifmg.com/so/aulas/aula 6 - gerenciamento de processo… ·...

54
Sistemas de Informação Sistemas Operacionais

Upload: others

Post on 28-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Sistemas de Informação

Sistemas Operacionais

Page 2: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

PROCESSOS

E THREADS – PARTE III

SUMÁRIO

4. GERÊNCIA DO PROCESSADOR:

4.1 Introdução;

4.2 Funções Básicas;

4.3 Critérios de Escalonamento;

4.4 Escalonamentos Não-Preemptivos e Preemptivos;

4.5 Escalonamento First-In-First-Out (FIFO);

4.6 Escalonamento Shortest-Job-First (SJF);

4.7 Escalonamento Cooperativo;

4.8 Escalonamento Circular;

4.9 Escalonamento por Prioridades;

4.10 Escalonamento Circular com Prioridades;

4.11 Escalonamento por Múltiplas Filas;

4.12 Escalonamento por Múltiplas Filas com Realimentação;

4.13 Política de Escalonamento em Sistemas de Tempo Compartilhado;

4.14 Política de Escalonamento em Sistemas de Tempo Real;

4.15 Deadlock.

Page 3: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.1 Introdução

Com o surgimento dos sistemas multiprogramáveis, a gerência do

processador tornou-se uma das atividades mais importantes em um SO.

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 essa seleção compõem a chamada política de

escalonamento, que é a base da gerência do processador e da

multiprogramação em um SO.

Page 4: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.1 Introdução

O escalonamento de processos (ou agendador de tarefas)

computacionais é uma atividade organizacional feita pelo escalonador

(scheduler) da CPU ou de um Sistema Distribuído, possibilitando executar os

processos mais viáveis e concorrentes, priorizando determinados tipos de

processos, como os de I/O Bound e os computacionalmente intensivos.

O escalonador de processos de 2 níveis escolhe o processo que tem mais

prioridade e menos tempo e coloca-o na memória principal, ficando os outros

alocados em disco; com essa execução o processador evita ficar ocioso.

Page 5: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.1 Introdução

Estado deEspera

Estado deExecução

Estado dePronto

Esca

lonam

ento

Page 6: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.2 Funções Básicas

A política de escalonamento de um SO tem diversas funções básicas, como:

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;

Maximizar o taxa de transferência do sistema;

Oferecer tempos de resposta razoáveis para usuários interativos.

A rotina do SO que tem como principal função implementar os critérios da

política de escalonamento é denominada escalonador (scheduler).

A rotina conhecida como dispatcher (despachante) é responsável pela

troca de contexto dos processos após o escalonador determinar qual

processo deve fazer uso do processador e o tempo gasto na troca é

denominado latência do dispatcher.

Page 7: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.3 Critérios de Escalonamento

Utilização do Processador: é desejável que o processador permaneça a

maior parte do tempo ocupado.

Throughput (Taxa de Transferência): representa o número de

processos executados em um determinado instante de tempo.

Tempo de Processador / Tempo de UCP: é o tempo que um processo

leva no estado de execução durante o seu processamento.

Tempo de Espera: é o tempo total que um processo permanece na fila

de pronto durante seu processamento, aguardando para ser executado.

Tempo de Turnaround (Tempo de Retorno): é o tempo que um

processo leva desde a sua criação até seu término.

Page 8: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.3 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.

De maneira geral, qualquer política de escalonamento busca otimizar a

utilização do processador e o throughput, enquanto tenta diminuir os tempos

de turnaround, espera e resposta.

Apesar disso, as funções que uma política de escalonamento deve possuir

são muitas vezes conflitantes.

Dependendo do tipo do sistema operacional, um critério pode ter maior

importância do que outros.

Page 9: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.4 Escalonamentos Não-Preemptivos e Preemptivos

As políticas de escalonamento podem ser classificadas segundo a

possibilidade de o sistema operacional interromper o processo em execução

e substituí-lo por um outro (preempção).

Escalonamento não-preemptivo: quando um processo está em execução

nenhum evento externo pode ocasionar a perda do uso do processador.

Escalonamento preemptivo: o sistema operacional pode interromper um

processo em execução e passá-lo para o estado de pronto, com o objetivo

de alocar outro processo na UCP com prioridade maior do que o anterior.

Atualmente, a maioria dos SOs implementa políticas de escalonamento

preemptivas.

Page 10: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.5 Escalonamento First-In-First-Out (FIFO scheduling,

Primeiro a entrar, primeiro a sair)

Também conhecido como first-come-first-served (FCFS scheduling), ou seja,

o primeiro a chegar é o primeiro a ser servido.

UCP

Estado deCriação

Estado deEspera

Fila dos processos no estado de Pronto

Estado deTérmino

Page 11: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.5 Escalonamento First-In-First-Out (FIFO scheduling)

Processo A

Processo B

Processo C

10 14 17

Processo A

Processo B

Processo C

4 7 17u.t.

u.t.

ProcessoTempo de

processador(u.t.)

A

B

C

10

4

3

Page 12: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.5 Escalonamento First-In-First-Out (FIFO scheduling)

Apesar de simples, o escalonamento FIFO apresenta algumas deficiências:

Impossibilidade de prever-se quando um processo terá a sua execução

iniciada, já que isso varia em função do tempo de execução dos demais

processos na fila de pronto;

Processos CPU-bound levam vantagem no uso do processador sobre

processos I/O-bound.

O escalonamento FIFO é do tipo não-preemptivo e foi inicialmente

implementado em sistemas monoprogramáveis com processamento batch.

Atualmente, sistemas de tempo compartilhado utilizam FIFO com variações.

Page 13: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.6 Escalonamento Shortest-Job-First (SJF scheduling,

Processo mais curto primeiro)

Também conhecido como shortest-process-next (SPN scheduling), ou seja,

O mais curto processo é o próximo.

Processo A

Processo B

Processo C

3 7 17 u.t.

Page 14: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.6 Escalonamento Shortest-Job-First (SJF scheduling)

Esta implementação foi utilizada nos primeiros sistemas operacionais com

processamento exclusivamente batch.

Uma maneira de implementar o escalonamento SJF em sistemas interativos

foi considerar o comportamento do processo neste ambiente.

Um problema existente nesta implementação é não ser possível ao SO saber

quanto tempo um processo irá permanecer utilizando a UCP na próxima vez

em que for escalonado.

Na sua concepção inicial, o escalonamento SJF é não-preemptivo.

Page 15: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.6 Escalonamento Shortest-Job-First (SJF scheduling)

Vantagem sobre o FIFO: redução do tempo médio de turnaround dos

processos, porém no SJF é possível haver starvation para processos com

tempo de processador muito longo ou do tipo CPU-bound.

Uma implementação do escalonamento SJF com preempção é conhecida

como escalonamento shortest-remaining-time (SRT scheduling), que é o

tempo mais curto remanescente.

4.7 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.

Page 16: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.8 Escalonamento Circular

O escalonamento circular (round robin scheduling) é um escalonamento do

tipo preemptivo, projetado especialmente para sistemas de tempo

compartilhado.

Preempção por tempo

UCP

Estado deCriação

Estado deEspera

Fila dos processos no estado de Pronto

Estado deTérmino

Page 17: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.8 Escalonamento Circular

Processo A

Processo B

Processo C

2 4 17 u.t.6 8 10 11

Page 18: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.8 Escalonamento Circular

A principal vantagem do escalonamento circular é não permitir que um

processo monopolize a UCP, sendo o tempo máximo alocado continuamente

igual à fatia de tempo definida no sistema.

Um problema presente nesta política é que processos CPU-bound são

beneficiados no uso do processador em relação aos processos I/O-bound, o

que provoca um balanceamento desigual no uso do processador.

Um refinamento do escalonamento circular, que busca reduzir esse

problema, é conhecido como escalonamento circular virtual.

Page 19: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.8 Escalonamento Circular

Preempção por tempo

UCP

Estado deCriação

Fila dos processos no estado de Pronto

Estado deTérmino

Estado deEspera

Fila auxiliar

Page 20: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.9 Escalonamento por Prioridades

É um escalonamento do tipo preemptivo realizado com base em um valor

associado a cada processo denominado prioridade de execução.

A perda do uso do processador só ocorrerá no caso de uma mudança

voluntária para o estado de espera ou quando um processo de prioridade

maior passa para o estado de pronto (preempção por prioridade).

A rotina de escalonamento deve reavaliar as prioridades dos processos no

estado de pronto, para verificar se há processos com maior prioridade do que

o processo em execução.

Page 21: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.9 Escalonamento por Prioridades

UCP

Estado deTérmino

Filas dos processos no estado de Pronto

Prioridade P1

Prioridade P2

Prioridade Pn

Estado deCriação

Estado deEspera

Preempção por prioridade

Page 22: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.9 Escalonamento por Prioridades

Processo A

Processo B

Processo C

3 13 17 u.t.

ProcessoTempo de

processador(u.t.)

A

B

C

10

4

3

Prioridade

2

1

3

Page 23: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.9 Escalonamento por Prioridades

O escalonamento por prioridades também pode ser implementado de uma

maneira não-preemptiva.

A prioridade de execução é uma característica do contexto de software de

um processo, e pode ser classificada como estática e dinâmica.

Um dos principais problemas do escalonamento circular é o starvation

(inanição). É a situação onde um processo nunca consegue executar sua

região crítica e, consequentemente, acessar o recurso compartilhado. Este

problema ocorre quando dois ou mais processos esperam por um recurso

alocado.

Page 24: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.9 Escalonamento por Prioridades

Uma solução para esse problema é a técnica de aging (envelhecimento).

O aging ocorre quando a prioridade de um processo vai se alterando com o

"tempo de vida" do mesmo, controlando o starvation), que muda

momentaneamente a prioridade de um processo que não é executado há

muito tempo e joga sua prioridade para a mais alta possível para que ele seja

atendido, logo após as prioridades voltam ao normal.

O escalonamento por prioridades possibilita diferenciar os processos

segundo critérios de importância.

Page 25: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.10 Escalonamento Circular com Prioridades

Implementa o conceito de fatia de tempo e de prioridade de execução

associada a cada processo.

Um processo permanece no estado de execução até que termine seu

processamento, voluntariamente passe para o estado de espera ou sofra

uma preempção por tempo ou prioridade.

A vantagem deste tipo de escalonamento é permitir o melhor balanceamento

no uso do processador em sistemas de tempo compartilhado.

Possui duas variações: circular com prioridades estáticas e circular com

prioridades dinâmicas.

Page 26: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.10 Escalonamento Circular com Prioridades

UCP

Estado deTérmino

Fila dos processos no estado de Pronto

Prioridade P1

Prioridade P2

Prioridade Pn

Estado deCriação

Estado deEspera

Preempção por tempo ou prioridade

Page 27: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.11 Escalonamento por Múltiplas Filas

Neste tipo de escalonamento, os processos são associados às filas em

função de características próprias, como importância para a aplicação, tipo

de processamento ou área de memória necessária.

A principal vantagem de múltiplas filas é a possibilidade da convivência de

mecanismos de escalonamento distintos em um mesmo sistema operacional.

Além disso, neste mecanismo o processo não possui prioridade, ficando

essa característica associada à fila. O processo sofre preempção caso um

outro processo entre em uma fila de maior prioridade.

Desvantagem: no caso de um processo alterar seu comportamento no

decorrer do tempo, não poderá ser redirecionado para outra fila.

Page 28: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.11 Escalonamento por Múltiplas Filas

UCP

Fila de processos do sistema

Fila de processos interativos

Fila de processos batch

Maiorprioridade

Menorprioridade

Page 29: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.12 Escalonamento por Múltiplas Filas com Realimentação

Neste tipo de escalonamento, os processos podem trocar de filas durante o

seu processamento.

Vantagem: permitir ao SO identificar dinamicamente o comportamento de

cada processo, direcionando-o para filas com prioridade de execução e

mecanismo de escalonamento mais adequados.

O escalonamento de um processo em uma fila ocorre apenas quando todas

as outras filas de prioridades mais altas estiverem vazias.

Problemas: complexidade de implementação; mudança de comportamento

de um processo CPU-bound para I/O-bound pode comprometer seu tempo

de resposta.

Page 30: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.12 Escalonamento por Múltiplas Filas com Realimentação

UCP

Fila 1 (FIFO Adaptado)

Preempção por tempo

Fila 2 (FIFO Adaptado)

Preempção por tempo

Fila 3 (FIFO Adaptado)

Preempção por tempo

Fila n (Circular)

Preempção por tempo

Men

or

Pri

ori

da

de

Maio

rPri

ori

dade

Maio

r fa

tia

de t

em

po

Men

or

fatia

de tem

po

Page 31: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.13 Política de Escalonamento em Sistemas de Tempo

Compartilhado

Em geral, sistemas de tempo compartilhado caracterizam-se pelo

processamento interativo, no qual os usuários interagem com as aplicações

exigindo tempos de respostas baixos.

A escolha de uma política de escalonamento para atingir esse propósito deve

levar em consideração o compartilhamento dos recursos de forma equitativa

para possibilitar o uso balanceado da UCP entre os processos.

Atualmente, a maioria dos sistemas operacionais de tempo compartilhado

utiliza o escalonamento circular com prioridades dinâmicas.

Page 32: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.13 Política de Escalonamento em Sistemas de Tempo

Compartilhado

Exemplo: escalonamento FIFO.

Processo A

Processo B

u.t.277

E/S

de A

11

E/S

de B

19

E/S

de A

21

E/S

de B

ProcessoTempo de

processador(u.t.)

A

B

21

6

Característica

CPU-bound

I/O-bound

Page 33: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.13 Política de Escalonamento em Sistemas de Tempo

Compartilhado

Exemplo: escalonamento circular com fatia de tempo igual a 5 u.t.

ProcessoTempo de

processador(u.t.)

A

B

15

10

Característica

CPU-bound

I/O-bound

Processo A

Processo B

u.t.

Pre

em

pçã

o p

or

tem

po d

e A

5

E/S

de B

9E/S

de A

11

E/S

de B

13

Pre

em

pçã

o p

or

tem

po d

e A

18

E/S

de B

20

E/S

de A

23 25

E/S

de B

27

UC

P liv

re

Page 34: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.13 Política de Escalonamento em Sistemas de Tempo

Compartilhado

Exemplo: escalonamento circular com prioridades.

Processo A

Processo B

u.t.

E/S d

e B

4

Pre

em

pçã

o p

or

pri

ori

da

de d

e A

6

E/S d

e B

8Pre

em

pçã

o p

or

pri

ori

da

de d

e A

12

E/S d

e B

14

E/S

de A

15 17

Pre

em

pçã

o p

or

pri

ori

da

de d

e A

18

E/S d

e B

20

Pre

em

pçã

o p

or

pri

ori

da

de d

e A

24

E/S d

e B

27

UC

P liv

re

ProcessoTempo de

processador(u.t.)

A

B

12

13

Característica

CPU-bound

I/O-bound

Prioridade

Baixa

Alta

Page 35: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.14 Política de Escalonamento em Sistemas de Tempo Real

Algumas aplicações específicas exigem respostas imediatas para a

execução de terminadas tarefas. Nesse caso, a aplicação deve ser

executada em sistemas de tempo real.

O escalonamento em sistemas de tempo real deve levar em consideração a

importância relativa de cada tarefa na aplicação.

Em função disso, o escalonamento por prioridades é o mais adequado para

sistemas de tempo real. Não deve existir o conceito de fatia de tempo, e a

prioridade de cada processo deve ser estática.

Page 36: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.15 Deadlock

Em alguns casos pode ocorrer a seguinte situação: um processo solicita um

determinado recurso e este não está disponível no momento. Quando isso

acontece o processo entra para o estado de espera (bloqueado). Em

algumas situações é possível que estes processos nunca mais mudem de

estado, pois os recursos que eles necessitam podem estar sendo mantidos

por outros processos em espera. Essa situação é chamada de deadlock ou

impasses.

Deadlock = Impasse

Um deadlock é uma situação em que 2 ou mais processos ficam bloqueados

indefinidamente.

Pode ser uma Race Condition (Condição de Corrida)

Page 37: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.15 Deadlock

Condições Necessárias:

Para que um situação de deadlock seja criada, as seguintes condições

devem acontecer simultaneamente:

1. Exclusão mútua: apenas um processo por vez pode usar o recurso.

2. Monopolização de recursos: acontece no exemplo da escada quando

duas pessoas se cruzam em um lance e elas se recusam a retroceder.

3. Não-preempção: os recursos só podem ser liberados voluntariamente

pelo processo que o mantém.

4. Espera circular: dado um conjunto de processos {P1, P2, ..., Pn} em

espera, P1 está esperando por um recurso mantido por P2; P2 está

esperando um recurso mantido por P3 e assim sucessivamente, até que

Pn esteja esperando por um recurso alocado por P1.

Page 38: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.15 Deadlock

Condições Necessárias:

Um conjunto de processo está em deadlock se:

Cada processo do conjunto está bloqueado;

Se o bloqueio está ocorrendo pelo aguarde de um evento;

Se este evento somente pode ser disparado por outro processo;

Se este outro processo também está bloqueado;

Tipicamente envolve processos competindo pelo mesmo recurso.

Page 39: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

Page 40: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

Page 41: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

Page 42: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

Page 43: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

Page 44: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

Page 45: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

Page 46: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.15 Deadlock

Exemplos:

Existem alguns casos de deadlocks que podemos citar:

1. Requisições de arquivos: se for permitido aos programas requisitar e

bloquear durante sua execução. P1 requisita e obtém arquivo F2; P2

requisita e obtém arquivo F1; P1 requisita F1 mas está bloqueado; P2

requisita F2 mas está bloqueado.

2. Alocação de dispositivos dedicados: utilização de um grupo de

dispositivos dedicados pode gerar deadlocks. Exemplo: um programa

que precise de 2 fitas magnéticas para copiar dados de uma para outra.

3. Alocação de múltiplos dispositivos: vários processos requisitam e

bloqueiam diferentes dispositivos dedicados.

Page 47: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.15 Deadlock

Método para tratar Deadlocks:

Em geral, podemos utilizar 3 métodos para tratar o problema de deadlocks:

1. Podemos usar um protocolo para garantir que o sistema nunca entre em

estado de deadlock: PREVENÇÃO (o Sistema operacional deve eliminar

uma das 4 condições para que o deadlock ocorra)

2. Podemos permitir que o sistema entre em deadlock e se recupere:

DETECÇÃO e RECUPERAÇÃO.

3. Podemos ignorar o problema (Algoritmo do avestruz). Esta opção é

utilizada pela maioria dos sistemas operacionais, incluindo o UNIX.

Page 48: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.15 Deadlock

Estratégias:

Ignora o problema;

Detecção e Recuperação;

Prevenção.

Qual o método mais usado?

Fingir que o problema não existe! Usado na maioria dos sistemas, inclusive

Unix.

Page 49: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.15 Deadlock

Ignora o problema (Algoritmo do Avestruz)

Page 50: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.15 Deadlock

Detecção e Recuperação

Page 51: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.15 Deadlock

Page 52: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.15 Deadlock

Page 53: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.15 Deadlock

Page 54: Sistemas de Informaçãobrunotoledoifmg.com/SO/Aulas/Aula 6 - Gerenciamento de Processo… · Capítulo 4 - Gerência do Processador 4.3 Critérios de Escalonamento Utilização do

Capítulo 4 - Gerência

do Processador

4.15 Deadlock

Prevenção de Deadlock