Você está na página 1de 2

Revisão de Sistemas

Multiprogramação Operacionais
Conceitos
 Definição Processo:
 Um programa em execução, ou ambiente
onde se executa um programa
Contador
de Programa
void main (void) (PC) Segmento Código ID Processo
{ Contador de

Fabio Lubacheski int a;


if
.
Programa
Registradores
Nome do Processo
fabio.aglubacheski@sp.senac.br .
.
Segmento Dados Limite de Memória
Prioridade
. .
. .
. .
return Segmento Pilha .
} .

Programa BCP (Bloco de


Executável Controle de
1
Processo)
2

Revisão de Sistemas Revisão de Sistemas


Operacionais Operacionais
 O SO materializa o Processo através de
uma estrutura de dados denominada Selecionado pelo

BCP (Bloco de Controle de Processo).


Escalonador

admitido finalizado
Com essa estrutura o SO mantém as novo pronto
Em
execução
terminado
informações sobre o processo
preemptado pelo
escalonador

Pronto

O Processo no SO não é executado o novamente Aguardando E/S



tempo todo pelo processador, ele passa bloqueado
por uma série de estados:

3 4

Revisão de Sistemas Revisão de Sistemas


Operacionais Operacionais
 novo: processo é criado.  Os computadores e sistemas operacionais modernos
suportam a multiprogramação, ou seja, múltiplas
 pronto: O processo está na fila de prontos tarefas executando simultaneamente (paralelamente).
aguardando executar. O SO (Escalonador) Se o computador tem mais de um processador o SO
determina quem irá executar dentre os divide as tarefas entre os processadores. Basicamente
existem duas formas de alcançar a multiprogramação
que estão na fila de pronto. com a arquitetura de memória compartilhada.
 em execução: processado pela CPU.
 bloqueado: aguardando algum evento  Multiprocessos
externo (Signal) ou algum recurso (E/S).  Multithreads

 terminado:processo finalizado e seus


recursos liberados. 5 6

1
Multiprocessos Multiprocessos
P1
 Toda vez é que um processo é criado o SO // globais

gasta tempo alocando os recursos do novo int a;


void main(void)

processo (Espaço de endereçamento,


{
.

contexto de hardware, contexto de software,


.
. P2
fork();
registradores, ...) }
a = 10;
// globais
int a;
void main(void)
 No termino do processo o SO gasta tempo {
.

desalocando os recursos do processo. .


.
P2 começa a executar fork();
a partir desta linha a = 10;
}

Memória compartilhada entre os dois


7 processos 8

Multithreads Multithreads
P1
 Na tentativa de diminuir o tempo gasto na // global entre as threads
criação/eliminição de processos, bem como int a;
void main(void)

economizar recursos do sistema foi introduzido o {


new thread(funcaoA);

conceito de Threads (linha). new thread(funcaoB)


new thread(funcaoC);
a = 10;
 Em um ambiente multithreads não é necessário .
.
utilizar vários processos para se implementar }

aplicações paralelas. funcaoA funcaoB funcaoC


. . .
 Cada Thread possui seu próprio contexto de hardware .
.
.
.
.
.

(registradores), porém compartilha o mesmo espaço a=a+1 a=a+2 a=a-10

de endereçamento com as demais Threads do


processo. As threads de um processo passam pelos
mesmos estados que um processo.

9 10

Comunicação na
multiprogramação
 Um diferença importante na implementação
da multiprogramação com processos e
threads é o espaço de endereçamento.
Enquanto que em multiprocessos cada
processo tem seu espaço independente e
Fim
protegidos, as Threads compartilham o
mesmo espaço de endereçamento .

11 12