21
Sistemas Operacionais Faculdades Network – 3o. Ano de B.S.I.

Sistemas Operacionais Faculdades Network – 3o. Ano de B.S.I

Embed Size (px)

Citation preview

Page 1: Sistemas Operacionais Faculdades Network – 3o. Ano de B.S.I

Sistemas Operacionais

Faculdades Network – 3o. Ano de B.S.I.

Page 2: Sistemas Operacionais Faculdades Network – 3o. Ano de B.S.I

3o. Bimestre• 21 - Comunicação Interprocessos• 22 - Região Crítica e Exclusão Mútua• 23 - Exclusão Mútua com Espera Ociosa• 24 - Semáforos e Monitores• 25 - Escalonamento e Estratégias de escalonamento• 26 - Deadlock• 27 - Trabalho em Sala: Problemas no Gerenciamento

de Processos• 28 - Revisão para a Avaliação bimestral.• 29 - Avaliação Regimental Bimestral• 30 - Correção e entrega das notas

Page 3: Sistemas Operacionais Faculdades Network – 3o. Ano de B.S.I

IPC• A comunicação entre processos, em inglês Inter-

Process Communication (IPC), é o grupo de mecanismos que permite aos processos transferirem informação entre si.

• A execução de um processo pressupõe por parte do S.O., entre outras coisas, a criação de um contexto de execução próprio que, de certa forma, abstrai o processo dos componentes reais do sistema.

• Devido a esta virtualização dos recursos, o processo não tem conhecimento acerca dos outros processos e, como tal, não consegue trocar informação.

Page 4: Sistemas Operacionais Faculdades Network – 3o. Ano de B.S.I

Arq

uite

tura

de

Sist

emas

Ope

raci

onai

s – M

acha

do/M

aia Transmissão de Mensagem

7/6

Processotran sm isso r

Pro cessorecep to r

SEN D REC EIV E

C a n a l d e co m u nica ção

Page 5: Sistemas Operacionais Faculdades Network – 3o. Ano de B.S.I

Arq

uite

tura

de

Sist

emas

Ope

raci

onai

s – M

acha

do/M

aia Comunicação Direta e Indireta

7/7

Processo A Processo B

Processo A Processo B

M a ilb oxou Po rt

Page 6: Sistemas Operacionais Faculdades Network – 3o. Ano de B.S.I

Arq

uite

tura

de

Sist

emas

Ope

raci

onai

s – M

acha

do/M

aia

Sincronização e Comunicação

Comunicação Interprocessos

7/1

Processog ravad o r

Processoleito r

d ado

Sin cro n iza ção

leitu rag ra vaçã o

Bu ff er

Page 7: Sistemas Operacionais Faculdades Network – 3o. Ano de B.S.I

Arq

uite

tura

de

Sist

emas

Ope

raci

onai

s – M

acha

do/M

aia Concorrência em Programas

7/2

Processop rincip a l

Processop rincip a l

Pro cesso 1 Pro cesso 2 Processo n

PARBEGIN Comando_1; Comando_2; . . Comando_n;PAREND

Page 8: Sistemas Operacionais Faculdades Network – 3o. Ano de B.S.I

Região Crítica e Exclusão Mútua

• Exclusão mútua (também conhecida pelo acrônimo mutex para mutual exclusion) é uma técnica usada em programação concorrente para evitar que dois processos ou threads tenham acesso simultaneamente a um recurso compartilhado, acesso esse denominado por Região Crítica.

Page 9: Sistemas Operacionais Faculdades Network – 3o. Ano de B.S.I

Implementação• Um meio simples para exclusão mútua é a utilização de

um semáforo binário, isto é, que só pode assumir dois valores distintos, 0 e 1. O travamento por semáforo deve ser feito antes de utilizar o recurso, e após o uso o recurso deve ser liberado. Enquanto o recurso estiver em uso, qualquer outro processo que o utilize deve esperar a liberação.

• Porém, essa técnica pode causar vários efeitos colaterais, como deadlocks, em que dois processos obtêm o mesmo semáforo e ficam esperando indefinidamente um outro processo liberar o semáforo; e inanição, que é quando o processo nunca dispõe de recursos suficientes para executar plenamente.

Page 10: Sistemas Operacionais Faculdades Network – 3o. Ano de B.S.I

Arq

uite

tura

de

Sist

emas

Ope

raci

onai

s – M

acha

do/M

aia

Utilização do Semáforo Binário na Exclusão Mútua

Exclusão Mútua com Espera Ociosa

7/3

Fila de e sperad e processo s

Pro cesso acessaa reg iã o cr ítica

Processo d eseja en tra rn a reg ião cr ítica

DO W N (S= 0)DO W N (S>0)

U P (S) - p rocesso sa id a região cr ítica

Libe ra processod a fi la de espe ra

Page 11: Sistemas Operacionais Faculdades Network – 3o. Ano de B.S.I

Arq

uite

tura

de

Sist

emas

Ope

raci

onai

s – M

acha

do/M

aia Estrutura do Monitor

7/4

D ecla ra ção deva riá veis g lo ba is

Pro ced im ento s

Fila de entra da

In icia lizaçã od e va r iá veis

Pro c. 1

Proc. 2

Pro c. n

Mon

itor

Page 12: Sistemas Operacionais Faculdades Network – 3o. Ano de B.S.I

Arq

uite

tura

de

Sist

emas

Ope

raci

onai

s – M

acha

do/M

aia Estrutura do Monitor com Variáveis de

Condição

7/5

D ecla ração deva riáveis g lo ba is

Proced im entos

Fila de entra da

In icia lizaçã od e va r iáveis

Proc. 1

Proc. 2

Proc. n

Mon

itor

F ila s de esp era

C on diçã o C 1

C on diçã o C 2

C on diçã o C n

Page 13: Sistemas Operacionais Faculdades Network – 3o. Ano de B.S.I

Algoritmos escalonadoresExistem os algoritmos preemptivos e os não preemptivos. Os

preemptivos são algoritmos que permitem que um processo seja interrompido durante sua execução, quer seja por força de uma interrupção de entrada/saída, quer seja em decorrência da politica de escalonamento adotada e aplicada por parte do escalonador de processos ou simplesmente por força do término da execução do processo.

Após a interrupção deste processo, ocorre o que se chama de troca de contexto, que consiste em salvar o conteúdo dos registradores e a memoria utilizada pelo processo e conceder à outro processo o privilégio de executar na CPU, restaurando assim o contexto deste ultimo processo.

Cabe ressaltar que nos algoritmos não preemptivos, por serem utilizados exclusivamente em sistemas monoprocessados, esse fato não ocorre, sendo cada programa executado até o fim.

Page 14: Sistemas Operacionais Faculdades Network – 3o. Ano de B.S.I

Estratégias de Escalonamento• FIFO (First in, first out) ou FCFS (First come, first served): Onde como seu próprio

nome já diz, o primeiro que chega será o primeiro a ser executado;• SJF (Shortest Job First): Onde o menor processo ganhará a CPU e atrás do mesmo

formar uma fila de processos por ordem crescente de tempo de execução;• SRT (Shortest Remaining Time): Neste algoritmo é escolhido o processo que

possua o menor tempo restante, mesmo que esse processo chegue à metade de uma operação, se o processo novo for menor ele será executado primeiro;

• Algoritmo Loteria: O Sistema Operacional distribui tokens (fichas), numerados entre os processos, para o escalonamento é sorteado um numero aleatório para que o processo ganhe a vez na CPU, processos com mais tokens têm mais chance de receber antes a CPU.

• Escalonamento garantido: Este algoritmo busca cumprir promessas de alocação de CPU o mais preciso possível.

• RR (Round-Robin): Nesse escalonamento o sistema operacional possui um timer, chamado de quantum, onde todos os processos ganham o mesmo valor de quantum para rodarem na CPU. Com exceção do algoritmo RR e escalonamento garantido, todos os outros sofrem do problema de Inanição (starvation).

• Múltiplas Filas: São usadas várias filas de processos prontos para executar, cada processo e colocado em uma fila, e cada fila tem uma política de escalonamento própria e outra entre filas.

Page 15: Sistemas Operacionais Faculdades Network – 3o. Ano de B.S.I

DEADLOCK• Deadlock (interbloqueio, blocagem, impasse), no contexto

do sistemas operacionais (SO), caracteriza uma situação em que ocorre um impasse e dois ou mais processos ficam impedidos de continuar suas execuções, ou seja, ficam bloqueados. Trata-se de um problema bastante estudado no contexto dos Sistemas Operacionais, assim como em outras disciplinas, como banco de dados, pois é inerente à própria natureza desses sistemas.

• O deadlock ocorre com um conjunto de processos e recursos não-preemptíveis, onde um ou mais processos desse conjunto está aguardando a liberação de um recurso por um outro processo que, por sua vez, aguarda a liberação de outro recurso alocado ou dependente do primeiro processo.

Page 16: Sistemas Operacionais Faculdades Network – 3o. Ano de B.S.I

Condições• Condição de não-preempção: recursos já alocados a

processos não podem ser tomados a força. Eles precisam ser liberados explicitamente pelo processo que detém a sua posse;

• Condição de exclusão mútua: cada recurso ou está alocado a exatamente um processo ou está disponível;

• Condição de posse-e-espera: cada processo pode solicitar um recurso, ter esse recurso alocado para si e ficar bloqueado esperando por um outro recurso;

• Condição de espera circular: deve existir uma cadeia circular de dois ou mais processos, cada um dos quais esperando por um recurso que está com o próximo membro da cadeia.

Page 17: Sistemas Operacionais Faculdades Network – 3o. Ano de B.S.I

Arq

uite

tura

de

Sist

emas

Ope

raci

onai

s – M

acha

do/M

aia Deadlock – Espera Circular

7/8

Recu rso 2 Recu rso 1

Processo A

Pro cesso B

Pro cesso Aso licita oRecu rso 2

Recu rso 1a lo ca do aoProcesso A

Recu rso 2a lo ca do a oProcesso B

Pro cesso Bso licita oRecu rso 1

Page 18: Sistemas Operacionais Faculdades Network – 3o. Ano de B.S.I

Tratamento de Deadlock• As situações de deadlock podem ser tratadas ou não em

um sistema, e cabe aos desenvolvedores avaliar o custo/benefício que essas implementações podem trazer. Normalmente, as estratégias usadas para detectar e tratar as situações de deadlocks geram grande sobrecarga, podendo até causar um dano maior que a própria ocorrência do deadlock, sendo, às vezes, melhor ignorar a situação.

• Existem três estratégias para tratamento de deadlocks:– Ignorar a situação;– Detectar o deadlock e recuperar o sistema; e– Evitar o deadlock;

Page 19: Sistemas Operacionais Faculdades Network – 3o. Ano de B.S.I

Algoritmo do Avestruz• Em ciência da computação, o algoritmo do avestruz é uma

estratégia de ignorar problemas potenciais com base no fato de que eles podem ser extremamente raros — "enfie a cabeça na areia e finja que não há nenhum problema". Isso pressupõe é mais rentável permitir que o problema ocorra do que tentar a sua prevenção.

• Esta abordagem pode ser usada no tratamento de impasses (deadlocks) em programação concorrente se os impasses são considerados muito raros, e se o custo de detecção ou prevenção é alto.

• É um dos métodos de lidar com os impasses. Outros métodos são: evasão (algoritmo do banqueiro), a prevenção, detecção e recuperação.

Page 20: Sistemas Operacionais Faculdades Network – 3o. Ano de B.S.I

PROBLEMAS NO GERENCIAMENTO DE PROCESSOS

Próxima Aula: Trabalho em sala em duplas!

Page 21: Sistemas Operacionais Faculdades Network – 3o. Ano de B.S.I