Grátis 29 pág.
Pré-visualização | Página 1 de 2Capítulo 2 2a edição Revisão: Fev/2003 Sistemas Operacionais Rômulo Silva de Oliveira Alexandre da Silva Carissimi Simão Sirineo Toscani 11 Sistemas Operacionais 2 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 3 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 4 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 5 Ciclos de vida de um processo • Criação • Execução • Término Sistemas Operacionais 6 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 7 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 8 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 9 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 10 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 11 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 12 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 13 Apto Executando Criação Dispatcher Pausa Término 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 Sistemas Operacionais 14 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 15 Modelo de 5 estados (1) • Executando (Running) • Apto (Ready) • Bloqueado (Blocked) • Criação (New) • Destruição (Exit) Sistemas Operacionais 16 Criação Apto Executando Destruição Bloqueado Ocorrência de evento (interrupçao) Seleção Término Tempo/ voluntário Chamada de sistema Modelo a 5 estados (2) • Necessidade de filas Sistemas Operacionais 17 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 18 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 19 Criação Admissão Admissão Suspenso Seleção Tempo/ voluntário Apto, suspenso Apto Bloqueado Bloqueado, suspenso Event (ocorr.) Ativo Evento (ocorr.) Ativo Suspenso Executando Destruição Evento (espera) Diagrama de estados de processos Sistemas Operacionais 20 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 21 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 22 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 23 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 24 Proteção Página12 Como a multiprogramação aumenta a utilização da CPU?A multiprogramação aumenta a utilização da CPU organizando os jobs (código e dados) prontos para serem executados, de modo que a CPU tenha sempre um deles para executar, não ficando ociosa.
Qual é o objetivo da multiprogramação?Vários programas competem pelos recursos do sistema. Multiprogramação (cont.) O objetivo é manter mais de um programa em execução “simultaneamente”, dando a ilusão de que cada programa/usuário tem a máquina dedicada para si.
O que é a multiprogramação?Multitarefa (Multiprogramado) – mais de um programa na memória em execução. Exige técnicas de multiprogramação. As tarefas são executadas em ordem de chegada, mas pode não ser completada.
Por que a execução de um sistema operacional em um sistema computacional proporciona o acesso eficiente aos recursos do hardware?R: Porque em sistemas monoprogramáveis somente é possível a execução de um programa por vez, Como um programa não utiliza todos os recursos do sistema totalmente ao longo da sua execução, existe ociosidade e, consequentemente, subutilização de alguns recursos.
|