Sop 3 - Gerencia de Processos Parte 2
-
Upload
joao-henrique-de-almeida -
Category
Documents
-
view
156 -
download
0
Transcript of Sop 3 - Gerencia de Processos Parte 2
Multiprogramação/Multiprogramação/Multiprogramação/Multiprogramação/Gerência de Gerência de Processos [parte 2]Processos [parte 2]
Universidade do Estado de Santa Catarina – CeplanBacharelado em Sistemas de Informação
Prof. Alexandre [email protected]
Processos
� São representados:� Por um espaço de endereçamento (para armazenamento da imagem do processo)
� Pelas estruturas internas do sistema que precisam ser utilizadas
� Pelo seu contexto de execução
� Sempre existirá um fluxo de controle por processo � Sempre existirá um fluxo de controle por processo (threads)
Processos
� Um processo suspenso deve retornar sua execução no ponto onde parou� Questão:
� Como um SO recupera, então, um processo suspenso ?
Blocos de Controle de Processos - PCBs
� Os PCBs mantêm as informações que o SO precisa para gerenciar um processo:� Número de identificação de processo (PID)� Estado do processo� Contador de programa� Prioridade de escalonamento� Prioridade de escalonamento� Credenciais� Um ponteiro para o processo-pai� Ponteiros para os processos-filho� Ponteiros para localizar os dados e instruções do processo na memória
� Ponteiros para recursos alocados
Tabela de Processos
� O SO mantém ponteiros para cada PCB (ou Descritor de Processo) em uma tabela de processos no âmbito total do sistema ou por usuário.
� Esta tabela permite acesso rápido aos PCBs.
� Quando um processo é encerrado, a tabela de processos retira o processo da tabela e disponibiliza todos os seus retira o processo da tabela e disponibiliza todos os seus recursos.
Tabela de Processos
Gerência dos Processos
� Uma operação de E/S de um processo geralmente termina durante a execução de um segundo processo (Tente entender o porquê!)
� Tais operações são gerenciadas por controladores de periféricos, no entanto,
Gerência de Processos
� Controladores de periféricos têm 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 término � Processadores precisam de uma forma de identificar o término dessas operações (interrupções)
Interrupções
� Pode ser de 2 tipos: de hardware ou de software (traps)
� Interrupções de hardware:� Permitem que um controlador de periférico chame a atenção do processador
� É uma resposta a algum evento
Cada controlador de periférico tem um tipo diferente de � Cada controlador de periférico tem um tipo diferente de interrupção (0 .. 255)
Interrupções
� Interrupção de hardware� Ativação por meio de hardware
� Não é determinística (o momento exato de sua ocorrência não pode ser prevista)
� Interrupção de softwareAtivação por meio de software� Ativação por meio de software
� Sua ocorrência pode ser controlada
Interrupções
� Permitem que o controlador de um periférico chame a atenção do processador
� Um SO precisa atender a este evento (por isso, todo SO possui um módulo denominado tratador de interrupção)
� Ao atender uma interrupção, um processador precisa salvar automaticamente o estado de um processo salvar automaticamente o estado de um processo
Interrupção de Hardware
Questão
� Se um SO precisa atender imediatamente a uma interrupção, o que poderia ocorrer a um processo que em determinado instante está executando umacomputação atômica ?
Proteção entre processos
� Um SO oferece proteção ao sistema além de garantir a correta utilização do sistema:� Imagine se um processo de usuário pudesse formatar o disco ?
� Imagine se um processo pudesse alterar seu estado constantemente para “em execução” ?
Proteção entre processos
� Para facilitar o SO alterna entre dois modos de execução: usuário e supervisor
� Se um processo estiver em modo usuário e tentar executar uma instrução privilegiada (chamada de sistema) => o hardware gera uma interrupção e aciona o SO
Proteção entre processos
� Consequentemente, a única forma de um processo de usuário realizar uma operação de E/S é através de uma chamada de sistema!
Proteção entre processos
� Porque a memória é um recurso delicado ?� Processos poderiam alterar PCBs de outros processos ...
� Processos poderiam instalar código próprio onde deveria existir um tratador de interrupção ...
� etc
Proteção entre processos
� Então, o que é necessário proteger ?� A memória usado pelo SO
� A memória usada por um processo
Proteção entre processos
� Proposta 1: Registradores de Limite
Proteção entre processos
� Proposta 2: E/S mapeada em memória� Arquiteturas que permitem o acesso a periféricos apenas em posições específicas de memória
� Proposta 3: Temporizador
Exercícios de Fixação
� O SO é um programa dirigido por eventos, e esses eventos são sinalizados por interrupções. Para cada uma das três classes de interrupções (periféricos, proteção e chamada de sistema), descreva a reação que o SO deverá ter.
� A operação “escreve caracter na interface da impressora” � A operação “escreve caracter na interface da impressora” deve ou não ser privilegiada?
� Pode-se considerar como consequência da multiprogramação “uma pior utilização dos periféricos”? Justifique.