Baixe o app para aproveitar ainda mais
Prévia do material em texto
Multiprogramação Sistemas Operacionais | Prof. Antonio Junior 2019.1 Multiprogramação • Tem por objetivos tornar o uso dos recursos mais eficiente • Baseia-se em concorrência para manter vários programas em execução • Cada programa possui seu espaço em memória • O Sistema Operacional é um programa (gerenciador) • Processos • Interrupções • Proteções entre processos Processos • O que é um processo? • Seria um programa em execução? Processos • O que é um processo? • Seria um programa em execução? • Programa: Entidade estática e permanente • Sequência de instruções • Age de forma passiva em frente ao SO • Processo: Entidade dinâmica • Altera seu estado durante a execução • Basicamente trata-se do programa (código), dados e contexto (valores) Processos • Processo é uma abstração que representa um programa em execução • Várias instâncias de um programa, refletem em diferentes processos, um código igual porém em tempos e estados diferentes • O SO visualiza um programa na forma de um processo permitindo sua execução • Programas de usuário • Programas do próprio SO (daemons) Processos Um processo possui seu próprio espaço de endereçamento • Região de texto – armazena o código • Região de dados – armazena as variáveis e memória alocada dinamicamente (Heap) • Região de pilha – armazena instruções e variáveis locais para as chamadas ativas Processos pilha heap dados texto Processos • Por que o espaço de endereço de um processo é dividido em várias regiões? • Os termos processo e programa são sinônimos? Processos • Por que o espaço de endereço de um processo é dividido em várias regiões? • Separar o endereçamento de um processo permite que o SO gerencie as regras de acesso as regiões, exemplo, um processo lê e executa instruções mas nunca modifica as instruções, lê e escreve dados em qualquer ordem mas sobre a pilha o “último a entrar, primeiro a sair” • Os termos processo e programa são sinônimos? • Falso, processo é um programa em execução; programa é uma entidade inanimada, estática Processos – Ciclo de vida • SO deve garantir que cada processo receba uma parcela de tempo de processador • Teoricamente o número de processos em execução é igual ao número de processadores • No entanto, em geral, existe um número muito maior de processos do que de processadores • Logo, em qualquer instante de tempo alguns processos estão em execução e outros não • DIFERENTES ESTADOS!!! Processos – Ciclo de vida • Criação – momento da criação (Novo): • fork, spawn • Associados a uma sessão de usuário • É criado um identificador único, PID (Process Identification Number) • Execução – pós criação • Pronto, em execução e em espera • Término – encerramento • Finalização do programa (normal) • Por erros: proteção, aritméticos, E/S, instruções inválidas, falta de memória, exceder o tempo limite • Intervenção de outros processos (kill) • Log off de usuário Processos – Ciclo de vida • Estado de pronto – está pronto para execução mas não há um processador disponível • Estado de execução – está executando em um processador • Estado de bloqueado – está esperando que algum evento ocorra, ex. E/S Processos – Ciclo de vida Pronto Em execução Em espera Novo encerrado admitido Conclusão de evento ou E/S Espera por evento ou E/S Despacho do scheduler interrupção saída Processos – Ciclo de vida • Ciclos de processador • Tempo que ocupa o processador • Ciclos de E/S • Tempo que espera pela conclusão de um evento (E/S) • O primeiro ciclo sempre é de processador • CPU -> E/S : chamada de sistema • E/S -> CPU: ocorrência de evento (interrupção) Processos – Bloco de controle • Cada processo é representado por um bloco de controle: • PCB – Process Control Block • Bloco de controle de tarefa Estado do processo registradores Limite de memória Lista de arquivos abertos Número do processo Contador do programa .... Processos – Bloco de controle • Estado do processo • Número do processo PID • Contador do programa: indica o endereço da próxima instrução a ser executada pelo processo • Registradores: variam em número e tipo, dependendo da arquitetura (acumuladores, contadores, registradores de índice, de uso geral...), caso ocorra alguma interrupção essas informações e o contador do programa devem ser salvas • Limites de memória: valores dos registradores base e limite, tabelas de páginas ou segmentos • Lista de arquivos: incluem dispositivos de E/S alocados para o processo e uma lista de arquivos abertos Estado do processo registradores Limite de memória Lista de arquivos abertos Número do processo Contador do programa .... Processos – Bloco de controle • Para que serve o bloco de controle do processo (PCB)? • Quais as informações armazenadas e qual a justificativa para cada uma das informações? Processos – Bloco de controle Processo 0 Processo 1 SO Salva estado no PCB 0 recarrega estado do PCB 1 salva estado no PCB 1 recarrega estado no PCB 1 ocioso ocioso ocioso Em execução Em execução Em execução Interrupções ou chamadas de sistema Processos - Escalonamento • Escalonador de processos – Process Scheduler • Seleciona um processo disponível, a partir de um conjunto de processos, para execução do programa na CPU • Filas de escalonamento • Fila de Jobs (job queue), contem todos os processos do sistema • Fila de prontos (read queue), contem os processos que estão prontos para execução • Lista encadeada • Contém ponteiros para o primeiro e o último PCB na lista • Cada PCB aponta para o próximo Processos - Escalonamento Fila de prontos Fila de E/S Solicitacao de E/S Período de tempo expirou Espera uma interrupção Gera um filho E/S Filho executa Ocorre interrupção CPU Processos - Escalonadores Escalonador de longo prazo ou scheduler de jobs: • Carrega processos mantidos em spool (disco) para a memória para serem executados • Controla o grau de multiprogramação, ou seja, a quantidade de processos na memória Escalonador de curto prazo ou scheduler da CPU: • Seleciona entre processos que estão prontos para serem executados • Normalmente executa 1 vez a cada 100 milissegundos • Se ele levar 10 milissegundos para escolher um processo que irá executar por 100 milissegundos: • 10/(100+10)=9 por cento da CPU foi desperdiçado simplesmente nessa escolha Processos – tipos • CPU Bound • Ciclo de processador > ciclo de E/S • I/O Bound • Ciclo de E/S > ciclo de processador • Ideal é manter uma média entre os dois tipos • Benefícios a nível de escalonamento Processos – Relacionamento • Processos independentes • Não apresentam relacionamentos com outros processos • Grupos de processos (cooperativos) • Podem compartilhar recursos • Definição de hierarquia • Hierarquia • O processo criador é o processo pai, o processo criado é o filho • Representação normalmente na forma de árvore • Evolução dinâmica Processos – Relacionamento • Da criação: • O pai continua a ser executar concorrentemente com seus filhos • O pai espera até alguns dos filhos ou todos serem encerrados • Do espaço de endereço: • O filho é uma duplicata do processo pai (mesmoprograma e dados) • O processo filho tem um novo programa carregado nele Processos – Relacionamento • Do encerramento: • Toda 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 (encerramento em cascata) Processos – Comunicação • Comunicação entre processos (IPC): • Memória compartilhada • Transmissão de mensagens Processos – Comunicação • Memória compartilhada • Uma variável é escrita por um processo e lida por outros • Precisa de sincronização para evitar leituras no meio de uma escrita • Só funciona no mesmo computador Processo A Processo B kernel compartilhada .... 1 1 Processos – Comunicação • Troca de mensagens • Uma mensagem explícita é enviada por um processo e recebida por outro • Chamadas send/receive • Sincronização é implícita, mas o custo é maior • Funciona também em máquinas conectadas por rede Processo A Processo B kernel M .... M M 1 2 Multiprogramação - Hardware • O compartilhamento de recursos implica em garantir que a execução incorreta de um programa não interfira na execução de outros • Para garantir isso a multiprogramação baseia-se em recursos de hardware dos processadores: • Dois modos de operação • Interrupção • Proteção de periféricos, memória e processador Multiprogramação - Hardware • Modo supervisor (privilegiado/protegido) • Possibilita a execução de todas as instruções do processador • Modo de execução do SO • Modo usuário • Certas instruções (privilegiadas) não podem ser executadas • Modo de execução dos processos de usuário • Chaveamento • Interrupção (modo usuário -> modo protegido) • Instrução (modo protegido -> modo usuário) Multiprogramação - Hardware Modo usuário Modo Sistema Execução Evento Multiprogramação - Interrupção • Um mecanismo de interrupções é utilizados para sinalizar um evento: • Tratador de interrupções • 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) Multiprogramação - Interrupção • 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 Multiprogramação - Periféricos • Toda instrução de E/S é privilegida • Para o processo do usuário realizar uma E/S ele precisa realizar uma chamada de sistema Sistema Operacional Instrução retorno Interrupção de software Processo usuário Modo protegido Modo usuário Multiprogramação - Periféricos • Chamada de sistema: • 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 Multiprogramação - Memória • Os mecanismos de proteção de memória evitam que usuários corrompam espaços de memória que não pertençam a seus processos: • Registradores de base • Registradores de limite • Toda faixa de memória fora da base e do limite são automaticamente protegidos • É possível proteger dispositivos de E/S quando essa ocorre mapeada sobre a memória Multiprogramação - Memória V V F F Interrupção (acesso ilegal) memória CPU End. Sistema operacional Usuário 1 Usuário 2 Usuário 3 Reg. de limite Reg. de base Multiprogramação - Processador • Interrupção de Tempo • Mantém a contabilização de tempo para o SO (relógio) • Toda instrução que está relacionada a programação do tempo é privilegiada Referências • 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 • Slides Professor Anderson Pinheiro
Compartilhar