Sistemas Operacionais Gerência de Processos Dierone C.Foltran Jr. prof.dierone at gmail.com Sistemas Operacionais 1 Introdução • • O que se espera de um sistema de computação? • Execução de programas de usuários • Permitir a solução de problemas Sistema operacional é um programa colocado entre o hardware do computador e os programas dos usuários de forma a atingir esses dois objetivos Programas Sistema Operacional Hardware Sistemas Operacionais 2 Componentes genéricos de um sistema computacional (1) • • • • Hardware • Recursos básicos (memória, dispositivos de E/S, CPU). Sistema operacional • Controla e coordena o uso do hardware entre vários programas aplicativos e usuários. Programas aplicativos e de sistema • Define como os recursos de hardware são empregados na solução de um problema (compiladores, jogos, banco de dados,...) Usuários • Pessoas, máquinas, outros computadores,... Sistemas Operacionais 3 Componentes genéricos de um sistema computacional (2) Usuário 1 Usuário 2 Compilador Editor de texto Usuário 3 ... Browser Usuário n Quake Sistema operacional Hardware Sistemas Operacionais 4 Sistema operacional: conceito • • Sistema operacional • Um programa que controla a execução de programas aplicativos • Interface entre aplicativos e o hardware Duas formas de ver um sistema operacional: • Alocador de recursos • Programa de controle Sistemas Operacionais 5 Objetivos do sistema operacional • • • Tornar mais conveniente a utilização de um computador • “Esconder” detalhes internos de funcionamento Tornar mais eficiente a utilização de um computador • Gerenciamento “justo” dos recursos do sistema Facilitar a evolução do sistema (desenvolvimento, teste e atualização de novas facilidades) Sistemas Operacionais 6 Sistema operacional: interface entre usuário/computador Usuário final Programador Projetista sistema operacional Aplicativos Utilitários Sistema Operacional Hardware Sistemas Operacionais 7 Serviços oferecidos pelo sistema operacional (1) • • • • • Criação de programas • Editores, depuradores, compiladores Execução dos programas • Carga de programas em memória Acesso a dispositivos de E/S Controle de acesso a arquivos Acesso a recursos de sistema • Proteção entre usuários Sistemas Operacionais 8 Serviços oferecidos pelo sistema operacional (2) • • Contabilidade • Estatísticas • Monitoração de desempenho • Sinalizar upgrades necessários hardware (memória, disco, etc) • Tarifação de usuários Detecção de erros • Erros de hardware • e.g.: erros de memória, falha em dispositivos de E/S, etc... • Erros de programação • e.g.: overflow, acesso não autorizado a posições de memória, etc... • Aplicação solicita recursos que o sistema operacional não pode alocar (segurança, falta do recurso, etc) Sistemas Operacionais 9 As diferentes “imagens” de um sistema operacional • • Sistema operacional na visão do usuário: • Imagem que um usuário tem do sistema • Interface oferecida ao usuário para ter acesso a recursos do sistema • Chamadas de sistema • Programas de sistema Sistema operacional na visão de projeto • Organização interna do sistema operacional • Mecanismos empregados para gerenciar recursos do sistema Sistemas Operacionais 10 Chamadas de sistema • • • Forma que programas solicitam serviços ao sistema operacional • Análogo a sub-rotinas • Transferem controle para o sistema operacional invés de transferir para outro ponto do programa É o núcleo (kernel) do sistema operacional que implementa as chamadas de sistema • Existem chamadas de sistema associadas a gerência do processador, de memória, arquivos e de entrada/saída Variação: micro-kernel • Serviços básicos são implementados pelo micro-kernel • kernel implementa demais serviços empregando esses serviços básicos Sistemas Operacionais 11 Programas de sistema • • Programas executados fora do kernel (utilitários) Implementam tarefas básicas: • Muitas vezes confundidos com o próprio sistema operacional • e.g. compiladores, assemblers, ligadores, etc. • Interpretador de comandos • Ativado sempre que o sistema operacional inicia uma sessão de trabalho e.g.: bash, tsch, sh, etc... • Interface gráfico de usuário (GUI) e.g.: Família windows, MacOs, etc... • • Sistemas Operacionais 12 Histórico de sistemas operacionais • Primórdios: • Sistema operacional inexistente • Usuário é o programador e o operador da máquina • Alocação do recurso “computador” feito por planilha • Evolução foi motivada por: • Melhor utilização de recursos • Avanços tecnológicos (novos tipos de hardware) • Adição de novos serviços Sistemas Operacionais 13 Sistemas em lote (batch) • • • Introdução de operadores profissionais • Usuário não era mais o operador da máquina Job • Programa a ser compilado e executado, acompanhado dos dados de execução (cartões perfurados) • Jobs são organizados em lote (batch) • Necessidades semelhantes (e.g. mesmo compilador) Passagem entre diferentes jobs continua sendo manual Sistemas Operacionais 14 Monitor residente • • Evolução: • Sequenciamento automático de jobs, transferindo o controle de um job a outro • Primeiro sistema operacional (rudimentar) Monitor residente: • Programa que fica permanentemente em memória • Execução inicial • Controle é transferido para o job • Cartões de controle • Quando o job termina, o controle retorna ao monitor • Centraliza as rotinas de acesso a periféricos disponibilizando aos programas de usuário Sistemas Operacionais 15 Sistema batch multiprogramados (multitarefa) • • • Monitor residente permite a execução de apenas um programa a cada vez Desperdício de tempo de CPU com operações de E/S Evolução: • Manter diversos programas na memória ao mesmo tempo • Enquanto um programa realiza E/S, outro pode ser executado Multiprogramação Desperdício CPU CPU E/S Requisição E/S Término E/S Requisição E/S tempo Sistemas Operacionais Término E/S tempo 16 Multiprogramação • • Manter mais de um programa em “execução” simultaneamente Duas inovações de hardware possibilitaram o surgimento da multiprogramação • Interrupções • Sinalização de eventos • Discos magnéticos • Acesso randômico a diferentes jobs (programas) no disco • Melhor desempenho em acessos de leitura e escrita Sistemas Operacionais 17 Sistemas timesharing • • • Tipo de multiprogramação Usuários possuem um terminal • Interação com o programa em execução Ilusão de possuir a máquina dedicada a execução de seu programa • Divisão do tempo de processamento entre usuários • Tempo de resposta é importante Sistemas Operacionais 18 Sistemas monousuário e multiusuário • • Sistemas monousuário • Projetados para serem usados por um único usuário • e.g.: MS-DOS, Windows 3.x, Windows 9x, Millenium Sistemas multiusuário • Projetados para suportar várias sessões de usuários em um computador e.g.: Windows NT, UNIX, Linux • Sistemas Operacionais 19 Sistemas multitarefa e monotarefa • Sistemas monotarefa • Capazes de executar apenas uma tarefa de cada vez e.g.: MS-DOS Sistemas multitarefas: • Capazes de executar várias tarefas simultaneamente • Existem dois tipos de sistemas multitarefa: • Não preemptivo (cooperativo) e.g.: Windows 3.x, Windows9x (aplicativos 16 bits) • Preemptivo e.g.: Windows NT, OS/2, UNIX, Windows9x (aplicativos 32 bits) • • • • Sistemas Operacionais 20 Sistemas distribuídos (1) • • Distribuir a realização de uma tarefa entre vários computadores Sistema distribuído: • Conjunto de computadores autônomos interconectados de forma a possibilitar a execução de um serviço • Existência de várias máquinas é transparente • Software fornece uma visão única do sistema • Palavra-chave: transparência « A distributed system is one in which the failure of a computer you didn’t even know existed can render your own computer unusable » Leslie Lamport. Sistemas Operacionais 21 Sistemas distribuídos (2) • • Sistemas fracamente acoplados (loosely coupled system) • Máquinas independentes • Cada máquina possui seu próprio sistema operacional • Comunicação é feita através de troca de mensagens entre processos Vantagens • Compartilhamento de recursos • Balanceamento de carga • Aumento da confiabilidade Sistemas Operacionais 22 Sistemas paralelos (1) • • • Máquinas multiprocessadoras possuem mais de um processador Sistemas fortemente acoplados (tightly coupled system) • Processadores compartilham mémoria e relógio comuns • Comunicação é realizada através da memória Vantagens: • Aumento de throughput (número de processos executados) • Aspectos econômicos • Aumento de confiabilidade • Graceful degradation • Sistemas fail-soft Sistemas Operacionais 23 Sistemas paralelos (2) • • Symmetric multiprocessing (SMP) • Cada processador executa uma cópia idêntica do sistema operacional • Vários processos podem ser executados em paralelo sem perda de desempenho para o sistema • A maioria dos sistemas operacionais atuais suportam SMP através do conceito de multithreading Asymmetric multiprocessing • Cada processador executa uma tarefa específica: • e.g.: processador mestre para alocação de tarefas a escravos Sistemas Operacionais 24 Sistemas de tempo real • • • Empregado para o controle de procedimentos que devem responder dentro de um certo intervalo de tempo • e.g.: experimentos científicos, tratamento de imagens médicas, controle de processos, etc. Noção de tempo real é dependente da aplicação • Milisegundos, minuto, horas, etc. Dois tipos: • Hard real time • Tarefas críticas são completadas dentro de um intervalo de tempo • Soft real time • Tarefa crítica tem maior prioridade que as demais Sistemas Operacionais 25 Leituras complementares • • • R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. Editora Bookman, 2010. • Capítulo 1 A. Silberchatz, P. Galvin, P. Gagne; Applied Operating System Concepts. Addison-Wesley, 2000, (1a edição). • Capítulo 1 W. Stallings; Operating Systems. (4th edition). Prentice Hall, 2001. • Capítulo 2 Sistemas Operacionais 26 Multiprogramação • • • Tornar mais eficiente o aproveitamento dos recursos do computador Execução simultânea* de vários programas • Diversos programas são mantidos na memória • Conceitos necessários à multiprogramação • Processo • Interrupção • Proteção entre processos Próprio sistema operacional é um programa Sistemas Operacionais 27 O conceito de processo (1) • • • Diferenciação entre o programa e sua execução Programa: • Entidade estática e permanente • Sequência de instruções • Passivo sob o ponto de vista do sistema operacional Processo: • Entidade dinâmica e efêmera • Altera seu estado a medida que avança sua execução • Composto por programa (código), dados e contexto (valores) Sistemas Operacionais 28 O conceito de processo (2) • • • • Abstração que representa um programa em execução Diferentes instâncias • Um programa pode ter várias instâncias em execução, i.e., diferentes processos • Mesmo código (programa) porém dados e momentos de execução (contexto) diferentes Forma pela qual o sistema operacional “enxerga” um programa e possibilita sua execução Processos executam: • Programas de usuários • Programas do próprio sistema operacional (daemons) Sistemas Operacionais 29 Ciclos de vida de um processo • • • Criação Execução Término Sistemas Operacionais 30 Ciclos de vida de um processo: criação • • • • Momento da execução Chamadas de sistemas • e.g.: fork, spawn, etc. Podem ser associados a uma sessão de trabalho • e.g.: login de usuários: login + senha shell (processo) Identificado por um número único (PID) Sistemas Operacionais 31 Ciclos de vida de um processo: execução (1) • • Processos apresentam dois ciclos básicos de operação • Ciclo de processador • Tempo que ocupa a CPU • Ciclo de entrada e saída • Tempo em espera pela conclusão de um evento (e.g. E/S) Primeiro ciclo é sempre de processador • Trocas de ciclos por: • CPU E/S: chamada de sistema • E/S CPU: ocorrência de evento (interrupção) Sistemas Operacionais 32 Ciclos de vida de um processo: execução (2) • • • Processos • CPU bound • Ciclo de processador >> ciclo de E/S • I/O bound • Ciclo de E/S >> ciclo de processador Sem quantificação exata Situação ideal: • Misturar processos CPU bound com I/O bound • Benefícios a nível de escalonamento Sistemas Operacionais 33 Ciclos de vida de um processo: término • • • • Final de execução (normal) Por erros • e.g.: 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 Sistemas Operacionais 34 Relacionamento entre processos (1) • • Processos independentes • Não apresentam relacionamentos com outros processos Grupo de processos • Apresentam algum tipo de relacionamento • e.g. filiação • Podem compartilhar recursos • Definição de hierarquia Sistemas Operacionais 35 Relacionamento entre processos (2) • • • Hierarquia de processos: • Processo criador é processo pai • Processo criado é processo filho Representação através de uma árvore • Evolução dinâmica Semântica associada: O que fazer na destruição de um processo? • Toda a descendência “morre” • A descendência é herdada pelo processo “vô” • Postergar a destruição efetiva do processo pai até o final de todos processos filhos Sistemas Operacionais 36 Estados de um processo • • • Após criado o processo necessita entrar em ciclo de processador Hipotéses: • Processador não está disponível • Vários processos sendo criados Que fazer? • Criação de uma fila de aptos (p/ espera pelo processador) Sistemas Operacionais 37 Modelo simplificado a 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 aptos • Pode prevenir um único processo de monopolizar o processador Dispatcher Criação Apto Executando Término Pausa Sistemas Operacionais 38 Limitação do modelo simplificado • • Causas para um processo não executar • Esperando pelo processador • Aptos para executar • Esperando pela ocorrência de eventos externos • Bloqueado Escalonador não pode selecionar um processo bloqueado, logo modelo a dois estados não é suficiente • Criação de novos estados Sistemas Operacionais 39 Modelo de 5 estados (1) • • • • • Executando (Running) Apto (Ready) Bloqueado (Blocked) Criação (New) Destruição (Exit) Sistemas Operacionais 40 Modelo a 5 estados (2) • Necessidade de filas Seleção Apto Criação Término Executando Destruição Tempo/ voluntário Ocorrência de evento (interrupçao) Chamada de sistema Bloqueado Sistemas Operacionais 41 Processos suspensos • • • • Processador é mais rápido que operações de E/S • Possibilidade de todos processos estarem bloqueados esperando por E/S Liberar memória ocupada por estes processos • Transferidos para o disco (swap) Estado bloqueado assume duas situações: • Bloqueado com processo em memória • Bloqueado com processo no disco Necessidade de novos estados • Bloqueado, suspenso (Blocked, suspend) • Apto, suspenso (Ready, suspend) Sistemas Operacionais 42 Razões para suspender um processo • • • • Swapping: • SO necessita liberar memória para executar um novo processo Solicitação do usuário • Comportamento típico de depuradores Temporização: • Processo deve ter sua execução interrompida por um certo período de tempo Processo suspender outro processo • e.g. sincronização Sistemas Operacionais 43 Diagrama de estados de processos Criação Admissão Apto, suspenso Admissão Executando Apto Destruição Tempo/ voluntário Evento (ocorr.) Event (ocorr.) Sistemas Operacionais Seleção Ativo Suspenso Bloqueado, suspenso Suspenso Evento (espera) Ativo Bloqueado 44 Suporte de hardware à multiprogramação • • • O compartilhamento de recursos comuns implica em garantir que a execução incorreta de um programa não influencie a execução de outro programa A implementação da multiprogramação explora características do hardware dos processadores Mecanismos básicos: • Dois modos de operação • Interrupção • Proteção de periféricos, memória e processador Sistemas Operacionais 45 Modos de operação do processador • • Arquitetura de processadores oferecem mecanismos para diferenciar pelo menos dois modos diferentes de operação • Modo supervisor (privilegiado/protegido) • Possibilita a execução de todas as instruções do processador • Modo de execução sistema operacional • Modo usuário • Certas instruções (privilegiadas) não podem ser executadas • Modo de execução dos processos usuários Chaveamento de modos: • Interrupção (modo usuário modo protegido) • Instrução (modo protegido modo usuário) Sistemas Operacionais 46 Mecanismo de interrupção (1) • • • 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 • Prepara a transferência de controle para o tratador (salvamento do contexto de execução) • Desvia controle para tratador • Retorna execução (restaura contexto de execução) Sistemas Operacionais 47 Mecanismo de interrupção (2) • • • • Tipos de interrupção • Hardware: ocorrência de evento externo • Software: execução de uma instrução específica • Exceção: erros de execução (overflow, undeflow...) Identificadas por um número • Vetor de interrupção Prioridades Instruções privilegiadas Sistemas Operacionais 48 Proteção de periféricos • • Instruções de E/S são privilegiadas Como processos usuários realizam operações de E/S já que estas são instruções privilegiadas? • Chamadas de sistema Sistema Operacional Modo protegido Sistemas Operacionais Interrupção de software Instrução retorno Processo usuário Modo usuário 49 Chamada de sistema • Método empregado para um processo usuário solicitar serviços ao sistema operacional. • Normalmente baseada em interrupções de software (traps) • Aciona a rotina de tratamento de interrupção • Identifica serviço requisitado • Verifica validade dos parâmetros • Executa o serviço • Retorna ao processo do usuário Sistemas Operacionais 50 Proteção de memória (1) • • • • Necessário para evitar que usuário corrompa espaços de memória nãopertencentes a seus processos Baseado em facilidades da arquitetura do processador: • Registrador de base • Registrador de limite Faixa de endereçamento fora da área delimitada pelos registradores base e limite é protegida Possível proteger dispositivos de E/S quando a técnica E/S mapeada em memória é empregada Sistemas Operacionais 51 Proteção de memória (2) Reg. de base Usuário 3 Reg. de limite Usuário 2 CPU End. V F Sistemas Operacionais Interrupção (acesso ilegal) V Usuário 1 F Sistema operacional memória 52 Proteção do processador • • • Para garantir a execução do sistema operacional uma interrupção de tempo (timer) ocorre periodicamente Interrupção de tempo: • Empregada para implementar multiprogramação • Mantém contabilização de tempo para o sistema operacional (relógio) Instruções relacionadas com a programação do tempo são privilegiadas Sistemas Operacionais 53 Leituras complementares • • R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. Editora Bookman, 2010. • Capítulo 2. A. Silberchatz, P. Galvin Operating System Concepts. 4th edition. Addison-Wesley. • Seções 2.1, 2.2, 2.5, 4.1, 4.2 e 4.300 Sistemas Operacionais 54