Baixe o app para aproveitar ainda mais
Prévia do material em texto
Unidade II: Estruturas do Sistema Operacional INSTITUTO DE CIÊNCIAS EXATAS E NATURAIS FACULDADE DE COMPUTAÇÃO BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO SISTEMAS OPERACIONAIS Professor: Dr. Josivaldo Araújo josivaldo@ufpa.br Objetivos desta Unidade... � Descrever os serviços que um sistema operacional fornece para usuários, processos e outros sistemas; � Apresentar a interface que ele torna disponível para usuários e programadores; � Discutir os componentes de hardware e software gerenciados e suas interconexões; � Explicar como os sistemas operacionais são instalados e personalizados, e como são inicializados; Introdução � Um sistema operacional fornece um ambiente para a execução de programas, pois é, antes de tudo, um gerenciador de recursos; � Também fornece certos serviços para programas e para os usuários desses programas; � Serviços específicos fornecidos diferem de um sistema operacional para outro, mas pode-se identificar classes comuns; � À medida que os computadores evoluem, os SO devem se adaptar às tecnologias emergentes de hardwares e softwares e manter a compatibilidade com uma base já instalada de hardware e software mais antigos; Serviços do Sistema Operacional � Os serviços oferecidos pelos sistemas operacionais são fornecidos visando a conveniência do programador, para tornar mais fácil a tarefa de programar; � Pode-se ter uma representação dos diversos serviços do SO e como eles estão relacionados; Serviços do Sistema Operacional � Um conjunto de serviços do sistema operacional fornece funções que são úteis para o usuário: � Interface de Usuário: Quase todos os SO têm uma interface de usuário, que pode assumir várias formas: Interface de linha de comando Interface gráfica de usuário (GUI) • Interface batch, em que os comandos e suas diretivas de controle são inseridos em arquivos e estes são executados; Serviços do Sistema Operacional � Execução de Programas: O sistema deve ser capaz de carregar um programa na memória e executá-lo, além de poder ser encerrado de forma normal ou anormal (erro); � Operações de E/S: Um programa em execução pode precisar de operações de E/S e isso pode envolver um arquivo ou um dispositivo de E/S; � Manipulação do Sistema de Arquivos: O sistema de arquivos é de especial interesse, pois os programas precisam ler e gravar arquivos e diretórios, além de criar e excluí-los pelo nome. Procurar e listar arquivos específicos; � Comunicações: Processos precisam trocar informações, estando no mesmo computador ou em sistemas diferentes conectados por uma rede. • Também podem ser implementadas através de memória compartilhada ou troca de mensagens; Serviços do Sistema Operacional � Detecção de Erros: Os sistema operacional tem que estar sempre atento a possíveis erros: • Os erros podem ocorrer no hardware da CPU e da memória; em dispositivos de E/S; no programa do usuário; • Para cada tipo de erro, o SO deve tomar a medida apropriada para assegurar o processamento correto e consistente; • Recursos de depuração podem melhorar muito as possibilidades de uso eficiente do sistema pelo usuário e pelo programador; � Existe outro conjunto de funções do sistema operacional cujo objetivo não é ajudar o usuário, e sim assegurar a operação eficiente do próprio sistema; � Sistemas com vários usuários podem ganhar eficiência compartilhando os recursos do computador entre os usuários; Serviços do Sistema Operacional � Alocação de Recursos: Necessidade de alocar recursos quando há vários usuários ou tarefas ativas ao mesmo tempo; � Contabilização: Pode-se controlar quais usuários utilizam que quantidade e que tipos de recursos do computador; • Pode ser para título de responsabilização ou simplesmente para acumulação de estatísticas de uso; � Proteção e Segurança: Necessidade de controlar o uso de informações armazenadas em um sistema de computação multiusuário: • Proteção: Significa garantir que qualquer acesso a recursos do sistema seja controlado; • Segurança: Começa com a exigência de que cada usuário se autentique junto ao sistema � Sistemas operacionais facilitam a programação de aplicações pelo fato de os programadores poderem escrever software que requisitem serviços e recursos, sem precisar escrever códigos para realizar o gerenciamento do dispositivo; � Os SO são escritos para ser independente da configuração de hardware particular de um sistema; � Necessidade de descrever os componentes de hardware que um sistema operacional gerencia para atender às necessidades de computação de seus usuários; Serviços do Sistema Operacional � Um sistema computacional é um conjunto de circuitos eletrônicos interligados (processador, memórias, registradores, barramentos, impressoras, mouse, etc.); � Todos os dispositivos manipulam dados na forma digital; � Os componentes de um SO são agrupados em três subsistemas básicos, chamados unidades funcionais: Processador, Hierarquia de Memória e Dispositivos de E/S; � Um sistema operacional gerencia alguns componentes para atender as necessidades dos usuários. Dispositivos de Hardware � PLACAS PRINCIPAIS � É um componente de hardware que fornece encaixes e conexões elétricas entre dispositivos em vários lugares da placa, também chamada de placa-mãe; � Possuem diversas camadas, extremamente delgadas de silício, denominadas de pistas, que servem de canais de comunicação, dando conectividade à placa; • Um grande conjunto de pistas formam um canal de comunicação de alta velocidade – barramento (bus). � São incluídos diversos chips de computador para realizar operações de baixo nível: BIOS (Basic Input/Output System); • Armazena instruções para a iniciação e gerenciamento do hardware básico; • Carregar na memória a porção inicial do SO; Dispositivos de Hardware � PLACAS PRINCIPAIS Dispositivos de Hardware � É um componente de hardware que executa um fluxo de instruções em linguagem de máquina; � A principal função do processador é controlar e executar instruções presentes na memória principal; � Composição do Processador: � PROCESSADOR Dispositivos de Hardware Cache de Dados L1 Unidade Lógica e Aritmética Unidade de Busca/Decodificação Registradores Cache de Instrução L1 Processador Unidade de Controle Unidade de Controle � É responsável por gerenciar as atividades de todos os componentes do computador, como: gravação de dados em discos ou busca de instruções na memória. � Carrega instruções na memória de alta velocidade denominada registradores de instruções, para que o processador possa executá-las rapidamente. Unidade de Decodificação � Interpreta a instrução e passa a entrada correspondente para a unidade de execução executá- la. cache � Memórias de alta velocidade que armazena cópias de dados na memória principal. Aumentam a eficiência do processador habilitando acesso rápido a dados e instruções. � Podem ser: Nível 1 (L1) e Nível 2 (L2) � PROCESSADOR Dispositivos de Hardware Unidade de Busca Unidade Lógica e Aritmética Registradores � Executa operações básicas de aritméticas e lógicas, como adição, multiplicação e comparações lógicas. � São memórias de alta velocidade localizadas em um processador que guardam dados para uso imediato pelo processador; � O número de registradores e sua capacidade de armazenamento variam em função da arquitetura do processador; • Processadores de 64 bits podem armazenar 64 bits de dados em cada registrador; � Registradores são conectados ao circuito do processador e localizados fisicamente próximos às unidades de execução. � PROCESSADOR Dispositivos de Hardware Registradores � Registradores de uso geral → Manipulados por Instruções; � Registradores de uso específico → Armazenar informações de controle do processador e do sistema operacional: • Contador de Instruções (Program Counter): Contém o endereço da próxima instrução que o processador deve buscar e executar. • Apontador de Pilha (Stack Pointer): Contém o endereço de memória do topo da pilha, que é a estrutura de dados onde o sistema mantém informaçõessobre programas que estão sendo executados e tiveram que ser interrompidos; • Registrador de Status: É responsável por armazenar informações sobre a execução de instruções (ocorrência de overflow). � PROCESSADOR Dispositivos de Hardware OBS.: Co-Processador: É projetado para executar eficientemente um conjunto de instruções de finalidade especial. � PROCESSADOR Dispositivos de Hardware � O tamanho e a velocidade da memória são limitadas pelas leis da física e da economia; � O compromisso custo/desempenho caracteriza a hierarquia da memória; � A memória mais veloz e mais cara está no topo e caracteristicamente tem pequena capacidade - Registradores; � A memória mais lenta e menos cara está na base e comumente tem grande capacidade – Disco Rígido; � HIERARQUIA DE MEMÓRIA Dispositivos de Hardware Disco Rígido Cartões de Memória CDs DVDs DRAM DDR SDRAM SRAM SRAM Registradores Cache L1 Cache L2 Memória Principal Armazenamentos Secundários e Terciários Armazenamento Custo/Velocidade � HIERARQUIA DE MEMÓRIA Dispositivos de Hardware � São utilizados para permitir a comunicação entre o sistema computacional e o mundo externo; � Podem ser classificados em duas categorias: Utilizados como armazenamento secundário e Interface Homem- Máquina; �Memória Secundária: Grande capacidade de armazenamento, baixo custo e alto tempo de acesso; � DISPOSITIVOS DE E/S Dispositivos de Hardware �Interface Homem-Máquina: Possuem como finalidade a comunicação do sistema com o mundo exterior, sendo através dessas interfaces que podemos nos comunicar com o sistema e vice-versa. � DISPOSITIVOS DE E/S Dispositivos de Hardware � É um conjunto de conexões elétricas que transportam informações como dados, endereços e sinais de controle que trafegam entre processadores, memórias e dispositivos de E/S; � Para evitar que dois sinais colidam no barramento (processador e canais de E/S), um chip, conhecido como árbitro do barramento prioriza o acesso dos canais de E/S; � Canais de E/S não podem ter o seu trabalho interrompido no meio, pois forçá-los esperar pode levar a perda de dados; � Esse processo é conhecido como roubo de ciclo, que têm influência direta na piora do desempenho do computador. � BARRAMENTO Dispositivos de Hardware � Podem ser: barramentos processador-memória, barramentos de E/S e barramentos de backplane. � Barramentos Processador-Memória: São de curta extensão e alta velocidade para que seja otimizada a transferência de informação entre esses componentes; � Barramentos de E/S: Possuem grande extensão, são mais lentos e permitem a conexão de diferentes dispositivos. � Barramento de Interconexão de Componente Periférico (PCI) que conecta dispositivos periféricos, como placas de som e placas de rede, ao resto do sistema. � Barramentos de Backplane: O barramento de E/S não se conecta diretamente ao barramento processador-memória, tendo este barramento a função de integrar os dois barramentos � BARRAMENTO Dispositivos de Hardware � BARRAMENTO Dispositivos de Hardware � Habilita dispositivos e controladores a transferir blocos de dados para a memória principal, o que libera o processador para executar instruções de software; � Melhora significativamente o desempenho em sistemas que executam grandes números de operações de E/S; � Usa um controlador de E/S para gerenciar transferência de dados entre dispositivos de E/S e a memória principal; � O controlador de E/S gera uma interrupção quando a operação é concluída. � DMA (Direct Memory Access) Dispositivos de Hardware � DMA (Direct Memory Access) Dispositivos de Hardware � Arquitetura de computador contêm recursos que executam funções de SO rapidamente em hardware para melhorar o desempenho; � Também possuem recursos que habilitam o SO a impor rígida proteção, o que melhora a segurança e a integridade do sistema. � Processadores: Implementam mecanismos de proteção impedindo processos de acessar instruções privilegiadas ou de acessar memórias que não lhe foram alocadas (alerta o SO para que o mesmo possa reagir). • Interrupções: Sinal enviado por dispositivos ao processador quando ocorre um evento. • Exceções: São interrupções geradas em resposta a erros, como falha de hardware, erros de lógica e violação de proteção. Suporte de Hardware para Sistemas Operacionais Interrupção ou exceção Salva conteúdo dos registradores na pilha de controle. Identifica a origem do evento Obtém o endereço da rotina de tratamento Restaura o conteúdo dos registradores Rotina de Tratamento Programa � Interrupção Suporte de Hardware para Sistemas Operacionais � Temporizadores: Gera periodicamente uma interrupção que faz o processador invocar o sistema operacional, impedindo que processos monopolizem o processador. � Relógio: Habilita o computador a seguir o horário normal do dia e da noite, com precisão típica de milésimos ou milionésimos de segundo. � Plug and Play: Permite que sistemas operacionais configurem e usem hardware recém-instalados sem interação do usuário. Um dispositivo de hardware Plug and Play: 1. Identifica-se no Sistema Operacional; 2. Identifica os recursos e serviços que requer para funcionar adequadamente; 3. Identifica o seu driver correspondente e permite que o SO o utilize para configurar o dispositivo. Suporte de Hardware para Sistemas Operacionais � Um conjunto de programas utilizado como interface entre as necessidades do usuário e as capacidades do hardware; � Programação inicialmente era rudimentar – linguagem de máquina (profundo conhecimento da arquitetura da máquina); � Surgimento das linguagens de montagem e das linguagens de alto nível (programas não estão prontos para serem executados pelo processador); � Conversão é realizada por um utilitário denominado TRADUTOR. � Existem dois tipos de tradutores: Montador e Compilador. � Tradutor Dispositivos de Software Programa Fonte Tradutor Programa Objeto Linguagem de Montagem Montador Módulo Objeto Linguagem de Alto Nível Compilador Módulo Objeto � Tradutor Dispositivos de Software � É o utilitário responsável por traduzir um programa- fonte em linguagem de montagem para um programa em linguagem de máquina; � A linguagem de montagem é particular para cada processador, assim como a linguagem de máquina; � Programas assembly não podem ser portados entre máquinas diferentes; � Tradutor - Montador Dispositivos de Software � É o utilitário responsável por gerar (de um programa escrito em linguagem de alto nível) um programa de linguagem de máquina não executável; � As linguagens de alto nível não tem nenhuma relação direta com a máquina (fica a cargo do compilador); � Programas-fonte podem ser portados entre computadores de diversos fabricantes; � Converte o programa completo para depois ser executado; Ex.: Pascal, Fortran, C, etc. � Tradutor - Compilador Dispositivos de Software � Durante a execução de um programa, traduz cada instrução (linha a linha) e a executa imediatamente; � São mais lentos que os compilados. � Desvantagem: Cada vez que o programa for executado, ele precisará ser traduzido e interpretado; � Vantagem: Consumir menos memória; � Linker � É o utilitário responsável por gerar, a partir de um ou mais módulos-objeto, um único programa executável. � Resolve todas as referências simbólicas entre os módulos; � Reserva memória para a execução do programa; Ex.: JavaScript, Python, Perl, etc.� Interpretadores Dispositivos de Software � É o utilitário responsável por carregar na memória principal um programa para ser executado; � Pode ser: Absoluto ou relocável; • Absoluto: Só necessita conhecer o endereço de memória inicial e o tamanho do módulo para realizar o carregamento; • Relocável: O Programa é carregado em qualquer posição da memória (loader fica responsável pela relocação no momento do carregamento); � É o utilitário responsável que permite ao usuário acompanhar toda a execução do programa a fim de detectar erros na sua lógica; Dispositivos de Software � Loader � Depurador� Permite que o usuário se comunique com o sistema operacional; � O usuário pode ter acesso a diversas funções e rotinas específicas do sistema; � O sistema operacional tem que ser carregado da memória secundária para a memória principal (denominado ativação ou boot do sistema); � Também existe o processo de desativação (shutdown), que permite que as aplicações e componentes do SO sejam desativados de forma ordenada (garantindo integridade). Dispositivos de Software � Interpretador de Comandos � Ativação/Desativação do Sistema Dispositivos de Software � O procedimento de iniciar um computador a partir da carga do kernel é conhecido como inicialização do sistema; � Na maioria dos sistemas de computador, um pequeno bloco de código conhecido como programa bootstrap ou carregador bootstrap localiza o kernel, carrega-o na memória principal e inicia sua execução; � Quando a CPU recebe um evento de reinicialização, o registrador de instruções é carregado com uma localização de memória pré-definida e a execução se inicia; � Esse programa se encontra na forma de memória de leitura (ROM), porque a RAM está em um estado desconhecido na inicialização do sistema; � Telefones celulares e consoles de jogos armazenam o sistema operacional inteiro em ROM (SO pequenos). � Inicialização do Sistema Dispositivos de Software � Para sistemas operacionais grandes, o carregador bootstrap é armazenado em firmware e o sistema operacional fica em disco; � O programa bootstrap executa diagnósticos e tem um trecho de código que pode ler um único bloco em uma localização fixa (por exemplo, bloco zero) do disco; � Envia para a memória, esse bloco, e executa o código a partir desse bloco de inicialização; � Dessa forma, o bootstrap pode percorrer o sistema de arquivos para encontrar o kernel do SO, carregá-lo na memória e iniciar sua execução; � Só nesse momento é que se considera o sistema operacional em execução; � Inicialização do Sistema Conclusão � Um sistema operacional é primeiramente um gerenciador de recursos, portanto o projeto desses sistemas está intimamente ligado aos recursos de software e hardware que devem gerenciar; � Entre os componentes de hardware, destaca-se a placa-mãe, onde estão fixados e ligados, todos os componentes físicos que serão gerenciados pelo sistema; � Para um sistema operacional começar a ser executado, a CPU deve ser inicializada e começar a executar o programa bootstrap em firmware; � O programa bootstrap pode executar o sistema operacional diretamente se este também estiver em firmware; � Pode concluir uma sequência em que carregue progressivamente programas mais “inteligentes” a partir do firmware e do disco até o SO ser carregado na memória e executado;
Compartilhar