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
– 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 maisIdentificaçã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