Vilmar Santos Nepomuceno Roteiro  Introdução  Histórico dos Sistemas Operacionais  Kernel  Processos e Seu Ciclo de Vida  Entrada e Saída  Gerência de Memória Orientação a Objetos – Vilmar Santos Introdução  O que se espera de um sistema computacional?  Execução de programas de usuário  Permitir a solução de problemas  O sistema operacional é um programa colocado entre os programas de usuário e o hardware do computador de forma a atingir esses objetivos Orientação a Objetos – Vilmar Santos Componentes de um sistema computacional  Hardware  CPU, Memória, Recursos de entrada e saída.  Sistema Operacional – Controla o uso do hardware  Programas aplicativos e de sistema  Definem como os recursos de hardware são empregados na solução de um problema  Usuários Orientação a Objetos – Vilmar Santos Componentes de um sistema computacional Orientação a Objetos – Vilmar Santos Sistema Operacional  Conceitos:  programa que controla a execução de programas aplicativos  Interface entre aplicativos e hardware Orientação a Objetos – Vilmar Santos Sistemas Operacionais  Objetivos:  Tornar mais CONVENIENTE o uso de um computador  Tornar mais EFICIENTE a utilização de um computador  Criar novos aplicativos com independência do hardware Orientação a Objetos – Vilmar Santos Sistemas Operacionais  Intefarces entre usuários e computador Orientação a Objetos – Vilmar Santos Histórico  Primórdios  Sistema Operacional Inexistente  Usuário é o programador e operador da máquina  Evolução foi motivada por:  Melhor utilização de recursos  Avanços Tecnológicos Orientação a Objetos – Vilmar Santos Histórico  Sistemas em lote – Batch  Introdução de operadores profissionais  Job   Programa a ser compilado e executado Jobs são realizados em lote  Passagem entre Jobs continua sendo manual Orientação a Objetos – Vilmar Santos Histórico  Monitor residente  Evolução   Sequenciamento automático de Jobs Sistema operacional rudimentar  Execução de um programa por vez – Perda de tempo de E/S Orientação a Objetos – Vilmar Santos Histórico  Multiprogramação  Manter mais de um programa em execução simultaneamente.  Inovações de hardware:   Interrupções  Sinalização de eventos Discos magnéticos  Acesso aleatório a diferentes Jobs no disco  Melhor desempenho em acessos de leitura e escrita Orientação a Objetos – Vilmar Santos Histórico  Sistemas Monousuário  Projetados para suportar um usuário  Ex.: MS-DOS, Windows 3.x, ...  Sistemas Multiusuário  Projetados para suportar vários usuários  Ex.: Unix, Windows NT (2000), ... Orientação a Objetos – Vilmar Santos Histórico  Sistema Monotarefa  Capazes de executar apenas uma tarefa por vez  Ex.: MS-DOS  Sistema Multitarefa  Capazes de executar várias tarefas simultaneamente  Windows, Linux, ... Orientação a Objetos – Vilmar Santos Histórico  Sistemas Distribuídos  Distribuir a execução das tarefas por vários computadores  Deve ser feito e forma transparente para o usuário do sistema  Sistemas Paralelos  Distribuir as tarefas por vários processadores  Compartilham recursos de um mesmo computador Memória Orientação a Objetos – Vilmar Santos Histórico  Sistemas de Tempo Real  Empregado para sistemas que devem responder dentro de um determinado intervalo de tempo  Dois tipos:   Hard real time  Tarefas críticas são completadas dentro de um intervalo de tempo. Soft real time  Tarefas críticas possuem mais prioridades que outras. Orientação a Objetos – Vilmar Santos Kernel  Núcleo do Sistema operacional  Responsável por realizar as chamadas de sistema  O Kernel é composto por módulos, que são carregados a medida que os programas utilitários precisam.  Ex.: Módulo gráfico, Rede, Teclado,... Orientação a Objetos – Vilmar Santos Processos  O que é um programa?  O que é um processo? Orientação a Objetos – Vilmar Santos Processos  Um programa pode ter várias instâncias em execução  Mesmo código, porém dados e momentos de execução diferentes. Orientação a Objetos – Vilmar Santos Ciclo de vida de um processo  Executando  Apto  Bloqueado  Criação  Destruição Orientação a Objetos – Vilmar Santos Ciclo de vida  Criação  Momento inicial – pré-execução  Programa é carregado na memória  Apto  Após a criação do processo ele se torna apto a entrar em execução  Execução  Programa entra em execução, ocupando o processador Orientação a Objetos – Vilmar Santos Ciclo de vida  Bloqueado  Processo a espera de uma chamada de entrada/saída  CPU mais rápido que chamadas de entrada/saída  Destruição  O processo términa sua execução  Saída por Erro Orientação a Objetos – Vilmar Santos Orientação a Objetos – Vilmar Santos Entrada e Saída  O que é um periférico?  Dispositivo conectado ao computador possibilitando sua comunicação com o mundo externo.  Conectados através de uma INTERFACE de hardware  Interfaces se conectam com o computador através do Barramento  Processador dedicado – controladores (Device Drivers) Orientação a Objetos – Vilmar Santos Entrada e Saída Orientação a Objetos – Vilmar Santos Entrada e Saída  Tipos de interface de comunicação  Interface Serial  Apenas uma linha de transferência de dados – bit a bit  Interface Paralela  Mais de uma linha para transferência de dados  Ex.: n*8bits Orientação a Objetos – Vilmar Santos Entrada e Saída  O que são controladores (Device Drivers)?  Conjunto de estruturas de dados que controlam um ou mais dispositivos interagindo com o Kernel via uma interface bem definida.  Como controladores e sistema operacional conversam?  Recebem ordens do processador  Fornecem os estados das operações de entrada e saída  Leitura e Escrita dos dados para o periférico Orientação a Objetos – Vilmar Santos Entrada e Saída  Programada  Toda iteração entre processador e controlador é responsabilidade do programador  Desvantagem  Desperdício de tempo do processador para verificar continuamente o estado de uma operação de entrada e saída  Orientada a Interrupção  Quando a operação de entrada e saída términa o processador é avisado – Não há desperdício de processamento Orientação a Objetos – Vilmar Santos Entrada e Saída  Gerenciamento de entrada e saída:  Problema: Entrada e saída é extremamente lenta se comparada com a velocidade de processamento  Objetivo: Tornar o processo mais eficiente Orientação a Objetos – Vilmar Santos Memória  Qualquer SO possui gerência de memória  Monotarefa – Gerência Simples  Multitarefa – Complexa  Sistemas de memória  Memória Principal – Acessada pela CPU  Memória Secundária – Discos  Programas armazenados em discos  Executar é trazer da memória secundária para principal Orientação a Objetos – Vilmar Santos Memória  Memória Lógica  Acessada pelo processo  Endereços lógicos  Memória Física  Circuitos integrados  Posição real na memória Orientação a Objetos – Vilmar Santos Memória  Endereço Lógico X Endereço Físico  Lógico: Gerados pela CPU  Físico: Endereços na memória RAM  Programas “enxergam” apenas endereços lógicos  Endereços lógicos são transformados para endereço físico durante a execução do processo Orientação a Objetos – Vilmar Santos Memória  MMU – Memory Management Unit  Hardware que faz o mapeamento entre endereço lógico e endereço físico. Orientação a Objetos – Vilmar Santos Memória  MMU Exemplos: Orientação a Objetos – Vilmar Santos Memória  Um programa deve ser transformado em processo para ser executado Orientação a Objetos – Vilmar Santos Memória  Mecanismos para alocação de memória Orientação a Objetos – Vilmar Santos Memória  Alocação Contígua Simples  Sistemas mais simples  Memória Pricipal dividida   Sistema Operacional Processo do usuário  Usuário tem controle total da memória  Problema de violação de acesso  Ex.: DOS Orientação a Objetos – Vilmar Santos Memória  Alocação Contígua Particionada  Existência de multiplas partições  Divisão da memória em blocos  Cada Partição => Um processo  Partições   Fixas Variáveis Orientação a Objetos – Vilmar Santos Memória  Alocação Contígua Particionada  O SO é responsável pelo controle das partições    Partições alocadas Partições Livres Tamanho das Partições Orientação a Objetos – Vilmar Santos Perguntas Orientação a Objetos – Vilmar Santos Vilmar Santos Nepomuceno