processo entidade dinâmica e efêmera composto por altera seu estado à medida que avança sua...
TRANSCRIPT
Processo
Entidade dinâmica e efêmeraComposto por
Altera seu estado à medida que avança sua execução
Forma pela qual o SO “enxerga” um programa e possibilita sua execuçãoProcessos executam
Programa (código)
Dados e contexto (valores)
Prog. de usuários
Prog. do próprio SO (daemons)
Ciclo de vida de um processo
Criação
Execução
Término
Ciclo de vida de um processo
CriaçãoMomento da execuçãoChamadas de sistema (fork, spawn, etc)Podem ser associados a uma sessão de
trabalho (login de usuários) Identificado por um n° único (PID)
Ciclo de vida de um processo
ExecuçãoProcessos apresentam dois ciclos básicos de
operação: Ciclo de processador (tempo em que ocupa a
CPU) Ciclo de E\S (tempo em que espera pela
conclusão de um evento) Primeiro ciclo sempre é do processador!
Ciclo de vida de um processo
Execução:Troca de ciclo por:
CPU E\S: chamada de sistema E\S CPU: ocorrência de evento
(interrupção)Situação ideal – Misturar processos CPU
com E\S (Benefícios para escalonamento)
Ciclo de vida de um processo
Término:Final de execução normalPor erros (Ex.: Proteção, aritméticos, E\S,
tentativa de execução de instruções inválidas, falta de memória, exceder tempo de limite)
Intervenção de outros processos (kill)Log off de usuários
Relacionamentosentre processos Processos independentes – não
apresentam relacionamento com outros processos
Grupo de processos
Hierarquia
Representação através de uma árvore – evolução dinâmica
Algum tipo de relação (filiação)
Compartilham recursos
Definição de hierarquia
Processo criador é processo pai
Processo criado é processo filho
Estados de um processo
Após criado o processo necessita entrar em ciclo de processador
Existem algumas hipótesesProcessador não esta disponívelVários processos sendo criados
Que fazer?Criação de uma fila de aptos (para esperar
pelo processador)
Modelo Simplificado de Dois Estados Manter uma fila de processos aptos a
executar – esperando pelo processador ficar livre
Escalonador (Dispatcher)Atribui o processador a um processo da fila
de aptosPode prevenir um único processo de
monopolizar o processador
Modelo Simplificado de Dois Estados
Apto Executando
Dispatcher
Pausa
Criação Término
Modelo de cinco estados
términoCriação Apto Executando Destruição
Bloqueado
Interrupção tempo voluntário
seleção
call system
Modelo de cinco estados
Causas para um processo não executarEsperando pelo processadorEsperando pela ocorrência de eventos
externos (bloqueado) Necessidade de filas!
Mecanismos de Interrupção
Sinaliza a ocorrência de algum evento Provoca a execução de uma rotina
especial (tratador de interrupção) Ciclo de execução de uma interrupção:
1) Prepara a transferência de controle para o tratador (salvamento do contexto de execução)
2) Desvia controle para tratador3) Retorna execução (restaura contexto de
execução)
Tipos de Interrupção
Hardware: ocorrência de eventos externos Software: execução de uma instrução
específica Exceção: erros de execução (overflow)
Chamada de Sistema
Método empregado para um processo usuário solicitar serviços ao SO:
Normalmente baseado em interrupções de software (traps)
Aciona a rotina de tratamento de interrupções:1) Identifica serviço requisitado
2) Verifica validade dos parâmetros
3) Executa o serviço
4) Retorna ao processo do usuário
Estrutura de SO
Monolíticos Sistemas Camadas Máquinas Virtuais Modelo Cliente-Servidor
Monolíticos
Não há nenhuma estrutura, o SO é escrito como uma coleção de procedimentos. Ex.: Linux.
Pode ser comparado com uma aplicação formada por vários procedimentos que são compilados separadamente e linkados, formando um único e grande programa executável.
Monolíticos
Sistemas Camadas
Hierarquia de camadas construídas uma sobre a outra. Divide o SO em sistemas sobrepostos. Ex.: Minix.
A vantagem da estruturação em camadas é isolar o SO, facilitando sua alteração e depuração, além de criar uma hierarquia de níveis de modos, protegendo as camadas mais internas.
Sistemas Camadas
Máquinas Virtuais
Camada idêntica ao hardware que executa vários sistemas operacionais.
Modelo Cliente-Servidor
Remove código para camadas mais altas. Gerenciar processo cliente e processo servidor. Ex.: Windows NT.
Desta forma, sempre que uma aplicação deseja algum serviço ela solicita ao processo responsável, assim, a aplicação que solicita um serviço é chamada de cliente e o processo que responde é chamado de servidor.
Modelo Cliente-Servidor
A utilização deste modelo permite que os servidores executem em modo usuário.
Apenas o núcleo do sistema, responsável pela comunicação entre clientes e servidores, execute o modo kernel.
Não importa se o serviço esta sendo processado em um único processador, com múltiplos processadores (fortemente acoplado) ou em sistema distribuído (fracamente acoplado).
Modelo Cliente-Servidor
Próxima aula
Processo x Concorrência Região Crítica e Exclusão Mútua