Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto
Introdução É preciso conhecer a estrutura de um sistema de computação antes que possamos explorar os detalhes de sua operação. Inicialização do sistema Os itens básicos contemplam: I/O (Input/Output) Armazenamento
Operação do Sistema de Computação Um moderno sistema de computação de uso geral compõe-se de: Uma CPU Controladores de dispositivos Bus comum Proporciona acesso a memória compartilhada CPU e controladores de dispositivos podem operar concorrentemente, competindo por ciclos de memória Solução: Controlador de memória Objetivo: sincronizar o acesso a memória
Operação do Sistema de Computação Para um computador ligar ou reiniciar é preciso: programa bootstrap armazenado na memória ROM do tipo firmware Inicializa todos os aspectos do sistema (registradores, controladores, etc.. ) Ocorrência de eventos: interrupção proveniente tanto do hardware como do software O sistema operacional espera que interrupções ocorram: processos para executar dispositivos de I/O para servir usuários a quem responder
Operação do Sistema de Computação Exceção: Interrupção gerada por software Causada por... Tanto por um erro Solicitação de um programa de usuário que ativa um serviço do SO. Quando a CPUé interrompida: Bloqueia o que estava fazendo e, Transfere de imediato a execução para uma localização fixa A rotina de serviço de interrupção entra em operação Ao completar a execução, a CPU toma o processamento interrompido
Interrupções de I/O Para iniciar uma operação de I/O, a CPU carrega os registradores apropriados dentro do controlador de dispositivos. Este por sua vez, examina o conteúdo dos registradores para determinar que ação tomar. Exemplo: Uma solicitação pronta, dando inicio a transferência dos dados do dispositivo para o buffer local Esta comunicação é feita provocando uma interrupção I/O Síncrono e Assíncrono: Síncrono: O I/O se inicia e quando termina o controle é retornado ao processo do usuário Assíncrono: Retorna o controle para o processo do usuário sem esperar que o I/O se complete. O I/O pode então continuar enquanto outras operações do sistema ocorrem
Interrupções de I/O Temos ainda outra opção: Tabela de estado de dispositivo Cada entrada da tabela indica... o tipo do dispostivo o endereço eo estado Parado, ocioso, ocupado Sistema com fila de espera... Jáque mais de um trabalho pode ser direcionado para o mesmo dispositivo
Estrutura de DMA (Direct Memory Access) Processos "lentos" possuem uma prioridade de interrupção baixa para I/O assíncrono Ex.: leitura de caracteres de um terminal Permitindo assim que outras interrupções mais importantes sejam processadas em primeiro lugar Entretanto um dispositivo de alta velocidade como fita, disco ou rede de comunicação é capaz de transmitir informações próximas as das memória É aí que entra o acesso direto a memória para dispositivos de I/O de alta velocidade Controlador de dispositivos transfere um bloco inteiro de dados diretamente da memória para seu próprio buffer ou apartir dele para a memória, sem qualquer intervenção da CPU Desta forma, somente uma interrupção é gerada por bloco, em vez de uma interrupção por byte (ou palavra) gerada por dispositivos de baixa velocidade
Estrutura de Armazenamento Os programas de computador têm que estar na memória principal (RAM) para serem executados A memória principal é a única grande area de armazenamento que o processador pode ter acesso diretamente. A interação é alcançada por uma sequência de instruções loadou storepara endereços de memória específicos Enquanto a instrução storemove o conteúdo de um registrador para a memória principal Um ciclo instrução/execução conforme sistema com arquitetura Von Neumann trará primeiro uma instrução de memória e armazenará no registrador de instruções. A instrução loadmove uma palavra da memória principal para um registrador interno da CPU.
Estrutura de Armazenamento Von Neumann Máquina proposta que reune o seguintes componentes: 01 Memória 01 Unidade Aritmética e Lógica (ULA) 01 Unidade Central de Processamento (CPU) Composta por diversos registradores Uma unidade de controle (UC), cuja função é a mesma da tabela de controle da máquina de turing universal Buscar um programa na memória e executá-lo, instrução por instrução, sobre os dados de entrada
Estrutura de Armazenamento Em termos ideiais, imaginamos que os programas e os dados possam residir na memória principal de modo permanente Este esquema não é possível por duas razões principais: A memória principal é um dispositivo de armazenamento volátil que perde seus conteúdos quando a energia é desligada ou é perdida por outro motivo A memória principal é usualmente muito pequena para armazenar permanentemente todos os programas e dados necessários Assim muitos sistemas de computação proporcionam a memória secundáriacomo uma extensão da memória principal.
Estrutura de Armazenamento A principal exigência para a memória secundária é que seja capaz de armazenar grandes quantidades de dados permanentemente. O dispositivo de memória secundária mais comum é o disco magnético Propicia o armazenamento tanto para programas como para dados De modo geral, a estrutura de armazenamento é constituída principalmente de: Registradores, memória principal e discos magnéticos Mas ainda temos: Memória cache CD-ROM Fitas Magnéticas entre outras...
Memória Principal A memória principal e os registradores inseridos no próprio processador são as únicas áreas de armazenamento a que a CPU pode ter acesso diretamente Se os dados não estiverem em memória eles devem ser movidos para lá antes que a CPU possa operá-los. A memória principal é acessível através de uma transação no bus da memória. Frequências diferentes de acesso a memória fazem uso de um buffer de memória denominado cache Diferencial de velocidade entre a CPU e a memória principal
Discos Magnéticos Os discos magnéticos proporcionam a estrutura de memória secundária para os modernos sistemas de computadores
Discos Magnéticos Componentes Cada bandejado disco tem uma forma circular achatada como um CD Suas superfícies são cobertas por material magnético Armazenamos informações registrando-a magneticamente nas bandejas Um cabeçote de leituragravação "flutua" logo acima de cada superfície de cada uma das bandejas Os cabeçotes são fixados em um braço de disco, que movimenta todos os cabeçotes como uma unidade
Discos Magnéticos Componentes A superfície de uma bandeja é dividida em trilhas circulares subdivididas em setores O conjunto de trilhas que estão em uma posição do braço forma um cilindro O armazenamento dos drives de disco comuns é medida em gigabytes Quando o disco está em uso, o motor do drive vira-o em alta velocidade A maioria dos drives gira de 60a 200 vezes por segundo Velocidade do disco tem dois componentes Ataxa de transferência, que é a taxa em que os dados fluem entre o drive e o computador
Discos Magnéticos Componentes O tempo de posicionamento, algumas vezes chamado tempo de acesso randômico Tempo para mover o braço do disco até o cilindro desejado, denomiando tempo de busca Os discos típicos podem transferir diversos megabytes de dados por segundo Além disso, possuem tempos de busca e latências rotacionais de vários milissegundos E do tempo para que o setor desejado gire até o cabeçote, chamado latência rotacional
Discos Magnéticos Componentes Um disco pode ser removível, possibilitando que diferentes discos sejam montados conforme necessário Utilizados em várias baias Discos flexíveis são discos magnéticos removíveis e baratos, com um invólucro plástico macio contendo uma bandeja flexível Baixa capacidade (disquetes) Existem disponíveis discos removíveis que trabalham como discos normais Capacidade medida em gigabytes
Discos Magnéticos Um drive de disco é fixado ao computador por um conjunto de cabos denominado bus de I/O Diversos tipos de buses estão disponíveis: IDE (S)ATA SCSI
Fitas Magnéticas Embora tenha permanência relativa e possa guardar grandes quantidades de dados, o seu tempo de acesso é lento em comparação a memória principal As fitas são utilizadas principalmente para backup, para armazenamento de informação usada com pouca frequência Além disso o acesso randômico à fita megnética é cerca de milhares de vezes mais lento do que o acesso randomico ao disco magnético Ecomo meio para transferir informação de um sistema a outro Portanto as fitas são muito mais úteis como memória secundária
Fitas Magnéticas Os drives de fita podem gravar dados a velocidades comparáveis às dos drives de disco As capacidades das fitas variam muito, dependendo do tipo particular do drive Algumas fitas comportam 2 ou 3 vezes mais dados do que um grande drive de disco
Hierarquia de Armazenamento A ampla variedade de sistemas de armazenamento em um sistema de computação pode ser organizada em uma hierarquia de acordo com a velocidade e o custo
Armazenamento em caches (caching) O cachingé um importante princípio dos sistemas de computação A informação é normalmente mantida em algum sistema de armazenamento (como a memória principal) Na medida em que é utilizada, a informação é temporariamente copiada em um sistema de armazenamento mais rápido o cache Além disso, registradores programáveis internos, como os registradores índices, funcionam como um cachede alta velocidade para a memória principal A maioria dos sistemas tem um cache de instruções como reserva para as próximas instruções a serem executadas Sem esta cache a CPU teria que ficar em espera durante vários ciclos enquanto uma instrução fosse trazido da memoria
Proteção de Hardware Os primeiros sistemas de computadores eram sistemas monousuários operados pelo programador Os primeiros sistemas operacionais chamaram-se monitores residentes Especialmente I/O, pelas quais o programador antes era responsável O sistema operacional começou a compartilhar os recursos do computador entre vários programas ao mesmo tempo a partir deste início o sistema operacional começou a desenvolver muitas funções
Proteção de Hardware Com o spoolingum programa podia... Estar em execução enquanto o I/O era operado para outros processos O disco armazenava dados para diversos processos simultaneamente A multiprogramação colocava vários programas na memória ao mesmo tempo Este compartilhamento tanto incrementou a utilização como aumentou os problemas Sistema sem compartilhamento Um erro em um programa Causa problema somente para um sistema que está em execução Com o compartilhamento, muitos processos poderiam ser afetados por um bug em um programa
Proteção de Hardware Sem proteção contra estas espécies de erro, o computador só deve executar um processo de cada vez Um SO adequadamente projetado deve assegurar que um programa incorreto não possa provocar a execução incorreta de outros programas ou toda a saída produzida estará comprometida
Proteção de Hardware Muitos erros de programação são identificados por hardware Estes erros são normalmente manuseados pelo sistema operacional o hardware gera uma exceção para o SO Sempre que um erro de programa ocorrer, o SO deve terminar o programa de modo anormal É gerada uma mensagem de erro apropriada e a memória do programa pode ser descarregada
Operação em Modo Dual Para garantir operação apropriada devemos: Proteger o sistema operacional e todos os outros programas e seus dados De qualquer programa que esteja com erro A proteção é necessária para qualquer recurso compartilhado Assim é necessário duas modalidades especiais de operação: A modalidade de usuário Ea modalidade de monitor Também chamada de modalidade de supervisor, sistema ou privilegiada
Operação em Modo Dual Um bit chamado bit de modalidade, é adicionado ao hardware do computador para indicar a modalidade corrente: Monitor (0) Usuário (1) Desta forma podemos identificar se uma tarefa é do SO ou do usuário A ausência do modo dual suportado pelo hardware pode causar sérias falhas em um SO Ex.: MS-DOS um programa usuario operando incorretamente pode tirar do ar o SO gravando dados sobre ele SO mais recentes aproveitamse do modo dual e garantem maior proteção ao SO.
Proteção de I/O Um programa de usuário pode corromper a operação normal do SO ao Emitir instruções de I/O ilegais Ao fazer acesso a localizações de memória dentro do próprio SO Ao recusar-se a abandonar a CPU Para evitar que os usuários executem I/O ilegal Define-se todas as instruções de I/O como instruções privilegiadas Assim usuários não podem emitir instruções de I/O diretamente Devem fazê-los através do SO.
Proteção de I/O Para que a proteção de I/O seja completa, temos que Estar seguros de que um programa de usuário não possa jamais obter controle do computador em modalidade de monitor Se isso fosse possível a proteção de I/O estaria comprometida
Proteção de Memória É necessário prover proteção de memória pelo menos para o vetor de interrupções epara rotinas de serviço de interrupção do SO. Pode-se oferecer esta proteção usando normalmente um registrador-base e um registrador-limite O registrador base mantém o menor endereço físico de memória autorizado O registrador limite contém o tamanho do intervalo
Proteção da CPU Além da proteção de I/O e de memória, é necessário assegurar que o SO mantenha o controle Épreciso evitar que um programa de usuário fique bloqueado em um loop infinito Ou não solicite os serviços do sistema Ou nunca retorne o controle do SO Solução: uso de um timer Um timer pode ser ajustado para interromper o computador após um período especificado O período pode ser fixo (60 segundos) Ou variável Implementado como um relógio de marcação fixa Eum contador
Exercícios Sobre a estrutura de organização de um sistema de computação, descreva com suas palavras o que você entendeu sobre cada um dos três itens: inicialização do sistema, I/O e armazenamento... Explique com suas palavras a diferença entre interrupçãoe exceção. Como se dá o processo de DMA? Do que é composta a arquitetura de Von Neumanne porque ela é importante? Explique como funciona as principais tecnologias de dipositivo de armazenamento magnético (IDE, SATA e SCSI)