SO - Aula 02 - Conceitos

Post on 13-Jan-2015

5.465 views 0 download

description

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

Transcript of SO - Aula 02 - Conceitos

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