SO - Aula 02 - Conceitos

5,876 views
5,804 views

Published on

Aulas 02, 03, 04 - Conceitos de
Hardware e Software

Published in: Education, Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,876
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
279
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

SO - Aula 02 - Conceitos

  1. 1. Sistemas Operacionais Aulas 02, 03, 04 - Conceitos de Hardware e Software
  2. 2. Introdução <ul><li>Conceitos </li></ul><ul><ul><li>Arquitetura de computadores </li></ul></ul><ul><ul><li>Hardware </li></ul></ul><ul><ul><li>Software </li></ul></ul>
  3. 3. Hardware <ul><li>Um sistema computacional é um conjunto de circuitos eletrônicos interligados (hardware) </li></ul><ul><li>Subsistemas básicos (unidades funcionais) </li></ul><ul><ul><li>Processador ou Unidade Central de Processsamento </li></ul></ul><ul><ul><li>Memória principal </li></ul></ul><ul><ul><li>Dispositivos de entrada e saída (E/S) </li></ul></ul>
  4. 4. Processador <ul><li>Gerencia todo o sistema computacional controlando as operações realizadas em cada unidade funcional </li></ul><ul><li>Controlar e executar instruções presentes na memória principal, por meio de operações básicas como somar, subtrair, comparar e movimentar dados </li></ul>
  5. 5. Processador <ul><li>É composto de: </li></ul><ul><ul><li>Unidade de controle (UC) </li></ul></ul><ul><ul><ul><li>Gerencia as atividades de todos os componentes do computador, como a gravação de dados em discos ou busca de instruções </li></ul></ul></ul><ul><ul><li>Unidade lógica e aritmética (ULA) </li></ul></ul><ul><ul><ul><li>Realiza operações lógicas (testes e comparações) e aritméticas (adições e subtrações) </li></ul></ul></ul><ul><ul><li>Registradores </li></ul></ul><ul><ul><ul><li>Armazenam dados temporariamente </li></ul></ul></ul>
  6. 6. Memória principal <ul><li>Memória principal, primária ou real é o local onde são armazenados instruções e dados </li></ul><ul><li>É composta de unidades de acesso chamadas células, sendo cada uma composta de um determinado número de bits </li></ul><ul><li>O acesso ao conteúdo de uma célula é feito pela especificação de um número chamado endereço no registrador de endereço de memória (Memory Address Register) </li></ul>
  7. 7. Memória cache <ul><li>Memória volátil de alta velocidade, porém com pequena capacidade de armazenamento </li></ul><ul><li>Tempo de acesso menor que a memória principal </li></ul><ul><li>Armazena uma pequena parte do conteúdo da memória principal </li></ul><ul><li>Se a informação não estiver presente no cache, o processador acessa a memória principal </li></ul><ul><li>Durante a execução de um programa, as referências às instruções e dados tendem a estar em endereços próximos </li></ul><ul><li>Programas estrututurados </li></ul><ul><li>Alto custo, baixa capacidade de armazenamento </li></ul>
  8. 8. Memória secundária <ul><li>Meio permanente (não volátil) de armazenamento de programas e dados </li></ul><ul><li>Acesso lento, comparado a memória principal </li></ul><ul><li>Capacidade de armazenamento superior </li></ul><ul><li>Disquete, HD, CD, DVD, fita magnética </li></ul>
  9. 9. Dispositivo de E/S <ul><li>Permitir comunicação entre o sistema computacional e mundo externo </li></ul><ul><li>Categorias </li></ul><ul><ul><li>Memória secundária </li></ul></ul><ul><ul><ul><li>Custo relativamente baixo </li></ul></ul></ul><ul><ul><li>Interface usuário-máquina </li></ul></ul><ul><ul><ul><li>Teclado, monitor de vídeo, impressora, plotter, etc </li></ul></ul></ul>
  10. 10. Barramento ou Bus <ul><li>Meio físico de comunicação entre as unidades funcionais de um sistema computacional </li></ul><ul><li>Dados, sinais de controle, endereços trafegam por seus condutores entre processadores, memórias e dispositivos de E/S </li></ul><ul><li>Linhas de controle e linhas de dados </li></ul>
  11. 11. Barramento ou Bus <ul><li>Classificação de barramentos </li></ul><ul><ul><li>Processador-memória </li></ul></ul><ul><ul><ul><li>Curta extensão, alta velocidade </li></ul></ul></ul><ul><ul><ul><li>Costumam ser proprietários </li></ul></ul></ul><ul><ul><li>Entrada e saída </li></ul></ul><ul><ul><ul><li>Maior extensão, baixa velocidade, conexão de diferentes dispositivos </li></ul></ul></ul><ul><ul><ul><li>Costumam ser padronizados (PCI, SCSI) </li></ul></ul></ul><ul><ul><li>Backplane </li></ul></ul><ul><ul><ul><li>O barramento de E/S não se conecta diretamente ao barramento processador-memória. Existe um barramento de backplane que integra os dois barramentos </li></ul></ul></ul>
  12. 12. Pipelining <ul><li>Técnica que permite ao processador executar múltiplas instruções paralelamente em estágios diferentes </li></ul><ul><li>A execução de uma instrução é dividida em subtarefas, como as fases de busca da instrução e dos operandos, execução e armazenamento dos dados </li></ul><ul><li>O pipelining pode ser empregado em sistemas com um ou mais processadores, em diversos níveis </li></ul><ul><li>Técnica mais usada para aumentar o paralelismo </li></ul>
  13. 13. Arquitetura <ul><li>Linguagem de máquina </li></ul><ul><ul><li>Conjunto definido de instruções de máquina </li></ul></ul><ul><li>Arquitetura </li></ul><ul><ul><li>RISC </li></ul></ul><ul><ul><li>CISC </li></ul></ul>
  14. 14. Arquitetura RISC <ul><li>Reduced Instruction Set Computer </li></ul><ul><li>Possui poucas instruções de máquina executadas diretamente pelo hardware </li></ul><ul><li>Muitos registradores </li></ul><ul><li>Pouca lógica de controle </li></ul><ul><li>Instruçoes executadas rapidamente </li></ul><ul><li>Poucas instruções acessam a memória principal </li></ul><ul><li>Facilita a implementação de pipelining </li></ul>
  15. 15. Arquitetura CISC <ul><li>Complex Instruction Set Computer </li></ul><ul><li>Possui instruções complexas interpretadas por microprogramas </li></ul><ul><li>Lógica de controle complexa </li></ul><ul><li>Número de registradores pequeno </li></ul><ul><li>Qualquer instrução referencia a memória principal </li></ul><ul><li>Difícil fazer pipelining </li></ul>
  16. 16. Microprogramação <ul><li>Definem a linguagem de máquina de um computadore CISC </li></ul><ul><li>O código executável de um processador CISC é interpretado por microprogramas durante sua execução, gerando microinstruções, que finalmente são executadas pelo hardware </li></ul><ul><li>Para cada instrução em linguagem de máquina, existe um microprograma </li></ul>
  17. 17. Software <ul><li>Conjunto de programas, utilizado como interface entre as necessidades dos usuários e as capacidades do hardware </li></ul><ul><li>A utilização adequada do software torna o trabalho dos usuários mais simples e eficiente </li></ul>
  18. 18. Tradutor <ul><li>Linguagem de máquina </li></ul><ul><li>Linguagens de montagem (assembly) </li></ul><ul><li>Linguagens de alto nível </li></ul><ul><li>Tradutor converte a representação simbólica das instruções é traduzida para código de máquina </li></ul><ul><li>O código gerado pelo tradutor é chamado de módulo-objeto e normalmente não pode ser diretamente executado, precisando de um linker </li></ul><ul><li>Dependendo do código fonte, divide-se em montador e compilador </li></ul>
  19. 19. Montador e compilador <ul><li>Montador (assembler) </li></ul><ul><ul><li>Traduz o programa-fonte, escrito em linguagem de montagem, para um programa objeto não executável </li></ul></ul><ul><ul><li>Baixa portabilidade </li></ul></ul><ul><li>Compilador </li></ul><ul><ul><li>Traduz o programa-fonte, escrito em linguagem de alto nível, para um programa objeto não executável </li></ul></ul><ul><ul><li>Alta portabilidade </li></ul></ul>
  20. 20. Interpretador <ul><li>Tradutor que não gera código-objeto </li></ul><ul><li>Traduz e executa as instruções imediatamente </li></ul><ul><li>Maior tempo gasto na tradução das instruções toda vez que for executado </li></ul><ul><li>Permite tipos de dados dinâmicos </li></ul><ul><li>Mais flexível </li></ul>
  21. 21. Linker ou editor de ligação <ul><li>Gera, a partir de um ou mais módulos objeto, um único programa executável </li></ul><ul><li>Resolve todas as referências simbólicas existentes entre os módulos </li></ul><ul><li>Reservar memória para a execução do programa </li></ul><ul><li>Pesquisa em bibliotecas do sistema ou criadas pelo usuário </li></ul><ul><li>Bibliotecas são arquivos que contém diversos módulos-objeto e/ou definições de símbolos </li></ul>
  22. 22. Linker ou editor de ligação <ul><li>Reloca os programas, ou seja, determina a região de memória onde o programa será carregado para execução </li></ul><ul><li>Link estático </li></ul><ul><ul><li>A relocação é feita em tempo de linkedição </li></ul></ul><ul><li>Link dinâmico </li></ul><ul><ul><li>A relocação é feita em tempo de execução pelo loader </li></ul></ul><ul><ul><li>Sobrecarga de processamento </li></ul></ul>
  23. 23. Loader ou carregador <ul><li>Responsável por carregar na memória principal principal um programa para ser executado </li></ul><ul><li>Procedimento de carga varia de acordo com o código gerado pelo linker </li></ul><ul><ul><li>Código absoluto </li></ul></ul><ul><ul><ul><li>Endereço inicial fixo, tamanho do módulo </li></ul></ul></ul><ul><ul><li>Código relocável </li></ul></ul><ul><ul><ul><li>Carregado em qualquer posição da memória </li></ul></ul></ul>
  24. 24. Debugger ou depurador <ul><li>Utilitário que permite ao desenvolvedor acompanhar toda a execução de um programa a fim de detectar erros na lógica </li></ul><ul><ul><li>Acompanha a execução instrução por instrução </li></ul></ul><ul><ul><li>Alteração ou inspeção do conteúdo das variáveis </li></ul></ul><ul><ul><li>Pontos de interrupção (breakpoints) </li></ul></ul><ul><ul><li>Visualização de variáveis ou valores (watchpoints) </li></ul></ul>
  25. 25. Shell ou interpretador de comandos <ul><li>Permite que o usuário se comunique com o sistema operacional </li></ul><ul><li>Acesso a funções e rotinas do sistema </li></ul><ul><li>Os comandos são enviados para o shell, que verifica sua sintaxe, envia mensagens de aviso ou erro e faz chamadas a rotinas do sistema </li></ul><ul><li>Linguagem de comandos ou de controle </li></ul><ul><li>Em geral, não faz parte do SO </li></ul>
  26. 26. Ativação/desativação do sistema <ul><li>Inicialmente todo o SO está na memória secundária </li></ul><ul><li>Após o computador ser ligado, o SO é carregado para a memória principal (ativação do sistema, bootstrap ou boot) </li></ul><ul><li>O procedimento varia em função do equipamento </li></ul><ul><li>Além do SO, também ocorre a execução de arquivos de inicialização </li></ul><ul><li>Na maioria dos SO existe também um procedimento de desativação (shutdown) </li></ul><ul><ul><li>Permite a desativação ordenada, garantindo sua integridade </li></ul></ul>

×