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