Buscar

Multiprogramação em Sistemas Operacionais

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 39 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 39 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 39 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Continue navegando