Gerência de Processos

Transcrição

Gerência de Processos
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 painel, computadores como experiências
conjunto de cartões manualmente carregados para executar um programa
usuário presente todo o tempo: toda atividade é 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 lentas, ambos são caros
usuários acessam a mesma CPU simultaneamente diretamente conectados a terminais
on-line
dados precisam ser acessados continuamente:
sistema de arquivos
base dos SOs modernos
PROBLEMA: falta de disciplina nos programadores!
4
História de SOs
Fase 3: Computadores pessoais dark ages!
computadores são baratos, pessoas são caras: dar um computador a cada pessoa (SUNStanford 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 esperando 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 distribuı́do quando:
não consegue trabalhar porque um computador 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 programas
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 determina qual processo estará executando: programa 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 programa 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 processos
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 compartilhados, 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 tarefa
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 dedicada, mas só existe uma CPU
O Escalonador é o programa que controla qual thread 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 Blocked
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

Documentos relacionados

LabSO Gerência de Processos Processos

LabSO Gerência de Processos Processos – Processo está em memória, pronto para ser executado, aguardando a disponibilidade do processador; – IMPORTANTE: Os processos “prontos” são organizados em uma fila cuja ordem é determinada por alg...

Leia mais

Identificação da atividade - título

Identificação da atividade - título o identificador do processo (PID), o contador do programa, a pilha do sistema, entre outros. Uma relação de todos os processos existentes é comumente mantida numa tabela de processos. Quando um pro...

Leia mais