Baixe o app para aproveitar ainda mais
Prévia do material em texto
Sistemas Operacionais 1 – Introdução ao estudo de Sistemas Operacionais Instituto Educacional Santo Agostinho – IESA Faculdade de Ciências Exatas e Tecnológicas Santo Agostinho – FACET Siste m as d e In fo rm ação - FA SA Fev / 2016 Rafael Antonio Gonçalves Lima Sumário 1.5. Tipos de Hardware e Software. Siste m as d e In fo rm ação - FA SA 1.5.1. Hardware Um sistema computacional é um conjunto de circuitos eletrônicos interligados, formado por processadores, memórias, registradores, barramentos, monitores de vídeo, impressoras, mouse, discos magnéticos, além de outros dispositivos físicos (hardware). Todos esses dispositivos manipulam dados na forma digital, o que proporciona uma maneira confiável de representação e transmissão de dados. Siste m as d e In fo rm ação - FA SA 1.5.1. Hardware • Os componentes de um sistema computacional são agrupados em três subsistemas básicos, chamados unidades funcionais: • Processador ou unidade central de processamento (UCP) • Memória principal • Dispositivos de entrada/saída Siste m as d e In fo rm ação - FA SA 1.5.2. Processador • Gerencia todo o sistema computacional controlando as operações realizadas por cada unidade funcional. • A função principal é controlar e executar instruções presentes na memória principal, através de operações básicas como somar, subtrair, comparar e movimentar dados. Siste m as d e In fo rm ação - FA SA 1.5.2. Processador Siste m as d e In fo rm ação - FA SA 1.5.2. Processador • Cada processador é composto por: • Unidade de Controle: • Responsável por gerenciar atividades de todos os componentes do computador, como a gravação de dados em discos ou a busca de instruções na memória. • Unidade Lógica e Aritmética: • Responsável pela realização de operações lógicas (testes e comparações) e aritméticas (somas e subtrações). • Registradores: • Função principal de armazenar dados temporariamente. O conjunto de registradores funciona como uma memória de alta velocidade interna do processador, porém com uma capacidade de armazenamento reduzida e custo maior que o da memória principal. Siste m as d e In fo rm ação - FA SA 1.5.2. Processador - Registradores • Alguns registradores podem ser manipulados por instruções (registradores de uso geral), enquanto outros são responsáveis por armazenar informações de controle do processador e do sistema operacional (registrador de uso específico). • Entre os registradores de uso específico, temos: • O contador de instruções (CI) ou program counter (PC); • O apontador da pilha (AP) ou stack pointer (SP); • O registrador de status ou program status word (PSW); Siste m as d e In fo rm ação - FA SA 1.5.3. Memória Principal • A memória principal, primária ou real é o local onde são armazenados instruções e dados. • A memória é composto por unidades de acesso chamadas células, sendo cada célula composta por um determinado número de bits. • Atualmente, a grande maioria dos computadores utiliza o byte (8 bits) como tamanho de célula. • O acesso ao conteúdo de uma célula é realizado através de um número (endereço de memória). Siste m as d e In fo rm ação - FA SA 1.5.3. Memória Principal • A especificação do endereço é realizada através de um registrador denominado registrador de endereço de memória (memory address register – MAR). • Através do conteúdo deste registrador, a unidade de controle sabe qual a célula de memória que será acessada. • Outro registrador usado em operações com a memória é o registrador de dados da memória (memory buffer register – MBR). Siste m as d e In fo rm ação - FA SA 1.5.3. Memória Principal Siste m as d e In fo rm ação - FA SA 1.5.3. Memória Principal • A memória principal pode ser classificada em função de sua volatilidade, que é a capacidade de a memória preservar o seu conteúdo mesmo sem uma fonte de alimentação ativa. • Memórias do tipo RAM (Randon Access Memory) são voláteis, enquanto as memórias ROM (Read-Only Memory) e EPROM (Erasable Programmable ROM) são do tipo não voláteis. Siste m as d e In fo rm ação - FA SA 1.5.4. Memória Cache • A memória cache é uma memória volátil de alta velocidade, porém com pequena capacidade de armazenamento. • O tempo de acesso a um dado nela contido é muito menos que se o mesmo estivesse na memória principal. • O propósito do uso da memória cache é minimizar a disparidade existente entre a velocidade com que o processador executa instruções e a velocidade com que os dados são lidos e gravados na memória principal. Siste m as d e In fo rm ação - FA SA 1.5.4. Memória Cache • A memória cache armazena uma pequena parte do conteúdo da memória principal. • Toda vez que o processador faz referência a um dado armazenado na memória, é verificado, primeiramente, se o mesmo encontra-se na memória cache. Siste m as d e In fo rm ação - FA SA 1.5.4. Memória Cache • Apesar de possuir um tempo adicional para a transferência de dados entre as diferentes memórias, esse tempo é compensado pela melhora do desempenho, justificado pelo alto percentual de referências a endereços que são resolvidos na cache. • Isso ocorre devido ao princípio da localidade. Siste m as d e In fo rm ação - FA SA 1.5.4. Memória Cache • A localidade é a tendência de o processador, ao longo da execução de um programa, referenciar instruções e dados na memória principal localizados em endereços próximos. • Essa tendência é justificada pela alta incidência de estruturas de repetição, chamadas a sub-rotinas e acesso a estruturas de dados como vetores e tabelas. • Assim, haverá alta probabilidade de cache hits (os dados estarem na memória cache) em futuras referências, otimizando assim, o tempo de acesso. Siste m as d e In fo rm ação - FA SA 1.5.4. Memória Cache • A maioria dos processadores apresenta uma arquitetura de memória cache com múltiplos níveis. • L1 (Level 1) – Nível cache mais alto com baixa capacidade de armazenamento e com altíssima velocidade de acesso. • L2 (Level 2) – Possui maior capacidade de armazenamento, porém com velocidade de acesso inferior a L1. Siste m as d e In fo rm ação - FA SA 1.5.5. Memória Secundária • A memória secundária é um meio permanente, isto é, não volátil de armazenamento de programas e dados. • Enquanto a memória principal precisa estar sempre energizada para manter suas informações, a memória secundária não precisa de alimentação. • O acesso a essa memória é lento, se comparado com o acesso à memória principal, porém seu custo é baixo e sua capacidade de armazenamento é bem superior. Siste m as d e In fo rm ação - FA SA 1.5.6. Dispositivos de Armazenamento Siste m as d e In fo rm ação - FA SA 1.5.7. Dispositivos de Entrada e Saída (E/S) • Permitem a comunicação entre o Sistema Computacional e o mundo externo, e podem ser divididos em duas categorias: • Os que são utilizados como memória secundária; • Exemplos: Discos e fitas magnéticas • Os que servem para a interface usuário-máquina. • Exemplos: Teclados, monitores de vídeo, impressoras, scanner, caneta ótica, mouse, etc. Siste m as d e In fo rm ação - FA SA 1.5.8. Barramento • O barramento ou bus é um meio de comunicação compartilhado que permite a comunicação entre as unidades funcionais de um sistema computacional. • Atravésde condutores, informações como dados, endereços e sinais de controle trafegam entre processadores, memórias, e dispositivos de E/S. Siste m as d e In fo rm ação - FA SA 1.5.8. Barramento • Os barramentos são classificados em três tipos: • Barramentos processador-memória; • Curta extensão e alta velocidade para que seja otimizada a transferência de informação entre processadores e memórias. Geralmente utilizados em arquiteturas proprietárias. • Ex.: PCI (Peripheral Component Interconnect); • Barramentos de E/S; • Possuem maior extensão, são mais lentos e permitem a conexão de diferentes dispositivos. • Ex.: SCSI (Small Computer System Interface) Siste m as d e In fo rm ação - FA SA 1.5.8. Barramentos processador-memória e de E/S Siste m as d e In fo rm ação - FA SA 1.5.8. Barramento • Os barramentos são classificados em três tipos: • Barramentos de backplane. • Função de integrar os dois barramentos. Reduz o número de adaptadores existentes no barramento processador- memória, otimizando seu desempenho. Siste m as d e In fo rm ação - FA SA 1.5.8. Barramento de backplane Siste m as d e In fo rm ação - FA SA 1.5.8. Pipeline • Técnica que permite ao processador executar múltiplas instruções paralelamente em estágios diferentes. • Tem sido a técnica de paralelismo mais utilizada para aumentar o desempenho dos sistemas computacionais. • Analogia: Um tarefa é dividida em uma sequência de subtarefas, executadas dentro de uma linha de produção. Siste m as d e In fo rm ação - FA SA 1.5.8. Arquitetura Pipeline com 4 estágios Siste m as d e In fo rm ação - FA SA 1.5.9. Arquiteturas RISC e CISC • Linguagem de máquina de um computador é a linguagem de programação que é realmente entendida pelo processador. • Cada processador possui um conjunto definido de instruções de máquina, definido por seu fabricante, que fazem referências a detalhes, como registradores, modos de endereçamento e tipos de dados. • Um programa em linguagem de máquina pode ser diretamente executado pelo processador, no entanto, só pode ser executado em outra máquina com arquitetura igual. Siste m as d e In fo rm ação - FA SA 1.5.9. Arquiteturas RISC e CISC • RISC (Reduced Instruction Set Computer) • Possui poucas instruções de máquinas, em geral, bastante simples, que são executadas diretamente pelo hardware. • Geralmente estas instruções não acessam a memória principal, trabalhando principalmente com registradores (que são muitos). • Exemplos: • SPARC (Sun) • RS-6000 (IBM) • PA-RISC (HP) Siste m as d e In fo rm ação - FA SA 1.5.9. Arquiteturas RISC e CISC • CISC (Complex Instruction Set Computers) • Possuem instruções complexas que são interpretadas por microprogramas. • Número de registradores é pequeno, e qualquer instrução pode referenciar a memória principal • Implementação do pipeling é mais difícil. • Exemplos: • VAX (DEC); • Pentium (Intel); • 68xxx (Motorola); Siste m as d e In fo rm ação - FA SA 1.5.9. Arquiteturas RISC e CISC • Nos processadores RISC: • Um programa em linguagem de máquina é executado diretamente pelo hardware. • Nos processadores CISC: • Os microprogramas definem a linguagem de máquina da arquitetura CISC. • O código executável de um processador CISC é interpretado por microprogramas durante sua execução, gerando microinstruções que são executadas pelo hardware. Siste m as d e In fo rm ação - FA SA 1.5.9. Arquiteturas RISC e CISC • Os processadores chamados microprogramáveis são aqueles que permitem que novas instruções de máquina possam ser criadas através da criação de microprogramas. • Alguns equipamentos, como microprocessadores, não dispõem desse recurso, já que os microprogramas vêm gravados em memória do tipo ROM. Siste m as d e In fo rm ação - FA SA 1.5.9. Arquitetura RISC x Arquitetura CISC Siste m as d e In fo rm ação - FA SA 1.5.9. Arquitetura RISC x Arquitetura CISC Siste m as d e In fo rm ação - FA SA 1.5.10. Software • Para que o hardware tenha utilidade prática, deve existir um conjunto de programas utilizado como interface entre as necessidade do usuário e as capacidades do hardware. • No decorrer do texto, o termo utilitário fará referência a softwares relacionados mais diretamente com serviços complementares do sistema operacional, como compiladores, linkers e depuradores. • Os softwares desenvolvidos pelos usuários serão denominados aplicativos ou aplicações. Siste m as d e In fo rm ação - FA SA 1.5.11. Tradutor • Nos primeiros sistemas operacionais, o ato de programar era bastante complicado, já que o programador deveria possuir conhecimento da arquitetura da máquina e programar em painéis. Esses programas eram desenvolvidos em linguagem de máquina e carregados diretamente na memória principal para execução. • Com o surgimento das primeiras linguagens de montagem ou assembly e das linguagem de alto nível, o programador deixou de se preocupar com muitos aspectos pertinentes ao hardware, como em qual região da memória o programa deveria ser carregado ou quais endereços de memória seriam reservados para as variáveis. Siste m as d e In fo rm ação - FA SA 1.5.11. Tradutor • Apesar das inúmeras vantagens proporcionadas pelas linguagens de montagem e de alto nível, os programas escritos nessas linguagens não estão prontos para serem executados pelo processador. • Eles precisam passar por uma etapa de conversão, onde toda representação simbólica das instruções é traduzida para código de máquina. Essa conversão é realizada por um utilitário denominado: • Tradutor. Siste m as d e In fo rm ação - FA SA 1.5.11. Tradutor • O módulo gerado pelo tradutor é denominado módulo-objeto, que, apesar de estar em código de máquina, na maioria das vezes ainda não pode ser executado. • Isso ocorre em função de um programa chamar sub- rotinas externas e o tradutor não tem como fazer essa associação. • Essa função é realizada por outro utilitário denominado linker. Siste m as d e In fo rm ação - FA SA 1.5.11. Tradutor • Dependendo do tipo do programa-fonte, existem dois tipos de tradutores que geram módulos-objeto: • Montador (assembler); • - Responsável por traduzir um programa-fonte em linguagem de montagem em um programa-objeto não executável. • Compilador; • - Gera a partir de um programa escrito em linguagem de alto nível, um programa em linguagem de máquina não executável. Siste m as d e In fo rm ação - FA SA 1.5.11. Tradutor Siste m as d e In fo rm ação - FA SA 1.5.12. Interpretador • O interpretador é considerado um tradutor que não gera módulo-objeto. • A partir de um programa-fonte escrito em linguagem de alto nível, o interpretador, durante a execução do programa, traduz cada instrução e a executa imediatamente. • Ex.: Basic, Perl, • Desvantagem é o tempo gasto na tradução das instruções toda vez que ocorre a execução. • Vantagem de permitir implementação de tipos de dados dinâmicos. Siste m as d e In fo rm ação - FA SA 1.5.13. Linker • O linker ou editor de ligação é o utilitário responsável por gerar, a partir de um ou mais módulos-objeto, um único programa executável. • Para resolver todas as referências a símbolos, o linker também pode pesquisar em bibliotecas. • Outra função importante éa relocação, que determina a região de memória na qual o programa será carregado para execução. Siste m as d e In fo rm ação - FA SA 1.5.13. Linker • Em sistemas multiprogramáveis a relocação é de difícil implementação, já que a memória é compartilhada entre diversos programas. A solução é permitir que o programa seja carregado em regiões diferentes toda vez que for trazido para a memória. • Em alguns sistemas, o compilador realiza outras funções como resolver referências de endereço. Nesse caso o programa não precisa passar pela etapa de linkedição independente. Siste m as d e In fo rm ação - FA SA 1.5.13. Linker Siste m as d e In fo rm ação - FA SA 1.5.14. Loader • Outro utilitário (linking loader) fica responsável pela carga do programa na memória e pela sua execução. • O programa passa por um processo de link dinâmico, onde as referências globais são resolvidas no momento da execução. • Possui a desvantagem de sobrecarga de processamento (overhead) existente em cada execução do problema. Problema que não ocorre em sistemas que possuem linkers independentes. Siste m as d e In fo rm ação - FA SA 1.5.14. Loader • Responsável então por carregar na memória principal um programa a ser executado. • O loader pode ser classificado em: • Absoluto: • - O loader só necessita conhecer o endereço de memória inicial e o tamanho do módulo. • Relocável: • - O programa pode ser carregado em qualquer posição de memória, e o loader é responsável pela relocação no momento do carregamento. Siste m as d e In fo rm ação - FA SA 1.5.15. Depurador • O depurador (debugger) é o utilitário que permite ao usuário acompanhar toda a execução de um programa a fim de detectar erros na sua lógica. • Suas funções incluem: • Acompanhar a execução de um programa instrução por instrução; • Possibilitar a alteração e a visualização do conteúdo de variáveis; • Implementar pontos de parada (breakpoints); • Especificar que, toda vez que o conteúdo de uma variável for modificado, o programa envie uma mensagem (watchpoint). Siste m as d e In fo rm ação - FA SA Exercícios de Fixação 1. Quais são as unidades funcionais de um sistema computacional? 2. Quais os componentes de um processador e quais são suas funções? 3. O que são memórias voláteis e não voláteis? 4. Conceitue memória cache e apresente vantagens no seu uso. 5. Compare as arquiteturas de processadores RISC e CISC. 6. Por que o código-objeto gerado pelo tradutor ainda não pode ser executado? 7. Por que a execução de programas interpretados é mais lenta que a de programas compilados? 8. Quais a funções do linker? 9. Qual a principal função do loader? 10. Quais as facilidades oferecidas pelo depurador? Siste m as d e In fo rm ação - FA SA Bibliografia 1. MACHADO, Francis B. Arquitetura de Sistemas Operacionais. 4 ed. Rio de Janeiro: LTC, 2007. 2. TANENBAUM, Andrew S. Sistemas operacionais modernos. 2 Ed. Rio de Janeiro: Prentice-Hall, 2005. Siste m as d e In fo rm ação - FA SA Conteúdo da Próxima Aula • Concorrência. Obrigado ! Rafael A. G. Lima (rafaelg@fasa.edu.br) Siste m as d e In fo rm ação - FA SA
Compartilhar