BC1518 - Sistemas Operacionais Introdução Aula 01 2° Quadrimestre de 2010 Prof. Marcelo Z. do Nascimento Email: [email protected] Roteiro • Introdução • Funções do S.O. • Organização do computador • Arquitetura de sistemas computadorizados • Estrutura do S.O. • Operações do sistema • Ambiente de computação • Leitura Sugerida Introdução Sistema Operacional (SO): • programa que gerencia o hardware do computador; • Fornece a base para os programas aplicativos; • Intermediário entre o usuário e o hardware; • Projetados para serem convenientes ou eficientes ou uma combinação disso; • Grande e complexo: necessário uma estrutura do sistema. Introdução Sistema Operacional (SO): Diagrama US1 Compilador US2 Planilhas US3 Editor de Texto Sistema Operacional Hardware do computador SGBD Funções dos S.O. Visão do usuário: Interface • PC • Projeto para facilitar o uso, com atenção ao desempenho e nenhuma à utilização do recursos. • Terminal • Projetado para facilitar a utilização de recursos – para garantir que recursos como CPU, Memória e E/S sejam utilizados de modo eficiente (compartilhar recursos). Funções dos S.O. Visão do usuário: Interface • Computadores portáteis: • Projetados para facilitar a utilização individual; • Preocupação: desempenho por tempo de vida da bateria. • Computação embutida em dispositivos • Projetados para serem executados sem intervenção do usuário; • Exemplo: automóveis e dispositivos domésticos. Funções dos S.O. Visão do sistema: Gerenciador • Programa envolvido com o hardware • Alocar recursos; • Funções: o tempo de CPU, espaço de memória, dispositivos de E/S; • Deve decidir como alocá-lo e a quem, de modo que possa operar de forma eficiente e justa. • Programa de controle • Administrar a execução dos programas do usuário para impedir erros; • Operação e controle de dispositivos de E/S. Funções dos S.O. O que é um sistema operacional? • Como o hardware puro não é fácil de utilizar: as funções comuns de controle e alocação são reunidas nesse software; • É o único programa que executa o tempo todo no computador; Organização do Computador • Sistema Computacional Organização do Computador Operação do computador: Sistema Básico de Entrada/Saída (Basic Input/Output System – BIOS) • O BIOS é o primeiro programa executado pelo computador. – Sua função é preparar o PC para que o SO, que esta armazenado em um dispositivo (discos rígidos, disquetes, CDs, etc) possa ser carregado para memória e iniciado a sua execução. • O BIOS é Firmware. • Software armazenado em uma memória de leitura nãovolatil, como ROM e EEPROM. Organização do Computador Operação do computador: O Programa inicial – bootstrap • Programa carregado durante “power-up” ou “reboot” pelo BIOS. • O BIOS transfere o controle para o bootstrap, que initializa todas as partes do sistema necessário para carregar o kernel do SO. • O bootstrap, deverá localizar e carregar o kernel do SO para memória e inicializar a execução ou ativar um processo mais complexo (multi-boot); – Exemplos: GRUB e LILO. Organização do Computador Operação do computador: • O S.O. começa a executar o primeiro processo “init” e espera que ocorra algum evento; • Evento = interrupções geradas por software ou hardware: • Hardware => envia um sinal à CPU (barramento); • Software => executa uma operação especial (system call ou monitor call). • A rotina de serviço de interrupção (função) entra em operação, ao completar a operação, a CPU retorna a operação interompida. • Cada arquitetura tem seu próprio mecanismo de interrupção. Organização do Computador Operação do computador: A rotina de serviço de interrupção Organização do Computador Operação do computador: A rotina de serviço de interrupção Organização do Computador Processador: Pentium Intel Tabela de ponteiros para rotina de interrupção; Armazenada na memória baixa (100 primeiras posições). Mecanismo de interrupções também usado para exceções ex. divisão por zero, acesso a endereço de memória protegida ou inexistente. Organização do Computador Processador: Unidade de Controle (UC) Unidade Lógica e Aritmética (ULA) Clock (temporizador) Registradores – armazena dados (estado do programa) Contador de instruções – contém o endereço da próxima instrução que o processador deve buscar e executar. Apontador de pilha – contém o endereço de memória do topo da pilha, estrutura de dados onde o sistema mantém informação sobre o programa que está sendo executado e foram interrompidos. Registrador de Status – responsável por armazenar informações sobre a execução de instruções (overflow). Organização do Computador Armazenamento: • Programas ficam alocados na memória principal; • memória de acesso aleatória – Random Acess memory – RAM • utilizam semicondutores chamado memória de acesso aleatória dinâmica (DRAM) que formam um conjunto de words na memória; • cada word tem seu próprio endereço; • instruções são movidas das words para registradores da CPU para processamento. • Como ocorre o armazenamento de instruções? Organização do Computador Armazenamento: • Unidade de memória apenas visualiza um fluxo de endereços • Os programas e dados deveriam estar permanetemente na memória • Problema: • pequena para armazenar todos os programas; • dispositivo volátil. • Memória secundária: utilizada como extensão da RAM • Mantém grande quantidade de dados Organização do Computador Armazenamento: Disco magnético • Pratos de vidro ou de metal rígido revestidos de material magnético de gravação; • A superfície do disco está logicamente dividida em trilhas (tracks), as quais estão divididas em setores (sectors); • O controlador do disco determina a interação lógica entre o dispositivo e o computador. Organização do Computador Hierarquia de Armazenamento Sistemas de armazenamento são organizados em hierarquia. Velocidade Custo Volatilidade Caching copia informação para um sistema mais rápido de armazenamento; A memória principal pode ser vista como um cache rápido para o armazenamento secundário (disco rígido). Organização do Computador Hierarquia de Armazenamento Organização do Computador Interrupções de E/S: Método síncrono => após o início de uma operação E/S, o controle só retorna após o término dessa operação. Implementação: a instrução wait coloca a CPU no estado de espera até à próxima interrupção. utilize-se um ciclo tipo espera. Desvantagens : • No máximo um pedido E/S é atendido de cada vez. • Não existe nenhum processamento E/S simultâneo. • Contenção para acesso à memória (Wait). Método I/O síncrono Organização do Computador Interrupções de E/S: Método assíncrono => após o início de E/S, o controle retorna ao programa sem esperar pela terminação da operação.. Vantagens Concorrente E/S operações. Permite processamento simultâneo. Desvantagens Implementação mais complexa Método I/O assíncrono Organização do Computador E/S: Device-status table contém uma entrada para cada dispositivo E/S, indicando o tipo, endereço e estado. O SO indexa a I/O device table para determinar o estado de dispositivo e modifica a sua entrada na tabela de acordo com a ocorrência da interrupção. Tabela de estado dos dispositivos Organização do Computador E/S: Estrutura DMA (Direct Memory Acess) hardware que permite a realização de E/S programado a fim de manter a CPU ocupada única e exclusivamente com as atividades que requerem processamento de resultados; Após ser programado pela CPU realiza uma transferência de vários blocos de dados de um dispositivo para a memória: Somente uma interrupção é gerada por bloco e não por byte; CPU só interrompida (interrupção) quando todos estes blocos estiverem no local desejado. Organização do Computador E/S = Estrutura DMA (Direct Memory Acess) Arquitetura do Sistema Computadorizado Sistema Único Processador: Uma CPU capaz de executar um conjunto de instruções de uso geral: Processadores de uso específico (disco, controladores gráficos, etc) executam conjunto de instruções limitadas Exemplo: controlador de disco => recebe solicitação da CPU e implementa sua própria fila de disco e algoritmo de escalonamento. UCP Memória Principal programa/ tarefa Dispositivos de E/ S Arquitetura do Sistema Computadorizado Sistemas Multiprocessados: Sistemas paralelos ou fortemente aclopados Possui mais de 1 processador, Compartilham barramento, o clock e a memória; Vantagens: Maior vazão (throughput): tarefa em menos tempo. Há um custo adicional para funcionar corretamente => o ganho é inferior a N processadores; Economia de escala: custo mais reduzido por compartilhar recurso; Maior confiabilidade: distribui corretamente as funções entre os diversos processadores, se um falhar náo interrompe o sistema. Arquitetura do Sistema Computadorizado Sistemas Multiprocessados: UCP Dispositivos de E/ S Memória Principal UCP Dispositivos de E/ S Arquitetura do Sistema Computadorizado Sistemas Multiprocessados: Sistemas tolerantes a falha: pares de CPUs trabalham em cooperação, ou seja, 2 processadores executam instruções e comparam os resultados; Os sistemas podem ser: mutiprocessamento assimétrico: relacionamento mestreescravos Multiprocessamento simétrico: cada processador executa todas as tarefas em um SO. Exemplo: Windows XP, Mac OS X, Linux. Arquitetura do Sistema Computadorizado Sistemas Multiprocessados: Tendências de Projeto de CPU => múltiplos núcleos em um único chip – SO aparecem com N processadores; Arquitetura do Sistema Computadorizado Cluster: Composto de 2 ou mais sistemas acoplados e conectados por um rede local; Configurações: assimétrica:uma máquina em modo hot-standy (monitora o servidor ativo); simétrica: 2 ou mais hosts estão executando aplicações e monitorando um ao outro. link de comunicação UCP Memória Principal UCP Dispositivos de E/ S Memória Principal Dispositivos de E/ S Estrutura do S.O. • Provê um ambiente dentro do qual os programas são executados; • Fornece: • Capacidade de multiprogramar: aumenta capacidade de uso da CPU, organizando as tarefas do modo que a CPU sempre tenha uma (Situações da vida => Advogado); • Tempo compartilhado: extensão lógica da multiprogramação => CPU executa várias tarefas alternando entre elas. • Escalonamento e multiprogramação possibilita ao usuário usar parte do computador. Estrutura do S.O. • Cada usuário tem pelo menos um programa separado na memória; • Programas são carregados na memória. • Devido ao tamanho: as tarefas são mantidas no disco => o escalonador deve decidir quem irá para memória; • Garantir tempo de resposta razoável => swapping • Ex.: Memória virtual => permite a execução de um processo que não está completamente na memória (programas maiores que a memória física). Operação do Sistema Os eventos são sinalizados quase sempre pela ocorrência de uma interrupção ou trap Compartilhamento de recursos do sistema obriga o SO a garantir que um programa errado não provoque execução errônea de outros programas Provê suporte do hardware para diferenciar entre dois modos de operação Modo usuário - execução feita em nome de um usuário Modo Monitor (também modo supervisor ou modo sistema) − execução feita em nome do SO. Operação do Sistema Modo Dual: Mode bit adicionado ao hardware do computador para indicar o modo corrrente: monitor (0) ou usuário (1). Quando uma interrupção ou erro ocorre, o hardware a troca para o modo monitor. m te monit or usuá rio d a am h C is s e d a Instruções Privilegiadas podem ser executadas somente em modo monitor (modo kernel). Operação do Sistema Temporizador • Temporizador previne que programa de usuário fique preso com um recurso (CPU). – Ex. um loop infinito • Como trabalha: – Antes de passar o controle para o programa de usuário, o SO configura um tempo com um específico valor; – Após o período, uma interrupção é disparada e o SO retém o controle; – O SO então decide se permitirá usar o recurso por mais tempo ou terminá-lo. Gerência de Processos “Um processo é um programa em execução”. Exemplo: um processador de textos executado por um usuário individual em um PC. Um processo precisa de certos recursos, incluindo tempo de CPU, memória, arquivos e dispositivo de E/S para completar sua tarefa. Um programa é uma entidade passiva (conteúdo do arquivo armazenado em disco), enquanto o processo é uma entidade ativa (contador de programa). Gerência de Processos • O SO é responsável pelas seguintes atividades relacionadas à administração de processos: Criação e deleção de processos (usuário e SO); Suspensão e reativação de processos; Provisão de mecanismos para: Sincronização de processos; Comunicação de processos; Fornecer mecanismos para manipulação de deadlock Gerência de Memória A memória principal é uma grande sequência de words ou bytes, cada um com o seu próprio endereço. Ela é o repositório de dados rapidamente acessíveis compartilhados para CPU e os dispositivos de E/S. A memória principal é um dispositivo de armazenamento volátil. Ela perde o seu conteúdo no caso de falha do sistema. Gerência de Memória O SO é responsável pelas seguintes atividades relacionadas à administração da memória principal: Manter registro de quais partes da memória estão correntemente sendo utilizadas e por quem; Decidir que processos carregar quando há espaço disponível na memória; Alocar e desalocar espaço na memória quando necessário. Gerência de Arquivo O SO abstrai as propriedades físicas de seus dispositivos de armazenamento para definir uma unidade lógica de armazenamento => o arquivo. Arquivo é uma coleção de informações relacionadas definida pelo seu criador. Geralmente, os arquivos representam programas (tanto em formato fonte como objeto) e dados. Para guardar os arquivos, a maioria dos SO fornece o conceito de diretório como modo de agrupar arquivos Gerência de Arquivo O SO é responsável pelas seguintes atividades: Criar e apagar arquivo; Criar e apagar diretório; Suportar primitivas para a manipulação de arquivos e diretórios; Mapear arquivos em memória secundária; Copiar arquivos em meio de armazenamento estável (não volátil). Sistema de E/S O SO busca ocultar as peculiaridades de dispositivos de hardware específicos do usuário. O UNIX esconde as peculiaridades => um subsistema E/S é utilizado: Um sistema de buffer-caching; Uma interface geral de drivers de dispositivos; Drivers para os hardware específicos dos dispositivos Gerência de Armazenamento secundário Desde que a memória principal é volátil e muito pequena para acomodar todos os dados e os programas permanentemente, o sistema computacional deve prover armazenamento secundário para recuperar a memória principal; A maioria dos sistemas de computação modernos utilizam discos como o principal meio de armazenamento on-line, tanto para os programas como para os dados. Gerência de Armazenamento secundário O SO é responsável pelas seguintes atividades relacionadas à administração do armazenamento secundário: Administração do espaço livre. Alocação de armazenamento (espaço necessário). Programação de alocação do disco (fragmentação). Caching • As informações são mantidas na memória principal e a medida que são utilizadas são copiadas para um sistema mais rápido de armazenamento – a cache; • Consulta primeiro a cache, caso não tenha vai até a memória e faz uma cópia para a cache; • A seleção cuidadosa de seu tamanho e de sua politíca de substituição pode resultar em um desempenho bastante aumentado. Caching Desempenho de vários níveis de armazenamento Sistema Distribuído Um sistema distribuído é uma coleção de processadores que não compartilham a memória principal. Ao contrário, cada processador tem sua própria memória local; Os processadores no sistema são conectados através de uma rede de comunicação (LAN); Um sistema distribuído provê ao usuário acesso a vários recursos do sistema; O acesso a um recurso compartilhado aumenta velocidade de computação. Sistema Distribuído Uma rede é a via simples de comunicação entre dois ou mais sistemas: Varia de acordo com o protocolo: maioria dos S.Os suportam TCP/IP. A distância: LAN, WAN, MAN; Um S.O. de rede provê recursos compartilhados de arquivo pela rede e inclui um esquema de comunicação que permite que diferentes processos em diferentes computadores troquem mensagem: Há comunicação de fornecer a ilusão de que um único SO controla a rede. Ambiente de Computação Computação tradicional Sistema cliente-servidor: Servidor de processamento; Servidor de arquivos. Sistema peer-to-peer: serviços fornecidos por vários nós distribuídos por meio de uma rede. Computação baseada na Web: balanceadores de carga: distribui conexão da rede entre um banco de servidores semelhantes. Aula 01 - Sumário • Temas abordados: • Funções do S.O.: Usuário e Sistema • Organização do computador: recursos • Arquitetura de sistemas computadorizados: único e multiprocessados • Operações do sistema: modo dual • Estrutura do S.O: Gerenciadores • Ambiente de computação: cliente/servidor, peer-to-peer Leituras Sugeridas • Silberschatz, A., Galvin, P. B. Gagne, G. Sistemas Operacionais com Java. 7º , edição. Editora, Campus, 2008 • Silberschatz, Abraham; Galvin, Peter Baer; Gagne, Greg. Fundamentos de sistemas operacionais. 6 ed. Rio de Janeiro: LTC, 2009. Nota de Aula Acesse o link abaixo para obté-la: http://hostel.ufabc.edu.br/~marcelo.nascimento/