Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr....

46
Sistemas Operacionais Processos - Parte 1 Prof. Dr. F´ abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Transcript of Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr....

Page 1: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

SistemasOperacionais

Processos - Parte 1

Prof. Dr. Fabio Rodrigues de la Rocha

(Processos - Parte 1) 1 / 46

Page 2: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Um aspecto importante no estudo sobre sistemasoperacionais e o gerenciamento de processos. Mas afinal,o que e um processo ?Quando escrevemos um programa em alguma linguagem,por exemplo C, devemos compila-lo. Ao compilar umprograma em C gera-se um conjunto de instrucoes emuma linguagem (microinstrucoes) que o computadorconsegue entender.

(Processos - Parte 1) 2 / 46

Page 3: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Quando o processador passa a executar o programa,temos um processo executando.Assim sendo, para todos os efeitos um processo e umprograma em execucao. A este conceito vamos adicionaro seguinte. um processo e um programa em execucao,considerando-se todos os valores dos seus registradores ede suas variaveis.

(Processos - Parte 1) 3 / 46

Page 4: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Esse conjunto de instrucoes e um programa decomputador. O programa de computador e estatico, ouseja composto por um conjunto de instrucoes como noexemplo abaixo:

�1 y=0;2 f o r ( x=0;x<10; x++)3 {4 y=y+20;5 }� �

�1 CARREGUE #10, A2 CARREGUE #0, B3 REPETE :4 ADD B,#205 DECREMENTA A6 CMP A,#07 SALTA DIFERENTE REPETE8 FIM :� �

(Processos - Parte 1) 4 / 46

Page 5: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Monoprogramacao

Na monoprogramacao temos apenas um processo namemoria do computador.

Acesso a disco

CPU

DISCO

tempo (s)

de I/O

I/O

fim de

Dis

posi

tivos

Executando ExecutandoInicio de operacao Programa usuarioPrograma usuario

�1 MOVE A,B

2 MOVE C,D

3 LEIA DISCO

4 ESPERA :

5 NOP

6 .

7 .

8 NOP

9 ACESSE INFORMACAO� �(Processos - Parte 1) 5 / 46

Page 6: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Multiprogramacao

Se existirem varios processos, enquanto um processoespera pelo termino da operacao de leitura, outroprocesso pode executar.

(Processos - Parte 1) 6 / 46

Page 7: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Multiprogramacao

(Processos - Parte 1) 7 / 46

Page 8: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Como e possıvel amultiprogramacao ?

Interrupcoes;Timer;

(Processos - Parte 1) 8 / 46

Page 9: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

.

.

.

.

PROCESSADOR

Linhas de dados

PC

A

SP

C

B

255

Flags

200

255

254

253

252

Salte para 1

Salte para 9

Salte para 13

Salte para 16

Processo B

Processo A

Processo C

D7

D0

A7

A0

Linhas de endereco

Operacao

Vetores de

Interrupcao

(Processos - Parte 1) 9 / 46

Page 10: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Escalonador

A B C

Tempo

Word Excel Paint

Idealizacao

Execucao real

(Processos - Parte 1) 10 / 46

Page 11: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

(Processos - Parte 1) 11 / 46

Page 12: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

(Processos - Parte 1) 12 / 46

Page 13: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

(Processos - Parte 1) 13 / 46

Page 14: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Resumo:

Diversos processos podem existir na memoria docomputador, mesmo com apenas um processador;

Pode-se executar um pouco um processo A e depoispassar a executar o processo B e assim por diante;

Realizando-se essa troca entre processos(chaveamento de processos) rapidamente da ailusao de varios processos executandosimultaneamente.

Processos nao executam sobre controle direto do SO.O sistema operacional (escalonador) so assumequando ocorre uma interrupcao ou quando umprocesso faz uma chamada de sistema (por exemploao requisitar uma leitura do disco).

(Processos - Parte 1) 14 / 46

Page 15: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Estado dos processos

Na multiprogramacao existem diversos processos namemoria e algumas questoes podem surgir:

O que acontece quando um processo faz umasolicitacao de chamada de sistema ?

O que ocorre quando o SO escolhe que um processodeve executar no lugar de outro ?

(Processos - Parte 1) 15 / 46

Page 16: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Estado dos processos

(Processos - Parte 1) 16 / 46

Page 17: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Comunicacao entre processos

Ate agora, assumimos que os processos sao independentesentre si. Isto e, eles nao se comunicam.Onde comunicacao pode ser:

Quando dois processos acessam a mesma posicao dememoria (memoria compartilhada);

Quando dois processos acessam o mesmo dispositivo.

(Processos - Parte 1) 17 / 46

Page 18: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Comunicacao entre processos

O que ocorre e que muitas vezes os processoscompartilham memoria ou um dispositivo. Isso pode fazercom que o resultado deles dependa da ordem em que oescalonador decidiu que eles deveriam executar.

(Processos - Parte 1) 18 / 46

Page 19: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Comunicacao entre processos

(Processos - Parte 1) 19 / 46

Page 20: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Comunicacao entre processos

(Processos - Parte 1) 20 / 46

Page 21: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Comunicacao entre processos

(Processos - Parte 1) 21 / 46

Page 22: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Comunicacao entre processos

(Processos - Parte 1) 22 / 46

Page 23: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Comunicacao entre processos

(Processos - Parte 1) 23 / 46

Page 24: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Comunicacao entre processos

(Processos - Parte 1) 24 / 46

Page 25: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Comunicacao entre processos

(Processos - Parte 1) 25 / 46

Page 26: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Comunicacao entre processos

(Processos - Parte 1) 26 / 46

Page 27: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Comunicacao entre processos

(Processos - Parte 1) 27 / 46

Page 28: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Comunicacao entre processos

(Processos - Parte 1) 28 / 46

Page 29: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Comunicacao entre processos

(Processos - Parte 1) 29 / 46

Page 30: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Comunicacao entre processos

No exemplo anterior dois processos (A e B)acessaram a variavel In;

A variavel In e chamada variavel compartilhada;

Como o acesso foi feito sem nenhum cuidado, aexecucao do processo A nao teve o resultadoesperado.

(Processos - Parte 1) 30 / 46

Page 31: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Comunicacao entre processos

Condicao de disputaDefine-se como Condicao de disputa a situacao ondedois ou mais processos estao acessando dadoscompartilhados (variavel In no exemplo) e o resultadofinal do processamento depende de quem roda quando.

(Processos - Parte 1) 31 / 46

Page 32: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Comunicacao entre processos

Regiao crıticaDefine-se como Regiao crıtica a parte do codigo de umprocesso cuja execucao pode levar a uma condicao dedisputa. No exemplo seria a parte do codigo quecorresponde as linhas de codigo 2 e 4.

(Processos - Parte 1) 32 / 46

Page 33: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Comunicacao entre processos

(Processos - Parte 1) 33 / 46

Page 34: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Comunicacao entre processos

Processos que compartilham dados devem obedeceralgumas regras para que sua execucao seja um sucesso.

Dois ou mais processos nao podem estarsimultaneamente dentro de suas regioes crıticas;

Nao podemos assumir nada sobre a velocidade emque cada um dos processos executa suas instrucoes;

(Processos - Parte 1) 34 / 46

Page 35: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Comunicacao entre processos

Nenhum processo que esta executando fora de suaregiao crıtica pode bloquear outro processo;

Nenhum processo pode ser obrigado a esperarindefinidamente para entrar na sua regiao crıtica.

(Processos - Parte 1) 35 / 46

Page 36: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Comunicacao entre processos

Existem algumas solucoes para lidar com o problema dasregioes crıticas:1-Desabilitar interrupcoes;Quais os problemas ?

(Processos - Parte 1) 36 / 46

Page 37: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Comunicacao entre processos

�1 Nome arquivo=S e l e c i o n a a r q u i v o p a r a imp r im i r ( ) ;2 DESABILITA INTERRUPCOES ( )3 Pos i cao=L e i a v a l o r p o s i c a o l i v r e ( )4 Armazena arqu ivo ( Pos icao , nome arqu ivo )5 A t u a l i z a p o s i c a o l i v r e ( Pos i cao+1)6 HABILITA INTERRUPCOES ( ) ;7 Most ra mensagem para usuar io ( )� �

(Processos - Parte 1) 37 / 46

Page 38: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Comunicacao entre processos

Existem algumas solucoes para lidar com o problema dasregioes crıticas:2-Variaveis de travamento;

(Processos - Parte 1) 38 / 46

Page 39: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Comunicacao entre processos

�1 Nome arquivo=S e l e c i o n a a r q u i v o p a r a imp r im i r ( ) ;23 Whi le ( v a r i a v e l t r a v amen t o==1) ;45 // Proce s so consegue a c e s s o a r e g i a o c r i t i c a6 v a r i a v e l t r a v amen t o =1;7 P o s i o=L e i a v a l o r p o s i c a o l i v r e ( )8 Armazena arqu ivo ( Pos icao , nome arqu ivo )9 A t u a l i z a p o s i c a o l i v r e ( Pos i cao+1)10 v a r i a v e l t r a v amen t o = 0 ;11 Most ra mensagem para usuar io ( )� �

(Processos - Parte 1) 39 / 46

Page 40: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Comunicacao entre processos

Existem algumas solucoes para lidar com o problema dasregioes crıticas:3-Estrita alternancia;

(Processos - Parte 1) 40 / 46

Page 41: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Comunicacao entre processos

�1 //Codigo do p r o c e s s o A2 whi le (VEZ== ’B ’ ) ;3 // Proce s so A en t r a r e g i a o

c r i t i c a45 .6 .7 .8 .9 // s a i da r e g i a o c r i t i c a10 VEZ= ’B ’ ;� �

�1 //Codigo do p r o c e s s o B2 whi le (VEZ== ’A ’ ) ;3 // Proce s so B en t r a r e g i a o

c r i t i c a45 .6 .7 .8 .9 // s a i da r e g i a o c r i t i c a10 VEZ= ’A ’ ;� �

(Processos - Parte 1) 41 / 46

Page 42: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Comunicacao entre processos

Existem algumas solucoes para lidar com o problema dasregioes crıticas:4-Instrucao TSL;

(Processos - Parte 1) 42 / 46

Page 43: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Comunicacao entre processos

TSL (Test and Set Locked)A instrucao TSL e uma instrucao atomica, ou seja ela ecomposta internamente por algumas acoes mas estasacoes sao executadas completamente como se fossemapenas uma. Ou seja, nao existe como o escalonador doSO executar apenas parte da instrucao e dar oprocessador para outro processo executar.

TSL Registrador, valor =

{Registrador ← valor

valor ← 1

(Processos - Parte 1) 43 / 46

Page 44: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Comunicacao entre processos

�// v a l o r e s t a

compa r t i l h ada2 // e n t r e todos os

p r o c e s s o sMOV va l o r ,#0

4 Ent ra Reg i ao :TSL Reg i s t r a do r , v a l o r

6 CMP Reg i s t r a do r ,#0SALTA NZERO Ent ra Reg i ao

8 RETS a i R e g i a o C r i t i c a :

10 MOV f l a g , #0RET� �

�1 //Codigo do p r o c e s s o A

CALL Ent ra Reg i ao3 // Executa o cod igo

// den t ro da r e g i a oc r i t i c a

5 CALL S a i R e g i a o C r i t i c a� ��

1 //Codigo do p r o c e s s o BCALL Ent ra Reg i ao

3 // Executa o cod igo// den t ro da r e g i a o

c r i t i c a5 CALL S a i R e g i a o C r i t i c a� �

Tempo

inicializacao das rotinas

Processo A entrou na regiao crıtica

Escalonador Processo B tenta entrar na regiao crıtica(Processos - Parte 1) 44 / 46

Page 45: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Comunicacao entre processos

5-Solucao de Peterson;

(Processos - Parte 1) 45 / 46

Page 46: Sistemas Operacionais - Processos - Parte 1 · Sistemas Operacionais Processos - Parte 1 Prof. Dr. F abio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46

Comunicacao entre processos

(Processos - Parte 1) 46 / 46