Baixe o app para aproveitar ainda mais
Prévia do material em texto
Sistemas Operacionais Prof. Fernando Eryck 2012.2 Redes de Computadores SUMÁRIO � Processos Processo �A gerência de processos é uma das principais funções de um sistema operacional possibilitando aos programas: �Alocar recursos �Compartilhar dados �Trocar informações �Sincronizar suas execuções �Os processos são executados concorrentemente, compartilhando: �Memória principal, processador, dispositivos de E/S, etc. �Sistemas multiprocessados permitem a execução simultânea de processos nos diferentes processadores Processo � O processador é projetado para executar instruções a partir de um ciclo de busca e execução �Funcionamento: � Processador busca a instrução a ser executada na memória principal� Processador busca a instrução a ser executada na memória principal � Armazena-a no registrador de instruções � Decodifica os bits � Realiza a execução �O processador executa instruções sem distinguir qual programa está sendo processado (transparência) �É responsabilidade do SO implementar a concorrência entre programas gerenciando a alternância da execução de instruções na CPU de maneira controlada e segura Conceitos de Processo � Um processo pode ser entendido inicialmente como um programa em execução � Na concorrência entre processos é necessário guardar todas informações do programa interrompido � Processo é o conjunto necessário de informações para que o SO � Processo é o conjunto necessário de informações para que o SO implemente a concorrência de programas. � A troca de um processo por outro no processador é denominada mudança de contexto � Processo pode ser definido como o ambiente onde um programa é executado � Ambiente = informações sobre a execução, quantidade de recursos do sistema alocado, espaço de endereço de memória, tempo do processador e área em disco Estrutura do Processo � Um processo é formado por três partes, que juntos mantêm todas as informações necessárias à execução de um programa. �Contexto de hardware �Contexto de software�Contexto de software �Espaço de endereçamento Programa Contexto de Software Contexto de Hardware Espaço de Endereçamento Contexto de Hardware �O contexto de hardware de um processo armazena o conteúdo dos registradores gerais da CPU, além dos registradores de uso específico (Program Counter, Stack Pointer,etc). �Os processos se alternam na Sistema Operacional Salva registradores do Processo A executando Processo A Processo B �Os processos se alternam na utilização da CPU � Interrompendo processo � Salvando o conteúdo dos registradores � Carrega novos valores do novo processo �SO gerencia a mudança de contexto Carrega registradores do Processo B Carrega registradores do Processo A executando executando Salva registradores do Processo B Program Counter = contêm o endereço da próxima instrução Stack Pointer = pilha para realizar chamadas e retornos de prodecimentos que indica o programa em execução Contexto de Software �No contexto de software de um processo são especificados limites e características dos recursos que podem ser alocados pelo processo � Número máximo de arquivos abertos simultaneamente � Prioridade de execução� Prioridade de execução � Tamanho de Buffer para operações de E/S �O contexto de software define basicamente três grupos de informações sobre o processo: � Identificação � Quotas � Privilégios Contexto de Software �Identificação � Cada processo criado pelo sistema recebe uma identificação única (PID – process identification) representada por um número �O processo possui também identificação do usuário ou processo que o criou.que o criou. �Quotas � São limites de cada recurso do sistema que um processo pode alocar � Caso a quota seja insuficiente, o processo poderá ser �Executado lentamente �Interrompido � não executado Contexto de Software �Quotas (cont.) � Exemplos de quotas presentes na maioria dos sistemas operacionais: �Número máximo de arquivos abertos simultaneamente �Tamanho máximo de memória principal e secundária alocada�Tamanho máximo de memória principal e secundária alocada �Número máximo de operações de E/S pendentes �Tamanho máximo do Buffer para operações de E/S �Número máximo de processos, subprocessos e threads que podem ser criados Contexto de 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 Espaço de Endereçamento �É a área de memória pertencente ao processo onde instruções e dados do programa são armazenados para execução. � Cada processo possui seu owner (UID) PID nome registradores gerais próprio espaço de endereça- mento, que deve ser prote- gido do acesso dos demais processos. Programa Contexto de Software prioridade de execução registrador PC data/ hora de criação tempo de processador registrador SP quotas privilégios endereços de memória principal alocados registrador de status Contexto de Hardware Espaço de Endereçamento Bloco de Controle de Processo �O processo é implementado pelo sistema operacional através de uma estrutura de dados chamadas bloco de controle do processo (Process Control Block - PCB) � A partir do PCB, o sistema operacional mantém todas as informações sobre o contexto de hardware, contexto de software e espaço de endereçamento de cada processo.endereçamento de cada processo. � Os PCBs de todos processos ativos residem na memória principal em uma área exclusiva do SO � O número máximo de processos ativos na memória é limitado pelo SO . . . . . . . . ponteiros Estado do processo Registradores Nome do processo Prioridade do processo Limites de memória Lista de arquivos abertos Estados do Processo �Um processo pode encontrar-e em três diferentes estados: � Execução (running) � Estado de execução quando está sendo processado pela CPU � Sistemas com uma CPU executam um processo por vez Pronto (ready) � Pronto (ready) �Estado de pronto quando aguarda apenas para ser executado �O SO determina quais processos em estado de pronto deve fazer uso da CPU � Os processos são ordenados pela sua importância, onde os prioritários serão selecionados primeiramente � Espera (Wait) �Estado de espera aguarda por algum evento externo ou por algum recurso para prosseguir seu processamento Estados do Processo . . . . . . . . . . . . Lista de processos em estado de pronto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCB#5 PCB#9 PCB#1 PCB#2 PCB#4 Lista de processos em estado de espera Mudanças de Estados do Processo �Um processo muda de estado durante seu processamento em função de eventos voluntários ou involuntários � Pronto → Execução � Execução → Espera Estado de Execução � Espera → Pronto � Execução → Pronto Estado de Espera Estado de Pronto a c db Mudanças de Estados do Processo � Pronto → Execução � Após criação de um processo, o sistema o coloca em uma lista de processos no estado de pronto, aguardando a oportunidade de ser executado. � A ordem dependerá dos critérios estabelecidos pelo SO� A ordem dependerá dos critérios estabelecidos pelo SO Estado de Execução Estado de Espera Estado de Pronto a c db Mudanças de Estados do Processo � Execução → Espera � A mudança ocorre por eventos gerados pelo próprio processo ou por eventos externos. �Ex.: Operação de E/S (gravação do documento word) Aguardode recursos computacionais (memória, etc.) Estado de Execução Estado de Espera Estado de Pronto a c db Mudanças de Estados do Processo � Espera → Pronto � A mudança ocorre quando uma operação solicitada é atendida ou o recurso esperado é concedido. � Não existe a mudança do estado de espera para o estado de execução diretamente.diretamente. Estado de Execução Estado de Espera Estado de Pronto a c db Mudanças de Estados do Processo � Execução → Pronto � A mudança ocorre devido a eventos externos gerados pelo SO. �Ex.: Término da fatia de tempo que o processo possui para sua execução. O processo volta para fila de pronto. �Um processo em estado de pronto ou espera pode não se encontrar na memória principal quando esta não tiver espaço suficiente para todos processos. Parte do contexto é levado para Mem. Secundária. (Swapping) Estado de Execução Estado de Espera Estado de Pronto a c db Criação e Eliminação de Processos � A criação de um processo ocorre a partir do momento em que o SO adiciona um novo PCB (Bloco de Controle do Processo) à sua estrutura e aloca um espaço de endereçamento na memória em uso. � Criação � Estado de criação ocorre quando o SO já criou um novo PCB, porém � Estado de criação ocorre quando o SO já criou um novo PCB, porém ainda não pode colocá-lo na lista de processos do estado de pronto. Estado de Execução Estado de Término Estado de Espera Estado de Pronto Estado de Criação Criação e Eliminação de Processos � Terminado � O estado de terminado não poderá ter mais nenhum programa executado no seu contexto, porém o SO ainda mantém suas informações de controle presentes na memória. � Razões para término de processo� Razões para término de processo � Término normal de execução � Eliminação por um outro processo � Eliminação forçada por ausência de recursos disponíveis Estado de Execução Estado de Término Estado de Espera Estado de Pronto Estado de Criação Processos CPU-bound e I/O-bound � Classificação dada de acordo com a utilização do processador e dos dispositivos de E/S são chamadas de CPU-bound e I/O bound. � CPU-bound (ligado à CPU) � Quando um processo passa a maior parte do tempo no estado de execução ou pronto. Realiza poucas operações de leitura e execução ou pronto. Realiza poucas operações de leitura e gravação. �Ex.: Aplicações Científicas, alguns jogos 3D, aplicações que demandam alta performance de computação � I/O-bound (ligado à E/S) � Quando um processo passa a maior parte do tempo no estado de espera, realizando um elevado número de operações de E/S. �Ex.: Aplicações Comerciais (Editores de Textos, etc.), Msn, Multimídia, etc. Processos CPU-bound e I/O-bound E/S E/S (a) CPU-bound tempo tempo UCP UCP (b) I/O-bound Processos Foreground e Background �Foreground (primeiro plano) � processo que permite a comunicação direta do usuário com o processo durante o seu processamento. � Canal de entrada/saída estão associados a um terminal (teclado, mouse e monitor) permitindo a interação com o usuáriomouse e monitor) permitindo a interação com o usuário Processos Foreground e Background �Background (segundo plano) � É aquele onde não existe a comunicação com o usuário durante seu processamento. Os canais de E/S não estão associados a nenhum dispositivo de E/S interativo � A associação (ligação) de um canal de saída de um processo ao canal de entrada de outro processo é denominada de pipe. Formas de criação de Processos �Logon Interativo � Usuário por meio de um terminal, fornece ao sistema um username e password. � Ao se autenticar, um processo foreground é criado permitindo ao usuário interagir com o SO.usuário interagir com o SO. � O processo também pode ser eliminado interativamente quando o usuário realiza o procedimento de saída do sistema, logout ou logoff. � Via linguagem de comando � Um usuário pode, a partir do seu processo, criar novos processos por intermédio de comandos. Formas de criaç ão de Processos �Via rotina do Sistema Operacional � Um processo pode ser criado a partir de qualquer programa executável com o uso de rotinas do sistema operacional. �Ex.: Programa AVG ao falhar pode executar um novo programa (outro anti-vírus por exemplo)(outro anti-vírus por exemplo) Processos Independentes, Subprocessos e Threads �São maneiras diferentes de implementar a concorrência entre processos proporcionando: � Tempo de espera menor na concorrência �Melhor desempenho � Processos independentes � Simples implementar a concorrência � Não existe vínculo do processo criado com o seu criador � Uma vez criado, um PCB próprio é alocado para o processo �Contexto de Hardware �Contexto de Software �Espaços de Endereçamento Processos Independentes, Subprocessos e Threads �Subprocessos � Processos criados dentro de uma estrutura hierárquica � Processo criador é denominado processo-pai, enquanto o novo processo é chamado de subprocesso ou processo-filho � Subprocessos podem criar novos subprocessos � Detalhes importantes: � Existe uma dependência entre o processo-pai e o processo-filho �Caso o processo-pai deixe de existir, os subprocessos serão automaticamente eliminados �Subprocessos possuem seu próprio PCB, da mesma forma que os processos independentes � Subprocessos podem compartilhar cotas com o processo-pai Processos Independentes, Subprocessos e Threads Processo A Estrutura de processos e subprocessos Processo CProcesso B Processo EProcesso D Processos Independentes, Subprocessos e Threads �Problemas no uso de processos e subprocessos � Demanda consumo de diversos recursos do sistema (CPU, Memória) �Sempre que um novo processo é criado, novos recursos devem ser alocados (contexto de hardware, software e espaço de endereçamento) �Sempre que um processo é eliminado exige-se tempo de CPU também�Sempre que um processo é eliminado exige-se tempo de CPU também � Comunicação entre processos é pouco eficiente � Cada processo possui seu próprio espaço de endereçamento Processos Independentes, Subprocessos e Threads �Threads � Criado para reduzir �Tempo na criação do processo �Tempo na eliminação do processo e troca de contexto � Recursos do sistema operacional� Recursos do sistema operacional � Em um ambiente multithread, um único processo pode suportar múltiplos threads � Threads compartilham o processador da mesma maneira que um processo �Enquanto um thread espera uma operação de E/S, outra pode ser executada na CPU � Cada Thread possui seu próprio contexto de hardware, porém compartilha o mesmo contexto de software e espaço de endereçamento com os demais threads do processo Processos Independentes, Subprocessos e Threads Contexto de hardware Contexto de hardware Contexto de hardware Espaço de endereçamento C o n t e x t o d e s o f t w a r e Thread 3Thread 2Thread 1 Sinais �É um mecanismo que permite notificar processos de eventos gerados pelo sistema operacional ou por outros processos [ctrl-C] interrupção sinal Sistema Operacional � A maior parte dos eventos associados a sinais são gerados pelo SO ou pelo Hardware � Ocorrência de exceções, interrupções geradas por terminais, limites de quotas excedidos e alarmes de tempo [ctrl-C] Processo Hardware Sistema Operacional Interrupções Exceções Sinais Processo Processo
Compartilhar