Por que a multiprogramação torna mais eficiente o aproveitamento dos recursos do computador?

Grátis

29 pág.

Por que a multiprogramação torna mais eficiente o aproveitamento dos recursos do computador?

  • Denunciar


Pré-visualização | Página 1 de 2

Capí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.