Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Sistemas Operacionais – Aula 1 * Sistemas Operacionais Multiprogramação Aula 2 Profª. Me. Eduarda Rodrigues Monteiro Faculdade de Desenvolvimento do Rio Grande do Sul Curso de Análise e Desenvolvimentos de Sistemas Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Sumário Revisão da aula passada Histórico dos Sistemas Operacionais Multiprogramação Interrupção Processo Bibliografia * Sistemas Operacionais – Profª. Eduarda Monteiro Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Revisão da aula passada... Histórico dos Sistemas Operacionais 1ª Geração: Hardware: válvulas Equipe: programador – técnico – projetista Um programa / um usuário por vez 2ª Geração: Transistores Separação de funções dentro da equipe - sistemas em Lotes Jobs: programa entregue para o técnico executar Fluxo de execução do programa (carregar, ler, codificar cartão, executar, imprimir....) Monitor Residente * Sistemas Operacionais – Profª. Eduarda Monteiro Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Revisão da aula passada... * Sistemas Operacionais – Profª. Eduarda Monteiro Histórico dos Sistemas Operacionais 3ª Geração: Circuitos integrados – multiprogramação Multiprogramação: múltiplos programas executados ao mesmo tempo. O que permite a multiprogramação? Discos – armazenamento Interrupções 4ª Geração: Circuitos integrados em grande escala (vários transistores...) Miniaturização dos componentes – queda nos preços Surgimento de computadores pessoais Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação Torna os recursos do sistema mais eficientes Permitir a execução simultânea* de vários programas: Diversos programas são mantidos na memória Avanço da tecnologia permitiu a multiprogramação: Interrupções: sinalização de eventos para o sistema Discos magnéticos: acesso aleatório a diferentes jobs (programas) O sistema operacional é um programa? Conceitos necessários à multiprogramação: Processos Interrupção Threads * Sistemas Operacionais – Profª. Eduarda Monteiro Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Processo Principal conceito de Sistemas Operacionais Conceito surgiu junto com a multiprogramação Junto com a necessidade de executar mais de um programa simultaneamente Um programa em execução envolve: 2 segmentos (separados, por que ?) gerados pelo compilador Instruções Dados ... E área de memória onde será alocado Como um processo é representado dentro do “programa” Sistema Operacional? Através de um registro, denominado Registro Descritor/Bloco Descritor, entre outros.... * Sistemas Operacionais – Profª. Eduarda Monteiro Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Processo Registro Descritor de Processo: Alguns componentes: Prioridade do processo no sistema Identificador do processo (PID) Localização Memória principal ocupada Estado do processo: apto, executando, bloqueado Dito isso, o que é um processo? “Um processo é um programa em execução, o qual é constituído por uma sequência de instruções, um conjunto de dados e um registro descritor de processo.” – Toscani, et. al. * Sistemas Operacionais – Profª. Eduarda Monteiro Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Processo Abstração que representa um programa em execução Forma como o SO “enxerga” um programa e possibilita sua execução Um programa é um conjunto de instruções Possui uma linha de execução das instruções (Program Counter – PC) Instruções são executadas sequencialmente Podem se comunicar: memória compartilhada, troca de mensagens * Sistemas Operacionais – Profª. Eduarda Monteiro Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Processo Mas qual a diferença entre um programa e um processo? Tipos de processos: Processos de usuário Processos do próprio sistema operacional * Sistemas Operacionais – Profª. Eduarda Monteiro Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Chamada de Sistema Chamada de sistema: Os programas solicitam serviços ao sistema operacional através das chamadas de sistemas As chamadas de sistemas transferem a execução do processo para o sistema operacional Chamadas de sistemas variam entre os sistemas operacionais A maioria dos sistemas operacionais tem chamadas de sistema que desempenham as mesmas funções, diferindo apenas em detalhes * Sistemas Operacionais – Profª. Eduarda Monteiro Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Interrupção Viabilizou a multiprogramação Conceito importante para o entendimento do funcionamento e organização de um SO Forma de sinalização de eventos ao sistema “Forças” que movimentam e direcionam o SO Analogia: interrupções x telefone * Sistemas Operacionais – Profª. Eduarda Monteiro Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Interrupção O que acontece com o sistema quando ocorre uma interrupção? O sistema desvia sua execução para uma rotina específica que é responsável por atender a interrupção Essa rotina específica é chamada de: Tratador de interrupção Quando tratador termina, a execução volta para rotina interrompida sem que perceba que foi interrompida Podem ser geradas por: Hardware ou Software * Sistemas Operacionais – Profª. Eduarda Monteiro Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Interrupção Interrupção de Hardware É originada de algum dispositivo físico (disco, impressora, teclado, etc) O que acontece quando ocorre uma interrupção em nível de hardware? * Sistemas Operacionais – Profª. Eduarda Monteiro A CPU suspende a atividade que está executando (guardando as informações necessárias para que depois possa retomar a sua execução) 2. e passa a executar uma rotina específica (tratador de interrupções) que trata da interrupção que ocorreu. Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Interrupção Interrupção de Software É originada por uma instrução especial (contidas em programas de usuário) Pode ser denominada de Chamada de Sistema O que acontece quando ocorre uma interrupção em nível de software? Mesmos passos da interrupção por hardware * Sistemas Operacionais – Profª. Eduarda Monteiro Execução do programa corrente é suspenso Informações salvas Execução de rotina específica para tratamento da interrupção Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Interrupção Qual a principal diferença de uma chamada de sistema e de uma interrupção por hardware? Chamada de sistema: os eventos que irão ocorrer podem ser previstos. Dado o programa do usuário e seus dados se pode saber quando as interrupções irão ocorrer. Interrupção de Hardware: eventos totalmente imprevisíveis. Interrupções originadas por periféricos não tem como saber previamente quando irão ocorrer. Vídeo: https://www.youtube.com/watch?v=nt0P8ZAYuUo * Sistemas Operacionais – Profª. Eduarda Monteiro Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Processo Ciclo de vida de um processo Criação Execução Término * Sistemas Operacionais – Profª. Eduarda Monteiro Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Processo Ciclo de vida de um processo Criação Ocorre no momento da execução Sinalização: chamada de sistema Identificação: PID Exemplos: Podem ser associados a uma sessão de trabalho Fornece usuário e senha Sistema operacional valida os dados de autenticação Cria um processo para atender o usuário que logou Quando usuário “desloga”, processo associado a sessão de trabalho é destruído * Sistemas Operacionais – Profª. Eduarda Monteiro Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Processo Ciclo de vida de um processo Execução Processos apresentam dois ciclos básicos de operação: Ciclo de processador Tempo que ocupa a CPU Ciclo de E/S Tempo em espera pela conclusão de um evento (ex: E/S) Qual é o primeiro ciclo? É sempre o do processador * Sistemas Operacionais – Profª. Eduarda Monteiro Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Processo Ciclo de vida de um processo Execução Quando trocam de ciclo: CPU E/S: Solicitação de E/S Ou seja: Realiza uma chamada de sistema para solicitar E/S. Através de uma interrupção de software E/S CPU: Na resposta da E/S Dispositivo sinaliza evento (conclusão da chamada de sistema) * Sistemas Operacionais – Profª. Eduarda Monteiro Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Processo * Sistemas Operacionais – Profª. Eduarda Monteiro Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Processo Ciclo de vida de um processo Execução Classificação dos processos O processo que representaria a cópia de um arquivo é um processo de que tipo? CPU Bound E se todos os processos fossem CPU bound? O que aconteceria? I/O Bound E se todos os processos fossem I/O bound? O que aconteceria? * Sistemas Operacionais – Profª. Eduarda Monteiro O gargalo do sistema seria o processador. O processador ficaria inoperante enquanto todos os processos tentam acessar os periféricos. Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Processo Ciclo de vida de um processo Execução Classificação dos processos: Então qual a situação ideal? Misturar os dois tipos de processos CPU bound com IO bound para melhor aproveitamento dos recursos físicos Enquanto um processo está realizando operações referente a E/S o outro está utilizando a CPU Benefícios a nível de escalonamento * Sistemas Operacionais – Profª. Eduarda Monteiro Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Processo Ciclo de vida de um processo Término Os processo podem terminar suas execuções por diferentes razões: Final do algoritmo (normal) Por erros: proteção, 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 – Profª. Eduarda Monteiro Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Processo Relacionamento entre processos Em geral os processos são independentes: Não apresentam relacionamentos com outros processos. Mas ... grupos de processo podem existir Relacionamento Hierarquia Relação de filiação Podem compartilhar recursos * Sistemas Operacionais – Profª. Eduarda Monteiro Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Processo Relacionamento entre processos Hierarquia de Processos: Processo criador: pai Processo criado: filho * Sistemas Operacionais – Profª. Eduarda Monteiro O que fazer se um processo for destruído? Existem 3 opções. Quem cria o processo pai? Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Processo Estados de um processo Após um processo ser criado Necessidade: entrar em “Ciclo Processador” Precisa utilizar a CPU Cenário Tradicional: Como alocar os vários processos em única Unidade Central de Processamento (CPU)? Quais as possíveis hipóteses? Vários processos estão sendo criados ao mesmo tempo Uma vez alocado, o processador não estará disponível aos demais processos * Sistemas Operacionais – Profª. Eduarda Monteiro Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Processo Estados de um processo O que fazer? Criar uma fila de processos “aptos” Consiste em: Processos prontos para serem executados e estão esperando pela disponibilidade do processador Estrutura de Dados – Fila: * Sistemas Operacionais – Profª. Eduarda Monteiro Convencional Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Processo Estados de um processo Estado Apto Processo que está pronto para ser executado Estado Executando: Processo que está sendo executado Estado Bloqueado: Processo que realiza uma chamada de sistema durante a sua execução e fica bloqueado até que a chamada termine. * Sistemas Operacionais – Profª. Eduarda Monteiro Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Processo * Sistemas Operacionais – Profª. Eduarda Monteiro Modelos de Operação de Processos Modelo simplificado a dois estados Elementos do Modelo Fila de Aptos Local onde os processos ficam esperando a vez de utilizar a CPU Estado Aptos Em Execução na CPU Um processo ocupa a CPU Estado Executando Escalonador (dispatcher) Responsável pelas transições de estado Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Processo * Sistemas Operacionais – Profª. Eduarda Monteiro Modelos de Operação de Processos Modelo simplificado a dois estados CPU Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Processo Modelos de Operação de Processos Modelo simplificado a dois estados Elementos do Modelo Escalonador: Responsável pelas transições de estado Aloca a CPU para um processo da fila de aptos Responsável pela justiça de uso da CPU Previne a monopolização da CPU por um processo O que acontece quando um processo está utilizando o processador há muito tempo? Ele volta para o fim da fila de processos aptos Um novo processo ganha o processador * Sistemas Operacionais – Profª. Eduarda Monteiro Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Processo Modelos de Operação de Processos Modelo simplificado a dois estados Problemas Não diferencia as causas do processo não estar executando Processo esperando pela CPU: apto a executar na fila de Aptos Processo esperando E/S: processo está esperando o retorno de um periférico (bloqueado) Escalonador não pode selecionar um processo bloqueado Modelo de dois processos não é suficiente Criação de novos estados * Sistemas Operacionais – Profª. Eduarda Monteiro Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Processo Modelos de Operação de Processos Modelo de 5 estados Executando Idêntico ao de 2 estados Apto Idêntico ao de 2 estados Bloqueado Esperando por E/S Novo Processos recém criados Esperando para entrar na lista de aptos Terminado Esperando pela destruição final Hierarquia... * Sistemas Operacionais – Profª. Eduarda Monteiro Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Processo Modelos de Operação de Processos Modelo de 5 estados * Sistemas Operacionais – Profª. Eduarda Monteiro Criação Apto Executando Destruição Bloqueado Interrupção: Chamada de Sistema Seleção Término Sinaliza ao SO que o processo necessita realizar uma operação E/S Sinaliza ao sistema o término de uma operação E/S Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Processo Modelos de Operação de Processos Modelo de 5 estados * Sistemas Operacionais – Profª. Eduarda Monteiro Criação Apto Executando Destruição Bloqueado Interrupção: Chamada de Sistema Seleção Término Sinaliza ao SO que o processo necessita realizar uma operação E/S Sinaliza ao sistema o término de uma operação E/S E se um erro ocorrer durante a execução da operação de E/S? Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Processo Modelos de Operação de Processos Modelo de 5 estados * Sistemas Operacionais – Profª. Eduarda Monteiro Criação Apto Executando Destruição Bloqueado Interrupção: Chamada de Sistema Seleção Término Sinaliza ao sistema o término de uma operação E/S Erro 1. E se chamada de sistema for rápida? 2. Processo não fica bloqueado? 3. Processo volta para fila de aptos? Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Processo Modelos de Operação de Processos Modelo de 5 estados * Sistemas Operacionais – Profª. Eduarda Monteiro Criação Apto Executando Destruição Bloqueado Interrupção Chamada de Sistema Seleção Término Erro Retorno Imediato Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Processo Modelos de Operação de Processos Modelo de 5 estados: Problema: Desperdício de Memória Processos bloqueados (esperam por E/S) Não podem ser executados E ocupam memória Processos inativos Não executam nada útil Aguardam por alguma atividade E TAMBÉM ocupam memória * Sistemas Operacionais – Profª. Eduarda Monteiro Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Processo Modelos de Operação de Processos Possíveis soluções Liberar memória Fazendo uma cópia destes processos ‘suspensos’ para o disco Este procedimento é chamado de Swap Necessidade de novos estados Processos aptos, na memória Processos aptos, no disco Processos bloqueados, na memória Processos bloqueados, no disco Os processos que estão no disco são chamados de processos suspensos * Sistemas Operacionais – Profª. Eduarda Monteiro Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Processo Modelos de Operação de Processos Novo diagrama de estados * Sistemas Operacionais – Profª. Eduarda Monteiro Novo Criar Suspender Executar Parar Apto, suspenso Apto Bloqueado Bloqueado, suspenso Evento Ativar Suspender Executando Terminado Erro Criar Evento Destruir Ativar Suspender Retorno Imediato Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Processo Modelos de Operação de Processos Outras causas para suspender um processo Swapping SO precisa liberar memória para carregar um novo processo Solicitação de usuário Procedimento usado por depuradores Temporização Interrupção da execução por um determinado tempo (o processo está temporizando uma ação) Processo suspende outro processo Um processo suspende o outro, para sincronização entre os processos * Sistemas Operacionais – Profª. Eduarda Monteiro Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Processo Proteção entre processos Na multiprogramação, diversos processos compartilham o computador Questões Um processo pode acessar dados de outro processo? Em que condições? Um processo de usuário pode formatar o disco? Um processo pode utilizar o processador infinitamente? Necessidade de proteção entre os processos Garantia de utilização correta * Sistemas Operacionais – Profª. Eduarda Monteiro Quem implementa esta proteção? O Sistema Operacional Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Processo Proteção entre processos A implementação da multiprogramação explora características do hardware dos processadores Se fosse explorar somente Software o sistema seria facilmente burlado Mecanismos básicos Modos de operação Proteção de periféricos, memória e processador * Sistemas Operacionais – Profª. Eduarda Monteiro Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Processo Proteção entre processos Modos de Operação Modo usuário e modo supervisor (privilegiado) Modo supervisor: Não existem restrições Qualquer instrução pode ser executada Modo de execução do SO Modo usuário: Algumas instruções não podem ser executadas Modo de execução dos processos de usuários Estas instruções são chamadas Instruções Privilegiadas (somente são executadas em modo supervisor) * Sistemas Operacionais – Profª. Eduarda Monteiro Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Proteção entre processos Modos de Operação O que acontece se um processo de usuário tentar executar uma instrução privilegiada em modo usuário? O hardware automaticamente gera uma interrupção sinalizando a ocorrência ao SO, o qual pode até abortar o processo de usuário As interrupções além de sinalizarem o SO também chaveiam automaticamente o processador para o modo supervisor * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Processo Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Proteção entre processos Proteção aos periféricos Instruções que dão acesso a E/S são privilegiadas Os usuários usam chamadas de sistema para acessar periféricos O que acontece se um de usuário tentar acessar diretamente um periférico? Ocorre uma interrupção: sinalizando acesso ilegal Chaveamento para modo supervisor Processo é abortado * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Processo Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Proteção entre processos Proteção de Memória Proteção aos códigos, dados e memória usada por um processo Evita que um processo escreva na memória destinada a outro processo Evita que um usuário consiga alterar áreas de código ou variáveis do sistema opercional Só permite o acesso à memória que está delimitada no descritor/registrador de liminte Registrador limite inferior E superior A cada acesso à memória, o hardware de proteção compara o endereço gerado com os registradores de limite * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Processo Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Proteção entre processos Proteção do Processador Mecanismo Time-Sharing Gera interrupções de tempos em tempos As interrupções ativam o SO que então verifica se o processo está executando há muito tempo caso estiver, o SO pode abortar o processo ou voltar para o fim da fila de Aptos Instruções usadas para controle de tempo são privilegiadas * Sistemas Operacionais – Profª. Eduarda Monteiro Multiprogramação: Processo Tabelas de Dispersão – Aula 15 * Sistemas Operacionais – Profª. Eduarda Monteiro Bibliografia * Tanembaum, Andrew S. et. al. Operating Systems: Desigin and Implementation. 2ed. 2002. Tanembaum, Andrew S. Modern Operating Systems. 3ed. 2007 Oliveira, R. S.; Carissimi, S. A.; Toscani, S. S. Sistemas Operacionais. Revista de Informática Teórica e Aplicada. Volume VIII. 2001. Sistemas Operacionais – Profª. Eduarda Monteiro Tabelas de Dispersão – Aula 15 * *
Compartilhar