Sistemas Operacionais 0. Visão geral de um sistema computacional Textos base: capítulo 1, Computer Organization and Architecture, W. Stallings capítulo 2, Operating Systems: Internals and Design Principles, W. Stallings IC - UFF Arquitetura de computadores Arquitetura de computadores refere-se às características visíveis pelo programador IC - UFF conjunto de instruções, número de bits de dados, mecanismos de E/S, modos de endereçamento exemplo: deve haver uma instrução de multiplicação? Organização de computadores Organização de computadores refere-se a como estas características são implementadas IC - UFF detalhes de h/w como sinais de controle, interfaces, tecnologia de memória exemplo: como implementar a instrução de multiplicação? Arquitetura x Organização Fabricantes oferecem famílias de modelos, com mesma arquitetura e diferentes organizações IC - UFF custo e desempenho diferentes compatibilidade de código mudança da organização com tecnologia Estrutura e Função Um computador é um sistema hierárquico. Em cada nível, o projetista se preocupa com sua estrutura e sua função Estrutura é a forma como os componentes se relacionam Função é a operação de cada componente parte dessa estrutura IC - UFF Função Funções básicas de um computador são: IC - UFF Processamento de dados Armazenamento de dados Movimentação de dados Controle Visão funcional Visão funcional de um computador Facilidade de armazenam. Equip. de moviment. de dados Ambiente de operação IC - UFF Mecanismo de controle Facilidade de processam. Estrutura: visão macro Computador Periféricos Memória principal UCP Computador Sistema de comunicação E/S Linhas de comunicação IC - UFF Estrutura: a UCP UCP Computador Registradores E/S Sistem. Com. Memória UCP Interconexão interna à UCP Unidade de controle IC - UFF ULA Estrutura: unidade de controle Unid. de controle UCP Seqüenciamento ULA Barra int. Unid. controle Registradores e decodificadores Regist. Memória de controle IC - UFF Computador: visão macro IC - UFF Ciclo de instrução Ciclo de busca Início IC - UFF Busca nova instrução Ciclo de execução Executa Instrução Parada Ciclo de busca PC contém o endereço da próxima instrução Instrução é buscada e colocada no IR para ser interpretada PC é incrementado (quase sempre!) IC - UFF Ciclo de execução UCP interpreta instrução e executa ação: IC - UFF UCP memória: transferência de dados UCP E/S: transferência de dados processamento de dados: operação lógica ou aritmética controle: alteração da seqüência de operação combinação dessas ações Organização da UCP Funções da UCP: buscar instruções interpretar instruções buscar dados processar dados UCP precisa fazer armazenamento temporário: registradores IC - UFF Registradores Espaço de trabalho temporário Quantidade e função varia entre processadores Uma das principais decisões de projeto Nível superior da hierarquia de memória IC - UFF Registradores visíveis São os que podem ser referenciados através de linguagem de máquina IC - UFF de uso geral (dados e endereçamento) de dados (e.g., acumulador) de endereço: segmento, índice, pilha, ... códigos de condição (só leitura) Registradores de controle e estado Visibilidade restrita Essenciais: PC, IR, MAR, MBR PSW: Program Status Word códigos de condição (sinal, zero, vai-um, estouro, permissão/inibição de interrupção, supervisor) Outros: SP, apontador de PCB, interrupção vetorizada IC - UFF Conceito de interrupção Mecanismo pelo qual outros módulos (e.g., E/S) interrompem processamento normal da UCP Tipos mais comuns de interrupção: IC - UFF programa (e.g., 0) temporização (e.g., escalonamento) E/S (e.g., fim de escrita em disco) falha de h/w (e.g., falta de energia) Fluxo de controle em programa IC - UFF Transferência de controle Programa do usuário Tratador de interrupção 1 2 i i+1 M IC - UFF Tratador de interrupção Programa que determina a natureza da interrupção e que realiza o tratamento adequado Controle é transferido para este programa após salvamento de algumas informações É parte do sistema operacional IC - UFF Ciclo de interrupção Ciclo de busca Ciclo de execução Ciclo de interrupção Interrupções inibidas Início Busca nova instrução Executa instrução Verifica interrupção: processa interrupção Interrupções permitidas Parada IC - UFF Tratamento da interrupção Algum controlador de dispositivo gera uma interrupção H/W UCP termina execução da instrução corrente UCP sinaliza reconhecimento da interrupção IC - UFF Salva o resto da informação de estado do processador S/W Processa interrupção UCP armazena PSW e PC na pilha de controle Restaura a informação de estado do processador UCP carrega novo valor do PC baseada na interrupção Restaura PSW e PC anteriores Interrupções múltiplas (1) Desabilita interrupções: seqüencial IC - UFF UCP ignora outras interrupções enquanto processa uma interrupção interrupções pendentes só são verificadas ao fim do tratamento da interrupção corrente interrupções tratadas na ordem seqüencial de ocorrência Tratamento seqüencial IC - UFF Interrupções múltiplas (2) Definição de prioridades IC - UFF interrupções de menor prioridade podem ser interrompidas por interrupções de maior prioridade quando há o término do tratamento da(s) de maior prioridade, UCP trata a(s) de menor prioridade Tratamento com prioridades IC - UFF Técnicas de comunicação de E/S E/S programado: (a) E/S por interrupção: (b) E/S por DMA: (c) IC - UFF Exemplo: leitura de um bloco Insert Read command to CPU I/O I/O Module Read Status of I/O Module Not Ready Check Status Insert Read command to CPU I/O Do something I/O Module else Read Status of I/O Module I/O CPU Error Condition Ready Done? (a) I/O CPU Write word CPU Memory into memory No Yes Next Instruction IC - UFF Read word from I/O Module I/O CPU Write word CPU Memory into memory No Error Condition Check Status Ready Read word from I/O Module Interrupt I/O CPU Done? Yes Next Instruction (b) Issue Read block command to I/O module Read status of DMA module CPU DMA Do something else Interrupt DMA CPU Next Instruction (c)