Prévia do material em texto
Sistemas Operacionais – I Cap. 5 – Processo * Arquitetura de Sistemas Operacionais Capítulo 5 Processo Sistemas Operacionais – I Cap. 5 – Processo * Sumário Introdução Estrutura do processo Estados do processo Mudanças de estado do processo Criação e eliminação de processos Processos independentes, subprocessos e threads Processos foreground e background Processos do sistema operacional Processos CPU-bound e I/O-bound Sinais Sistemas Operacionais – I Cap. 5 – Processo * Introdução Processos são a base de um sistema multiprogramável. Processador apenas executa instruções. Job, tarefa ou processos são sinônimos. Os processos são executados concorrentemente, compartilhando: Processador(es), memória principal e dispositivos de E/S Através dele um programa pode alocar recursos, compartilhar dados, trocar informações e sincronizar sua execução. Sistemas Operacionais – I Cap. 5 – Processo * Estrutura do Processo Um processo é mais que um programa em execução. Um sistema multiusuário cada usuário é associado a um processo Todas as informações importantes e necessárias à execução de um programa fazem parte do processo Processo é também o ambiente onde um programa é executado O ambiente é além das informações sobre a execução possui os recursos para cada programa (espaço de endereçamento, tempo de processador e área em disco) Sem recursos o prog. poderá ser interrompido Sistemas Operacionais – I Cap. 5 – Processo * Estrutura do Processo Estrutura do processo Um processo é formado por três partes: - Contexto de SW - Contexto de HW - Espaço de endereçamento Sistemas Operacionais – I Cap. 5 – Processo * Contexto de Hardware Armazena o conteúdo dos registradores gerais e específico (Program Counter, Stack Pointer e o Registrador de Status) Quando o processo perde UCP as informações são salvas no contexto de HW do processo. A mudança de contexto ocorre para que um novo processo possa ser executado e vice-versa. Sistemas Operacionais – I Cap. 5 – Processo * Contexto de Hardware Mudança de contexto Sistemas Operacionais – I Cap. 5 – Processo * Contexto de Software São especificadas características e limites dos recursos que podem ser alocados pelo processo: Nº máximo de arquivos abertos simultaneamente, Prioridade de execução e Tamanho do buffer para E/S Muitas são determinadas no momento da criação outras podem ser alteradas durante a execução. Em sua maior parte as informações vem do arquivo de contas. É composto por três grupos de informações: identificação, Quotas e privilégios Sistemas Operacionais – I Cap. 5 – Processo * Contexto de Software Identificação Cada processo recebe uma única ID (PID) Somado ao PID pode haver um nome Possui também a ID do usuário que criou (UID) Através da UID é possível implementar um modelo de segurança onde apenas os objetos (processos, arquivos , áreas de memória, etc) que possuem a mesma UID podem ser acessados Sistemas Operacionais – I Cap. 5 – Processo * Contexto de Software Quotas São os limites de cada recurso do sistema que um processo pode alocar. Um processo pode ser lento, interrompido ou não ser executado se a quota é insuficiente. Exemplos: Nº max arq abertos simultaneamente; Tamanho max de MP e Secundária que pode ser alocada por um processo; Nº max de operações de E/S pendentes; Tamanho max do buffer para E/S; Nº max de processos, subprocessos e theads que podem ser criados. Sistemas Operacionais – I Cap. 5 – Processo * Contexto de Software Privilégios Definem ações que um processo pode fazer em realção: A ele mesmo (permite alterar suas características), Aos demais processos (permite alterar as características próprias e de outros processos) e Ao SO (são mais amplos e poderosos, pois estão relacionados com a operação e gerencia do ambiente como desativação, segurança, criação de processos privilegiados, parametros de configuração do sistema, etc – conta root, system). Sistemas Operacionais – I Cap. 5 – Processo * Espaço de Enderaçamento É a área de memória pertencente ao processo onde as instruções e os dados do programa são armazenados para execução Cada processo possui seu próprio espaço de endereçamento Deve ser protegido do acesso de outros processos Sistemas Operacionais – I Cap. 5 – Processo * Espaço de Enderaçamento Estrutura de um processo Sistemas Operacionais – I Cap. 5 – Processo * Bloco de Controle do Processo O processo é implementado no SO através do PCB. O PCB mantém informações sobre o contexto de HW, SW e espaço de endereçamento de cada processo Os PCB’s residem na MP em uma área exclusiva do SO. Esta área é limitada por um parâmetro Nº max de processos simultaneos. Toda gerência é feita através de system calls (criação, alteração de características, visualização, eliminação, sincronização, suspensão de processos, etc.) Sistemas Operacionais – I Cap. 5 – Processo * Bloco de Controle do Processo PCB Sistemas Operacionais – I Cap. 5 – Processo * Estados do Processo Sistema multiprogramável (processos concorrentes) Um processo não pode alocar a CPU exclusivamente. Os processos compartilham a CPU Os processos passam por diferentes estados ao logo de seu processamento Estados são gerados pelo SO ou pelo próprio processo. Um processo ATIVO pode se encontrar em três estados distintos:Execução, Pronto e Espera. Sistemas Operacionais – I Cap. 5 – Processo * Estados do Processo Execução (running) Quando está sendo processado pela CPU Em sistemas monoprocessados os processos se alternam no processador segundo uma política do SO. Em um sistemas com mais processadores pode ocorrer o processamento paralelo (um mesmo processo ser executado simultaneamente). Pronto (ready) Um processo aguarda para ser executado O SO determina a ordem e os critérios para que os prontos possam utilizar o processador (escalonamento) Os processos são colocados em listas encadeadas Espera (wait) Sistemas Operacionais – I Cap. 5 – Processo * Estados do Processo Espera (wait) Aguarda por algum evento externo ou recurso para continuar Também chamado de bloqueado São separados em listas encadeadas associadas aos tipos de evento Quando ocorre um evento todos os processos que estão em espera passam a prontos Eventos como : termino de uma operação de E/S ou espera de uma data/hora Sistemas Operacionais – I Cap. 5 – Processo * Estados do Processo Sistemas Operacionais – I Cap. 5 – Processo * Estados do Processo Lista de PCBs Sistemas Operacionais – I Cap. 5 – Processo * Mudanças de Estado Mudanças de estado do processo podem ser por eventos voluntários (o próprio processo) ou involuntários ( o SO) Basicamente são quatro as mudanças: Pronto Execução Execução Espera Espera Pronto Execução Pronto Sistemas Operacionais – I Cap. 5 – Processo * Mudanças de Estado Pronto Execução Após a criação do processo entra em uma lista de pronto A ordem de sua execução depende da política de escalonamento Execução Espera Quando da espera por eventos voluntários (pex.: E/S) Evento involuntário (o SO suspende) Espera Pronto Quando do atendimento da operação ou Quando o recurso esperado é concedido Execução Pronto Fim da sua fatia de tempo Aguarda para continuar seu processamento Sistemas Operacionais – I Cap. 5 – Processo * Mudanças de Estado Mudanças de estado do processo Sistemas Operacionais – I Cap. 5 – Processo * Mudanças de Estado Quando um processo não está na MP Espaço insuficiente de MP Parte do contexto é levado para disco Processos: Em espera Prontos Podem estar não Residentes em MP Swapping Sistemas Operacionais – I Cap. 5 – Processo * Criação e Eliminação Mudanças de estado do processo (3) Sistemas Operacionais – I Cap. 5 – Processo * Mudançasde Estado Criação e Eliminação de processos Estado de criação: SO cria um novo PCB Os SO podem limitar o numero de processos ativos (recursos ou desempenho Procesos em estado de criação quando: Login (interativo) a partir de um terminal Por um outro processo Pelo SO (oferta de serviços) Estado de termino: ainda existe seu PCB Procesos em estado de criação quando: Termino normal de execução Eliminação por um outro processo Eliminação forçada por ausência de recursos no sistema Sistemas Operacionais – I Cap. 5 – Processo * Processos Independentes, Subprocessos e Threads Maneiras de implementar concorrência Divisão do código para trabalhar de forma cooperativa Processos independentes: Mais simples Nao existe vínculo do processo criado com seu criador Exige um PCB com contexto de HW, SW e espaço de endereçamento próprios. Subprocessos: Criados dentro de uma hierarquia O processo criador é chamado de processo PAI e o subprocesso FILHO Um FILHO pode ter mais subprocessos (filhos) Sistemas Operacionais – I Cap. 5 – Processo * Processos Independentes, Subprocessos e Threads Estrutura de processos e subprocessos Sistemas Operacionais – I Cap. 5 – Processo * Processos Independentes, Subprocessos e Threads Subprocessos: Existe uma dependência Se o PAI deixa de existir os FILHOS são automaticamente eliminados Cada FILHO tem seu próprio PCB Um FILHO pode compartilhar quotas com o PAI Estas formas consomem tempo de CPU, e recursos do sistema quando são criados ou terminados A comunicação e a sincronização entre processos é pouco eficiente, pois cada processo possui seu próprio espaço de endereçamento Sistemas Operacionais – I Cap. 5 – Processo * Processos Independentes, Subprocessos e Threads O Thread visa reduzir o tempo de criação, término e troca de contextos dos processos além dos recursos como um todo. Um ambiente Multithread: Implementa a concorrência com um unico Processo Compartilham o processador igual a um processo Cada Thread possui seu contexto de HW porem compartilha o contexto de SW e espaço de endereçamento Sistemas Operacionais – I Cap. 5 – Processo * Processos Independentes, Subprocessos e Threads Processo multithread Sistemas Operacionais – I Cap. 5 – Processo * Processos Foreground e Background Associado a estrutura de um processo há pelo menos dois canais de comunicação por onde são realizadas todas E/S Canais de Entrada (input) e saida (output) Associados a terminais, arquivos, impressoras e até outros processos Processo foreground: comunicação direta do usuario com o processo (processamento interativo): Canais de E e S associados a um terminal com teclado, mouse e monitor Processo background: sem comunicação com o usuário, os canais de E/S não estão associados a dispositivos de E/S interativos (proc. Batch) Um canal de saida (de um processo) associado ao de entrada (de outro) é chamado PIPE Sistemas Operacionais – I Cap. 5 – Processo * Processos Foreground e Background Processos foreground e background Sistemas Operacionais – I Cap. 5 – Processo * Processo Foreground e Background Pipe Sistemas Operacionais – I Cap. 5 – Processo * Processos do Sistema A arquitetura de um SO também usa processos Na implementação de serviços do sstema estamos retirando código do seu Núcleo, tornado-o menor e mais estável Podemos ativar ou não os serviços (processos) Serviços que o SO pode implementar: Auditoria e segurança (login, iptables) Serviços de rede (inetd) Contabilização do uso de recursos (logs) Contabilização de erros Gerência de impressão (lpd) Gerência de jobs batch Temporização (crontab) Comunicação de eventos (alerts) Interface de comandos (shell) Sistemas Operacionais – I Cap. 5 – Processo * Processos CPU e IO Bound Processos podem ser classificados de acordo com a utilização do processador e dos dispositivos de E/S CPU-Bound (ligado a CPU): Maior parte do tempo no estado de execução Poucas E/S Aplicações com muitos cálculos (científica) I/O-Bound (ligado a E/S): Maior parte do tempo no estado de espera Muitas operações E/S Aplicações comerciais, comunicação interativa Sistemas Operacionais – I Cap. 5 – Processo * Processos CPU e IO Bound Processos CPU x IO Bound Sistemas Operacionais – I Cap. 5 – Processo * Sinais Mecanismo para notificar o sistema sobre eventos Fundamental para gerência de processos além comunicação e sincronização entre processos Uma rotina de tratamento é executada Sinais podem ser utilizados com temporizadores A partir de eventos sincronos ou assincronos é gerado um sinal É notificado ao processo atraves de bits de sinalização no seu PCB Um processo responde ao sinal quando estiver em estado de execução Sistemas Operacionais – I Cap. 5 – Processo * Sinais Uso de sinais Sistemas Operacionais – I Cap. 5 – Processo * Sinais O tratamento de um sinal é semelhante ao mecanismo de interrupções: O contexto do processo é salvo A execução é desvida para um codigo de tratamento de sinal (signal handler - manipulador) no núcleo do sistema Após ser tratado o processo pode voltar onde foi interrompido O proprio processo pode também tratar o sinal internamente Um processo pode bloquear temporariamente ou ignorar por completo alguns sinais. Sistemas Operacionais – I Cap. 5 – Processo * Sinais Sinais, interrupções e exceções