UFRJ IM - DCC Sistemas Operacionais I Unidade I Fundamentos de Hardware e de Software 11/02/2014 Prof. Valeria M. Bastos 1
ORGANIZAÇÃO DA UNIDADE Introdução Introdução Conceituação de SO Fundamentos de Hardware e Software Funções Básicas Organização e Componentes de um SC Breve Organização Histórico Física e Funcional do Processador Tipos Estrutura de de SO Armazenamento Estrutura de E/S Fundamentos de Hardware e Software Linguagens, Programas e Instruções Estruturas de Sistemas Operacionais Estruturas de Sistemas Operacionais 2
Analógico x Digital Circuito Analógico Trabalha com o sinal na forma contínua Construído com base em componentes eletrônicos discretos: resistores, capacitores, indutores, válvulas e transistores Circuito Digital Trabalha com o sinal na forma digital Construído com base em portas lógicas, que implementam a lógica booleana 3
Portas Lógicas Básicas Portas E, Ou, Não E, Não Ou, Ou Exclusivo A B E Ou Não E Não Ou XOR 0 0 0 0 1 1 0 0 1 0 1 1 0 1 1 0 0 1 1 0 1 1 1 1 1 0 0 0 4
Tipos de Circuitos Digitais Combinacionais Implementam a lógica digital sem memória a saída no instante t depende apenas das entradas em t Sequenciais Implementam a lógica digital com memória a saída no instante t depende da entrada e do estado em t-1 Contadores, buffers, registradores, memória,... 5
Hardware x Software Com os circuitos sequenciais surgiu o conceito de memória Com a memória surgiu a possibilidade de armazenar sequências de valores binários Com os valores binários armazenados aplicados sobre circuitos combinacionais e sequenciais, surge o conceito de programa internamente armazenado A adição de lógica (desvios no fluxo de execução) no programa armazenado, dá uma sintaxe e uma semântica às unidades de operação (instruções), e surge o conceito de software. 6
Computador Surge da união de Hardware e Software para uso genérico Aplicativo Utilitário Básico Software Hardware 7
Sistema Operacional Hardware Fundamentos Organização e Componentes Entrada CPU Saída Barramento Comunicação Memória Armazenamento 8
Barramento É o meio de comunicação entre os diferentes componentes de um Sistema de Computação É o caminho por onde transitam: dados, endereços e sinais de controle. 9
Barramentos Barramento Síncrono Tem por base um relógio temporizador que define a frequência de operação do mesmo (ciclo de barramento). Toda operação de transferência é sincronizada com a frequência do barramento. Toda operação consome um número inteiro e conhecido de ciclos. Barramento Assíncrono Não existe temporizador Os ciclos duram o tempo que for requerido pela operação Uma mesma operação pode ter ciclos variáveis Faz uso de um processo de sinalização (handshake) 10
Barramento Barramento Síncrono T1 T2 T3 T4 T5 Endereço da Posição de Memória Dado MREQ RD Tempo Ciclo de barramento 11
Barramentos Barramento Assíncrono Endereço da Posição de Memória MREQ RD MSYN Dado SSYN Tempo 12
Barramentos Síncrono Mais fácil de ser construído Maior velocidade de operação Assíncrono Maior flexibilidade de uso Oferecem vantagens para atendimento a um conjunto heterogêneo de dispositivos (lentos e rápidos) A maioria dos barramentos é Síncrono 13
Organização do processador Barramento externo Barramento de Dados Barramento de Endereços I/O BR MBR I/O AR MAR Barramento interno AC ULA TR UC IR Decodificador de Instrução e Controlador do Ciclo de Máquina PC R1 Sinais de controle Rn 14
CPU 8086 AH AL BH BL CH CL DH DL SP BP SI DI ULA UC PSW RI AX BX CX DX Pilha Indexadores Barramento Interno IP CS 0000 DS 0000 SS 0000 ES 0000 1 2 3 4 5 6 Ctrl Barramento 15
CPU Pentium Superescalar Cache Instrução Lógica Predição 64 bits BIU 64 bits 32 bits U-PIPE Buffer Pré-Fetch U L A U L A 64 bits V-PIPE FPU + X % FPU-PIPEPIPE Banco Registradores Cache Dados 64 bits Pipelines 5 estágios p/ inteiros 16
Registradores da CPU Componentes internos de trabalho da CPU, constituem uma área de armazenamento de acesso mais rápido porém de menor capacidade que a memória principal. Tipos:{ Registradores Visíveis : Registradores de Controle e Status Registradores de dados Registradores de endereço { Códigos de condição 17
Registradores da CPU Registradores Visíveis: Armazenamento temporário de dados durante o processamento Acessíveis via linguagem de máquina. Registradores de Controle e Status: Controlam o funcionamento do processador e a execução dos programas Quando acessíveis por software, o são somente por rotinas privilegiadas. 18
Registradores da CPU Registradores Visíveis : Dados Podem ser usados pelo usuário para manipular dados e executar funções O programador/compilador determina a sua função Exemplo: Acumulador (AC) Registrador que armazena uma das entradas da ULA Registrador Temporário (TR) Registradores de uso genérico 19
Registradores Visíveis : Endereço Contêm endereços de memória dos dados e das instruções Fundamentos Registradores da CPU Exemplo: Podem conter uma parte de um endereço que será usado para calcular o endereço completo. Stack Pointer (SP) Endereço do topo da pilha Segment Pointer (SX) Endereço inicial de um segmento Quando a memória é dividida em segmentos, ela é sempre referenciada pelo segmento e pelo deslocamento dentro do segmento (offset) Index Register / Offset Índice a ser adicionado a uma base para se obter o endereço do dado. 20
Registradores da CPU Registradores Visíveis : Condições Contem bits e flags de condição do resultado de uma operação Os bits são setados pelo hardware em função do resultado de cada operação realizada Podem ser acessados por um programa, apenas no modo leitura. Exemplo: Flag de sinal Flag de zero Flag de overflow Resultado positivo / negativo Resultado zero Resultado com estouro 21
Registradores da CPU Registradores Invisíveis : Controle e Status Program Counter (PC) Contém o endereço da próxima instrução a ser executada Instruction Register (IR) Contém a última instrução carregada da memória (corrente) Program Status Word (PSW) É um registrador (ou um grupo de registradores) que contém: códigos de condição e os bits de informação do status bit de interrupção habilitado/desabilitado bit de modo de operação supervisor/usuário 22
Grupos de Registradores 8086 Grupo Registradores de uso geral (RG) Registradores de pilha (RP) Registradores de Indexação (RI) Registradores de segmento (RS) Registrador de estado (PSW Processor Status Word) Descrição Podem ser utilizados como um registrador de 16 bits ou em dois de 8 bits. São utilizados em operações lógicas e aritméticas São utilizados para acessar dados no segmento de pilha, mas também podem ser utilizados em operações lógicas e aritméticas de 16 bits. São utilizados para acesso aos dados, principalmente em operações com cadeias de caracteres (string). São utilizados como seletores de faixas de endereços. O endereço de um segmento é dado pelo conteúdo do registrador de segmento deslocado de 4 bits à esquerda. Retrata o estado do programa em execução.. No 8086, somente os 16 primeiros bits existem e os bits 12, 13, 14 e 15 são reservados. 23
Registradores 8086 Formação de endereço 24
PSW do 8086 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 O D I T S Z A P C C Vai Um P Paridade A Vai Um Aux Z Zero S Sinal T Trap I Interrupção D Direção O Overflow 25
Registradores de segmento 8086 Registradores de Segmento CS Descrição Designa o endereço base do segmento de código do programa. O registrador de deslocamento associado é o registrador IP. DS Utilizado como referência para acesso ao segmento de dados, exceto para operações com a pilha e operações utilizando cadeia de caracteres SS Referência para acesso à pilha, utilizando SP e BP como registradores de deslocamento. ES Em conjunto com o registrador DI é utilizado para operações com cadeias de caracteres 26
Registradores do 80386 Registradores de uso geral EAX AH AL Acumulador EBX BH BL Base ECX CX CL Contador EDX DX DL Dados Registradores de ponteiros e Pilha Source Index ESI SI Destination Index EDI DI Instruction Pointer IP IP Stack pointer ESP SP Base pointer EBP BP 27
Registradores adicionais do 80386 Registradores de Controle Os registradores de 32 bits CR0, CR1, CR2 e CR3 contêm informações importantes para utilização dos novos recursos. No registrador CR0 cada bit possui uma determinada função, como por exemplo o bit 0, PE (protection enable), responsável pela seleção entre modo real e modo protegido. O registrador CR1 é reservado enquanto CR2 armazena o endereço linear que provocou uma falha de página e CR3 armazena informações de controle de paginação como os bits 12 a 31 que contém o endereço base do diretório de páginas. Registradores de depuração e testes Os registradores de depuração, também de 32 bits, DR0...DR7, fornecem recursos para rastreamento dos programas através do armazenamento de pontos onde o programa deverá ser executado passo a passo, enquanto os de teste, TR6 e TR7, são utilizados basicamente na inicialização do sistema operacional. Registradores de segmento de 32 bits Os registradores de segmento foram mantidos com 16 bits, porém foram adicionados os registradores FS e GS, que em conjunto com DS e ES são utilizados para apontar os quatro segmentos de dados permitidos. O endereçamento através do conteúdo do registrador de segmento adicionado ao deslocamento dentro do segmento fica então restrito ao modo real. Em modo protegido é utilizado o endereçamento via descritores 28
Registradores apontadores do 80386 Registradores apontadores de tabela para endereçamento em modo protegido GDTR End da GDT Tam da GDT IDTR End da IDT Tam da IDT LDTR descritor da LDT na GDT End base da LDT da tarefa em execução Tam da LDT TR descritor da TSS na GDT End base da TSS da tarefa em execução Tam da TSS 63 47 15 0 GDTR registrador que aponta para a base da tabela de descritores globais (GDT) LDTR registrador que aponta para a base da tabela de descritores locais (LDT) IDTR registrador que aponta para a base da tabela de interrupções (IDT) TR registrador que aponta para a base do segmento de estado de uma tarefa (TSS) 29
Modo protegido do 80386 Acesso a memória em modo protegido 30
Modo protegido do 80386 Descrição das tabelas Tabela de descritores globais (GDT) Criada e gerenciada pelo sistema operacional, armazena descritores de segmento para os segmentos que podem ser acessados por todas as tarefas. Tabela de descritores locais (LDT) Armazena descritores utilizados para cada tarefa ativa. Tabela de descritores de interrupção (IDT): Armazena as informações para desviar o controle para a rotina de tratamento adequada. Segmento de estado da tarefa (TSS) É criado pelo sistema operacional para cada tarefa em execução concorrente e armazena o conteúdo dos registradores que serão carregados nos registradores do processador quando uma tarefa for selecionada para execução. Diretório de páginas e tabela de páginas Utilizados na implementação de memória virtual. 31
Modo protegido do 80386 Obtenção do endereço linear 1. Obtém-se dos últimos 13 bits do seletor de segmento ( CS, DS, ES, FS, GS ou SS) o índice para acesso a tabela de descritores GDT ou LTD, conforme o terceiro bit do mesmo seletor: 0 para acesso a GDT 1 para acesso a LDT. 2. Cada uma das tabelas pode possuir 8192 descritores, uma vez que 2 13 = 8192. 3. Os primeiros 32 bits da tabela na posição indicada pelo seletor corresponderá ao endereço do segmento. 4. Este endereço base é adicionado ao conteúdo do registrador de deslocamento resultando no endereço linear. 32
Registrador de Status 1 1 1 0 F E D C B A 9 8 7 6 5 4 3 2 1 0 CF - Carry Flag Fundamentos PSW do 80386 1 PF - Flag de Paridade 0 AF - Flag Auxiliar 0 ZF - Zero Flag SF - Flag de Sinal TF - Trap Flag (Single Step) IF - Flag de Interrupção DF - Flag de Direção OF - Flag de Overflow IOPL - Nível de Privilégio I/O (286+) IOPL - Nível de Privilégio I/O (286+) NT - Nested Task Flag (286+) 0 RF - Resume Flag (386+) VM - Flag de Modo Virtual (386+) 33
Memória armazena dados e programas também conhecida como memória real ou primária volátil endereçável por célula UCP M A R M B R Address Bus Data Bus R/W bit MP MREQ bit Conexão UCP X MP 34
Endereço 0 Endereço 1 Endereço 2 Endereço 3 M bits M bits M bits M bits Fundamentos Memória Organização Básica Todas as células têm a mesma quantidade M de bits ~ ~ ~ ~ N células Endereço N - 2 Endereço N - 1 Bit 0 Bit 1 Bit M-1 35
armazena de forma permanente dados e programas também conhecido como memória secundária não volátil endereçável por setor Tipos Magnéticos Ópticos discos fitas CDR CDRW DVD Fundamentos Armazenamento removíveis disquetes zip disks Fixos - HDs rolo cartucho cassete 36
transportam dados entre o computador (CPU/memória) e seu ambiente externo (periféricos) como: memória secundária (ex. disco rígido) teclado, monitor, dispositivos de comunicação Fundamentos Entrada e Saída Requisitos: - controladora - driver HD UCP MP Interface Serial Interface Serial Interface Paralela Interface Paralela Interface Dedicada Estrutura de um Sistema de I/O barramento 37
Linguagem Fundamentos Vocabulário e conjunto de regras de sintaxe e semântica usados para a construção de programas. Programa Linguagens, programas e instruções Sequência de instruções organizadas de forma lógica para ao ser executado pelo computador (hardware) executa alguma função específica. Instrução Sequência de bits que são interpretados pela UC e que disparam operações lógicas ou aritméticas a serem executadas pelos circuitos do hardware. (dependente do hardware) 38
Programas e Instruções Sou o primeiro vírus excêntrico! Como nós, os excêntricos, não temos experiência em programação em computadores, este vírus só funciona a base da confiança. Por favor, apague TODOS os arquivos do seu computador manualmente e envie esta mensagem a todos os membros da sua lista de endereços de correio eletrônico. Obrigado pela colaboração. Manuel 39
Programa Fonte Fundamentos Tradução de programas Compilador Programa Objeto Biblioteca de funções Interpretador Link-Editor Programa Executável Instrução Executável 40
Ciclo básico de instruções Início Busca da próxima instrução Executa instrução Parada Ciclo de busca Ciclo de execução O ciclo de instrução é uma máquina de estados em hardware: Estado 1: Busca da próxima instrução IR M[PC]; PC PC + 1; Estado 2: UC decodifica e executa IR Se fim parada, senão volta estado 1 41
Início Ciclo básico de instruções Busca Instrução Fundamentos Trata Interrupção SO Decodifica Instrução (*) Observações: Busca Operandos N Interrupção Pendente? Ciclo de Busca de Operandos Opcional Troca de Contexto Executa instrução Salva processo corrente e passa a atender o próximo Trata Interrrupção Rotina de Serviço do SO que trata solicitações feitas Salva Resultado Fim? S Troca Contexto 42
Acesso à memória Transferência de dados entre o processador e a memória Entrada / saída Transferência de dados entre o processador e o dispositivo Tratamento de dados Operações aritméticas ou lógicas Controle (desvios) Fundamentos Tipos de instrução Alteração da seqüência de execução de instruções Formatos de Instrução : 0 / 1 / 2 / 3 endereços 43
Modos de Endereçamento Fundamentos Instruções do 80386 Imediato ADD CH,5F Registrador ADD BX,DX Direto ADD VAR,BX Registrador indireto ADD CX,[BX] Indexado (ou base) ADD [SI+6].AL Base indexado com deslocamento ADD [BX+DI+5].DX Tipos de instrução Acesso à memória MOV AX, [TOTAL] MOV [TOTAL],AX Entrada / saída IN AX, 72h OUT DX, AX Tratamento de dados XOR AX, BX ADD AX,BX Controle (desvios) JNE JMP Label 44
Fluxo de Execução Passo 1 Busca da Instrução a ser executada IR M[PC] Passo 2 Instrução corrente é decodificada UC decodifica IR Passo 3 Operandos são buscados Rx M[IR(end)] Passo 4 O conteúdo de PC é atualizado PC PC + D Passo 5 A instrução corrente é executada UC gera sinais de controle de acordo com o campo IR(Opcode) Passo 6 O resultado da operação é salvo M[?] resultado ou pode permanecer em registrador Passo 7 Verifica término do programa Se positivo troca contexto e volta para passo 1 Passo 8 Verifica existência de interrupção pendente Se positivo trata interrupção, senão volta para passo 1 45
Passo 1 Fluxo de execução - Exemplo 300 301 302 Memória 1 9 4 0 5 9 4 1 2 9 4 1 Registradores 3 0 0 PC 1 9 4 0 AC IR Lista parcial dos códigos de operação 0001 = Carrega AC da memória 0010 = Armazena AC na memória 0101= Adiciona em AC o valor da memória 940 941 0 0 0 3 0 0 0 2 IR M[PC] Memória Registradores Formato da Instrução Opcode Endereço 15 12 11 0 Passo 2 300 301 302 940 941 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 0 PC 0 0 0 3 1 9 4 0 AC IR AC M[IR(end)] 46
Passo 3 Fluxo de execução - Exemplo 300 301 302 Memória 1 9 4 0 5 9 4 1 2 9 4 1 Registradores 3 0 1 PC 0 0 0 3 5 9 4 1 AC IR Lista parcial dos códigos de operação 0001 = Carrega AC da memória 0010 = Armazena AC na memória 0101= Adiciona em AC o valor da memória 940 941 0 0 0 3 0 0 0 2 IR M[PC] Memória Registradores 300 301 1 9 4 0 5 9 4 1 3 0 1 PC 0 0 0 5 AC 302 2 9 4 1 5 9 4 1 IR Passo 4 940 0 0 0 3 941 0 0 0 2 AC AC + M[IR(end)] 47
Passo 5 Fluxo de execução - Exemplo 300 301 302 Memória 1 9 4 0 5 9 4 1 2 9 4 1 Registradores 3 0 2 PC 0 0 0 3 2 9 4 1 AC IR Lista parcial dos códigos de operação 0001 = Carrega AC da memória 0010 = Armazena AC na memória 0101= Adiciona em AC o valor da memória 940 941 0 0 0 3 0 0 0 2 IR M[PC] Memória Registradores 300 301 1 9 4 0 5 9 4 1 3 0 1 PC 0 0 0 5 AC 302 2 9 4 1 5 9 4 1 IR Passo 6 940 0 0 0 3 941 0 0 0 2 M[IR(end)] AC 48
Fundamentos de Hardware 49
Tendências de Hardware Processadores com múltiplos núcleos família Core 2, Quad e I7 múltiplos pipelines múltiplos níveis de cache Armazenamento múltiplos discos em organização RAID Diversos tela touchscreen periféricos USB 50