Você está na página 1de 16

Sistemas Operacionais: Processos

Jones Albuquerque
DFM-UFRPE

2004.
História de SOs

Fase 0: não existem SOs (Sistemas Operacionais)

programação através de chaves em um pai-


nel, computadores como experiências

conjunto de cartões manualmente carrega-


dos para executar um programa

usuário presente todo o tempo: toda ativi-


dade é seqüencial, nenhuma sobreposição
de computação

PROBLEMA: muita espera

2
História de SOs

Fase 1: Multiprogramação

pessoas são baratas

vários programas carregados simultaneamente


na memória

utilização mais eficiente do computador:


sobreposição

complicados: escalonamento de atividades


e de CPU, proteção e memória

PROBLEMA: SOs complicados e usuários ainda


esperam pelo computador

3
História de SOs

Fase 2: Time sharing

computadores são rápidos, pessoas são len-


tas, ambos são caros

usuários acessam a mesma CPU simultane-


amente diretamente conectados a terminais
on-line

dados precisam ser acessados continuamente:


sistema de arquivos

base dos SOs modernos

PROBLEMA: falta de disciplina nos progra-


madores!

4
História de SOs

Fase 3: Computadores pessoais dark ages!

computadores são baratos, pessoas são ca-


ras: dar um computador a cada pessoa (SUN-
Stanford University Network; Apple II, IBM
PC, MacIntosh)

SOs simplificados

DOS/Windows: proteção eliminada

sistema normalmente tem um só usuário

PROBLEMA: pessoas ainda continuam es-


perando pelo computador, virús e hackers!

5
História de SOs

Fase 4: Sistemas paralelos e distribuı́dos

WWW

menos de um usuário por sistema!

multiprocessadores

acesso à rede: impressoras, arquivos, ...

você sabe que está usando um sistema dis-


tribuı́do quando:
não consegue trabalhar porque um compu-
tador que você não está usando e do qual
nunca ouviu falar está fora do ar

PROBLEMA: pessoas esperam pela rede! +


virús e hackers!

6
Sistemas Operacionais

Gerência de processos

Comunicação entre processos

Gerência de memória

Sistema de arquivos

Sistema de I/O

Sistema de segurança/proteção

7
Gerência de Processos

Permite a execução simultânea de vários progra-


mas

Possibilita a ilusão de que cada programa executa


sozinho

Processo consiste de todo o ambiente de execução


de um programa: registradores, memória, etc...

Escalonador é o programa que a cada instante de-


termina qual processo estará executando: pro-
grama mais importante do SO!

Processos do usuário e do SO se comunicam e se


sincronizam

8
Processos

Um processo é um fluxo de controle seqüencial e


seu espaço de endereçamento

Informalmente, processo é a execução de um pro-


grama junto com os dados usados por ele

Execução seqüencial

Espaço de endereçamento: registradores, memória


e arquivos

9
Programas X Processos

Programa é código. Processo é execução

O mesmo programa executado por dois usuários


diferentes gera dois processos

Um programa pode gerar/chamar vários proces-


sos

10
Threads

Um processo possui duas partes:

ativa: fluxo de controle

passiva: espaço de endereçamento

Um thread consiste somente do fluxo de controle,


também chamado de processo leve

Por que Threads?

espaço de endereçamento é caro

muitas vezes processos usam dados compar-


tilhados, e usar-se vários threads no mesmo
espaço de endereçamento é mais eficiente

11
Definições

Processo (Unix):
espaço de endereçamento + fluxo de controle

Thread:
fluxo de controle

Tarefa (task):
espaço de endereçamento

Um processo é uma tarefa com um único thread

Uma tarefa pode conter vários threads

Náo há proteção entre threads de uma mesma ta-


refa

CONFUSÃO: freqüentemente usa-se processo ou


tarefa quando se quer dizer thread!

12
Combinações

Uma tarefa, um thread:

SOs simples como DOS: um usuário fazendo


uma coisa de cada vez

Uma tarefa, vários threads:

núcleo de SO: coordena diversas atividades,


mas proteção não é necessária e uma tarefa
é mais eficiente

Várias tarefas, um thread por tarefa:

Unix original

diversos usuários com um programa cada

Várias tarefas, vários threads por tarefa:

caso mais comum

13
Vários threads, uma CPU

Cada thread tem a ilusão de ter uma CPU dedi-


cada, mas só existe uma CPU

O Escalonador é o programa que controla qual th-


read executa a cada instante:

while (true) {
espera_evento();
salva_thread_corrente();
escolhe_novo_thread();
carrega_novo_thread();
}

14
Escalonador

Cada thread é representado por um PCB - Process


Control Block que contém:

estado do processo: Running, Ready ou Bloc-


ked

número do processo (thread)

PC - Program Counter

registradores

localização na pilha de execução

prioridade de execução

...

15
Estados do Thread

INTERRUPCAO

READY RUNNING

ESCOLHA

EVENTO EVENTO

BLOCKED

Ready: pronto para executar

Running: executando

Blocked: esperando por algum evento

16

Você também pode gostar