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

Post on 01-Oct-2020

4 views 0 download

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

SistemasOperacionais

Processos - Parte 1

Prof. Dr. Fabio 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

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

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

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

Multiprogramacao

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

(Processos - Parte 1) 6 / 46

Multiprogramacao

(Processos - Parte 1) 7 / 46

Como e possıvel amultiprogramacao ?

Interrupcoes;Timer;

(Processos - Parte 1) 8 / 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

Escalonador

A B C

Tempo

Word Excel Paint

Idealizacao

Execucao real

(Processos - Parte 1) 10 / 46

(Processos - Parte 1) 11 / 46

(Processos - Parte 1) 12 / 46

(Processos - Parte 1) 13 / 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

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

Estado dos processos

(Processos - Parte 1) 16 / 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

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

Comunicacao entre processos

(Processos - Parte 1) 19 / 46

Comunicacao entre processos

(Processos - Parte 1) 20 / 46

Comunicacao entre processos

(Processos - Parte 1) 21 / 46

Comunicacao entre processos

(Processos - Parte 1) 22 / 46

Comunicacao entre processos

(Processos - Parte 1) 23 / 46

Comunicacao entre processos

(Processos - Parte 1) 24 / 46

Comunicacao entre processos

(Processos - Parte 1) 25 / 46

Comunicacao entre processos

(Processos - Parte 1) 26 / 46

Comunicacao entre processos

(Processos - Parte 1) 27 / 46

Comunicacao entre processos

(Processos - Parte 1) 28 / 46

Comunicacao entre processos

(Processos - Parte 1) 29 / 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

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

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

Comunicacao entre processos

(Processos - Parte 1) 33 / 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

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

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

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

Comunicacao entre processos

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

(Processos - Parte 1) 38 / 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

Comunicacao entre processos

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

(Processos - Parte 1) 40 / 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

Comunicacao entre processos

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

(Processos - Parte 1) 42 / 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

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

Comunicacao entre processos

5-Solucao de Peterson;

(Processos - Parte 1) 45 / 46

Comunicacao entre processos

(Processos - Parte 1) 46 / 46