You are on page 1of 21

Multiprogramao/ Gerncia de Processos [parte 2]

Universidade do Estado de Santa Catarina Ceplan Bacharelado em Sistemas de Informao Prof. Alexandre Veloso alexandre.matos@udesc.br

Processos
So representados:
Por um espao de endereamento (para armazenamento da imagem do processo) Pelas estruturas internas do sistema que precisam ser utilizadas Pelo seu contexto de execuo

Sempre existir um fluxo de controle por processo (threads)

Processos
Um processo suspenso deve retornar sua execuo no ponto onde parou
Questo:
Como um SO recupera, ento, um processo suspenso ?

Blocos de Controle de Processos - PCBs


Os PCBs mantm as informaes que o SO precisa para gerenciar um processo:
Nmero de identificao de processo (PID) Estado do processo Contador de programa Prioridade de escalonamento Credenciais Um ponteiro para o processo-pai Ponteiros para os processos-filho Ponteiros para localizar os dados e instrues do processo na memria Ponteiros para recursos alocados

Tabela de Processos
O SO mantm ponteiros para cada PCB (ou Descritor de Processo) em uma tabela de processos no mbito total do sistema ou por usurio. Esta tabela permite acesso rpido aos PCBs. Quando um processo encerrado, a tabela de processos retira o processo da tabela e disponibiliza todos os seus recursos.

Tabela de Processos

Gerncia dos Processos


Uma operao de E/S de um processo geralmente termina durante a execuo de um segundo processo (Tente entender o porqu!) Tais operaes so gerenciadas por controladores de perifricos, no entanto,

Gerncia de Processos
Controladores de perifricos tm capacidade limitada de processamento Logo:
Cada dispositivo pode se ver na necessidade de manter uma fila de processos Processadores precisam de uma forma de identificar o trmino dessas operaes (interrupes)

Interrupes
Pode ser de 2 tipos: de hardware ou de software (traps) Interrupes de hardware:
Permitem que um controlador de perifrico chame a ateno do processador uma resposta a algum evento Cada controlador de perifrico tem um tipo diferente de interrupo (0 .. 255)

Interrupes
Interrupo de hardware
Ativao por meio de hardware No determinstica (o momento exato de sua ocorrncia no pode ser prevista)

Interrupo de software
Ativao por meio de software Sua ocorrncia pode ser controlada

Interrupes
Permitem que o controlador de um perifrico chame a ateno do processador Um SO precisa atender a este evento (por isso, todo SO possui um mdulo denominado tratador de interrupo) Ao atender uma interrupo, um processador precisa salvar automaticamente o estado de um processo

Interrupo de Hardware

Questo
Se um SO precisa atender imediatamente a uma interrupo, o que poderia ocorrer a um processo que em determinado instante est executando umacomputao atmica ?

Proteo entre processos


Um SO oferece proteo ao sistema alm de garantir a correta utilizao do sistema:
Imagine se um processo de usurio pudesse formatar o disco ? Imagine se um processo pudesse alterar seu estado constantemente para em execuo ?

Proteo entre processos


Para facilitar o SO alterna entre dois modos de execuo: usurio e supervisor Se um processo estiver em modo usurio e tentar executar uma instruo privilegiada (chamada de sistema) => o hardware gera uma interrupo e aciona o SO

Proteo entre processos


Consequentemente, a nica forma de um processo de usurio realizar uma operao de E/S atravs de uma chamada de sistema!

Proteo entre processos


Porque a memria um recurso delicado ?
Processos poderiam alterar PCBs de outros processos ... Processos poderiam instalar cdigo prprio onde deveria existir um tratador de interrupo ... etc

Proteo entre processos


Ento, o que necessrio proteger ?
A memria usado pelo SO A memria usada por um processo

Proteo entre processos


Proposta 1: Registradores de Limite

Proteo entre processos


Proposta 2: E/S mapeada em memria
Arquiteturas que permitem o acesso a perifricos apenas em posies especficas de memria

Proposta 3: Temporizador

Exerccios de Fixao
O SO um programa dirigido por eventos, e esses eventos so sinalizados por interrupes. Para cada uma das trs classes de interrupes (perifricos, proteo e chamada de sistema), descreva a reao que o SO dever ter. A operao escreve caracter na interface da impressora deve ou no ser privilegiada? Pode-se considerar como consequncia da multiprogramao uma pior utilizao dos perifricos? Justifique.

You might also like