Sistemas Operacionais Aula 08 Processos Prof. Maxwell Anderson www.maxwellanderson.com.br
Introdução Conceitos já vistos em aulas anteriores: Definição de Sistemas Operacionais Funções: máquina virtual e gerenciador de recursos História dos Sistemas Operacionais Tipos de Sistemas Operacionais Softwares Utilitários Estrutura dos Sistemas Operacionais Arquitetura de Sistemas Operacionais
Temos a impressão de todos os programas estão sendo executados ao mesmo tempo. A CPU realiza várias alternâncias entre os processos. Quem vai primeiro? Um processo é basicamente um programa em execução. Qual a diferença entre programa e processo?
Um processo é basicamente um programa em execução. É formado por três partes: hardware software Espaço de endereçamento Software Hardware Programa Espaço de Endereçamento
Hardware Armazena o conteúdo dos registradores gerais da CPU e de uso específico, como o program counter (PC), o stack pointer (SP) e o registrador de status (PSW). Quando um processo está em execução, o os registradores da CPU são utilizados Quando o processo perde a utilização da CPU, o sistema salva o contexto de hardware no processo. A troca de um processo por outro na CPU é chamada de mudança de contexto. Software Programa Espaço de Endereçamento Hardware
Software São especificadas as características e limites dos recursos que podem ser alocados pelo processo, como prioridade para execução, privilégios, tamanho do buffer para operações de E/S etc.; O contexto de software é formado por três grupos de informações: Identificação Quotas Privilégios Software Hardware Programa Espaço de Endereçamento
Software Identificação PID e Nome UID e Owner (identificação do usuário que o criou) Quotas São os limites de cada recurso do sistema que um processo pode alocar: Número máximo de arquivos abertos simultaneamente; Tamanho máximo de memória principal e secundária; Número máximo de operações E/S pendentes. Software Programa Espaço de Endereçamento Hardware
Software Privilégios Definem as ações que um processo pode fazer em relação a ele mesmo, aos demais processos e ao sistema operacional. Privilégios que afetam o próprio processo permitem que suas características possam ser modificadas: Prioridade de execução Limites alocados na memória principal e secundária Etc O usuário que possui todos os privilégios são o root do UNIX e o administrador do Windows. Software Programa Espaço de Endereçamento Hardware
Espaço de Endereçamento É a área do processo onde as intruções e os dados do programa são armazenados para execução Cada processo possui o seu espaço. Nenhum outro processo poderá ocupá-lo. Privilégios que afetam o próprio processo permitem que suas características possam ser modificadas: Prioridade de execução Limites alocados na memória principal e secundária Etc. Software Programa Espaço de Endereçamento Hardware
privilégios quotas PID nome registradores gerais owner (UID) registrador PC prioridade de execução data/hora de criação tempo de processador Software Programa Espaço de Endereçamento Hardware registrador SP registrador status endereços de memória principal alocados
Estados do Processo Nos sistemas operacionais multitarefa, um processo não poderá ocupar exclusivamente uma CPU. Para que o compartilhamento da CPU seja efetivado, um processo passa por vários estados ao longo de seu completo processamento. A mudança de estados é gerada por eventos do sistema operacional ou do próprio processo. Um processo ativo pode se encontrar em três estados: Pronto Execução Espera
Estado de Pronto (ready) Está no estado de pronto quanto aguarda para ser executado. Os processos no estado de pronto ficam em uma lista encadeada. O escalonamento dos processos determina a ordem e os critérios pelos quais os processos neste estado deverá fazer uso do processador.
Estado de Execução (running) Está no estado de execução quando está sendo processado pela CPU. Os processos se alternam na utilização da CPU seguindo uma política de escalonamento estabelecida pelo sistema operacional.
Estado de Espera (wait) Aguarda por algum evento externo ou por algum recurso para prosseguir o processamento. Também são organizados em uma lista encadeada. Todos os processos em estado de espera são colocados novamente na fila de pronto. Exemplos: espera de uma data e hora para executar uma ação ou espera de uma entrada pelo usuário.
Mudanças de Estado do Processo Um processo muda de estado durante seu processamento em função de: Eventos vonluntários originados pelo próprio processo; Eventos involuntários originados pelo sistema operacional. São quatro mudanças de estado Pronto Execução Execução Espera Espera Pronto Execução Pronto
Pronto Execução 1. Sistema operacional cria processo; 2. Sistema coloca processo em estado de pronto e este aguarda por uma oportunidade para ser executado; 3. Processo é executado. Pronto Execução
Execução Pronto 1. Processo está em execução; 2. Fatia de tempo do processo para execução do processo terminou; 3. Processo volta para a fila de pronto. Pronto Execução
Execução Espera 1. Processo é executado; 2. Sistema operacional suspende execução do processo por um período de tempo e entra na fila de espera. Pronto Execução Espera
Espera Pronto 1. Processo está em estado de espera; 2. Recurso esperado é concedido ou operação solicitada pelo processo é atendido; 3. Processo entra para fila de pronto. Pronto Execução Espera
Mudanças de Estado do Processo Um processo em estado de pronto ou espera pode não se encontrar na memória principal. Esta condição existe quando não existe espaço suficiente para todos os processos na memória principal e parte do processo é levada para a memória secundária. Essa técnica é chamada de swapping. Desta forma os processos em estado de pronto ou espera podem ou não estar residentes na memória principal.
Referências Bibliográficas [1] Tanenbaum, Andrew S. Sistemas Operacionais Modernos 2. ed. Prentice Hall ( Pearson ), 2003 [2] Machado, F. B. Maia, L. P. Arquitetura de Sistemas Operacionais. 3. ed. LTC. 2002