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