Baixe o app para aproveitar ainda mais
Prévia do material em texto
FATEC – SP - Carapicuíba - Análise e Desenvolvimento de Sistemas - Prof. Tiago Filho PÁG. � PAGE �24� II) ELEMENTOS DE HARDWARE : DIAGRAMA DE BLOCOS DE UM COMPUTADOR 1) CPU - UNIDADE CENTRAL DE PROCESSAMENTO RESPONSÁVEL PELA EXECUÇÃO DAS INSTRUÇÕES DOS PROGRAMAS ARMAZENADOS NA MEMÓRIA PRINCIPAL. CADA CPU RECONHECE UM DETERMINADO CONJUNTO DE INSTRUÇÕES, ONDE CADA INSTRUÇÃO CORRESPONDE A UM CIRCUITO NA CPU. A UCP TRABALHA EM DOIS ESTADOS DISTINTOS: ESTADO PROBLEMA OU USUÁRIOS E ESTADO SUPERVISOR. NO ESTADO PROBLEMA SÃO EXECUTADAS AS INSTRUÇÕES QUE PODEM SER EXECUTADAS PELO PROGRAMA PROBLEMA, ENQUANTO NO ESTADO SUPERVISOR TODAS AS INSTRUÇÕES PODEM SER EXECUTADAS. 1.1) COMPONENTES DA CPU : ULA (ALU) - UNIDADE DE ARITMÉTICA E LÓGICA EXECUTA AS OPERAÇÕES ARITMÉTICAS E LÓGICAS. POSSUI CIRCUITOS ESPECÍFICOS PARA EXECUÇÃO DAS INSTRUÇÕES DE MÁQUINA. UNIDADE DE CONTROLE : RESPONSÁVEL PELA BUSCA DAS INSTRUÇÕES NA MEMÓRIA, NA ORDEM DE EXECUÇÃO ESPECIFICADA PELO PROGRAMADOR E PELA DECODIFICAÇÃO DAS MESMAS. RELÓGIO: GERA PULSOS ELETRÔNICOS QUE IMPULSIONAM E SINCRONIZAM AS ATIVIDADES DOS ELEMENTOS ATIVOS DA CPU. O RELÓGIO CONTROLA O RITMO DE TRABALHO, CUJA FREQÜÊNCIA DETERMINA A DURAÇÃO DO CICLO DE MÁQUINA, QUE CORRESPONDE AO INVERSO DA FREQÜÊNCIA DO CLOCK O CICLO DE MÁQUINA DE UM PROCESSADOR CUJA FREQUÊNCIA DE CLOCK É 500 MHZ CORRESPONDE A 1 / 500.000.000, OU 0,000000002 SEGUNDOS OU 2 NANOSEGUNDOS. REGISTRADORES : SÃO PEQUENAS PORÇÕES DE RAM DE ALTA VELOCIDADE, UTILIZADOS PARA CONTER OPERANDOS, PARA COMUNICAÇÃO ENTRE OS APLICATIVOS E O SISTEMA OPERACIONAL E, PRINCIPALMENTE, PARA CONTER VALORES QUE REPRESENTAM OS ENDEREÇOS LÓGICOS DE MEMÓRIA. OS ENDEREÇOS LÓGICOS SÃO DERIVADOS DE ENDEREÇOS FÍSICOS, E SÃO FORMADOS POR UM ENDEREÇO FÍSICO ASSOCIADO A UM DESLOCAMENTO, OS QUAIS SÃO DETERMINADOS EM MOMENTOS DISTINTOS. A QUANTIDADE, TAMANHO, E NOMENCLATURA DOS REGISTRADORES SÃO ESPECÍFICOS A DETERMINADA FAMÍLIA DE PROCESSADORES. FORMATO DE UMA INSTRUÇÃO : COD OPER OPERANDOS O CÓDIGO DA OPERAÇÃO IDENTIFICA A AÇÃO A SER REALIZADA PELA CPU (SOMA, SUBTRAÇÃO, ETC.) OS OPERANDOS, CUJA QUANTIDADE, TIPICAMENTE, É 1, 2, OU 3 SÃO OS ELEMENTOS QUE SOFRERÃO A AÇÃO EXECUTADA PELA CPU. OS OPERANDOS PODEM SER CLASSIFICADOS EM: IMEDIATOS MEMÓRIA, REGISTRADOR EM FUNÇÃO DOS TIPOS DE OPERANDOS UTILIZADOS, AS INSTRUÇÕES SÃO CLASSIFICADAS EM: MEMÓRIA – MEMÓRIA: OS DOIS OPERANDOS ESTÃO EM MEMÓRIA (USO RESTRITO). Ex.: mov x,y MEMÓRIA – REGISTRADOR UM OPERANDO EM MEMÓRIA E OUTRO EM REGISTRADOR Ex.: add r1,y ; add y,r1 MEMÓRIA – IMEDIATO UM OPERANDO EM MEMÓRIA E OUTRO IMEDIATO. Ex.: add y,5 REGISTRADOR – REGISTRADOR AMBOS OPERANDOS EM REGISTRADORES. Ex.: add r1,r2 REGISTRADOR – IMEDIATO UM OPERANDO EM REGISTRADOR E O OUTRO IMEDIATO. Ex.: add r1,4 O CICLO DE EXECUÇÃO DE UMA INSTRUÇÃO, OBEDECE AOS SEGUINTES PASSOS : BUSCA DA INSTRUÇÃO NA MEMÓRIA. DECODIFICAÇÃO. CÁLCULO DO ENDEREÇO DA PRÓXIMA INSTRUÇÃO. ENDEREÇAMENTO DOS OPERANDOS. ATIVAÇÃO. VERIFICAÇÃO. ARMAZENAMENTO DOS RESULTADOS. TRÊS ARQUITETURAS DE CPU : SISD – SINGLE INSTRUCTION SINGLE DATA (ESCALARES). CORRESPONDE À MÁQUINA TRADICIONAL DE VON NEUMANN, QUE TEM APENAS UM FLUXO DE INSTRUÇÕES E DE DADOS, EXECUTADO POR UMA ÚNICA CPU E UMA MEMÓRIA. A PRIMEIRA INSTRUÇÃO É BUSCADA NA MEMÓRIA E ENTÃO EXECUTADA, A SEGUIR A SEGUNDA INSTRUÇÃO É BUSCADA E EXECUTADA. PODE-SE OBTER ALGUM PARALELISMO NESSA ARQUITETURA, COM MÁQUINAS PIPELINE. (A EXECUÇÃO DA INSTRUÇÃO É FEITA COMO EM UMA LINHA DE MONTAGEM). ESSA ARQUITETURA CORRESPONDE A UMA MÁQUINA VON NEUMANN COM CARACTERÍSTICA PIPELINE, COM A DISTRIBUIÇÃO DE FUNÇÕES ENTRE 5 UNIDADES. SIMD – SINGLE INSTRUCTION MULTIPLE DATA (VETORIAL) MIMD – MULTIPLE INSTRUCTIN MULTIPLE DATA (MULTIPROCESSADA) 2) BARRAMENTO : FORMADO POR 4 TIPOS DE LINHAS QUE INTERLIGAM OS COMPONENTES. LINHAS DE TENSÃO : UTILIZADAS PARA CONDUZIR ENERGIA AOS COMPONENTES. LINHAS DE CONTROLE : UTILIZADA PARA INDICAR A DIREÇÃO DA MOVIMENTAÇÃO DOS DADOS EM RELAÇÃO À CPU, O MOMENTO DA TRANSFERÊNCIA, ETC. 2.3) LINHAS DE DADOS : UTILIZADAS PARA TRÁFEGO DOS DADOS E INSTRUÇÕES ENTRE A CPU / MEMÓRIA / CONTROLADORAS DE ENTRADA E SAÍDA. O TAMANHO (QTDE. DE BITS) DA BARRA DE DADOS ESTABELECE A QUANTIDADE DE BITS QUE A CPU PODE LER OU GRAVAR COM UM ÚNICO ACESSO (TAMANHO DA PALAVRA). QUANDO REFERENCIAMOS UMA MÁQUINA COMO “DE 8 BITS “, “DE 16 BITS”, ETC., ESTAMOS REFERENCIANDO O TAMANHO DE SUA BARRA DE DADOS. OS TAMANHOS MAIS COMUNS SÃO : - 8 BITS - 16 BITS - 32 BITS - 64 BITS. LINHAS DE ENDEREÇOS UTILIZADAS PARA TRANSMITIR O ENDEREÇO FÍSICO DE MEMÓRIA OU ENDEREÇO DO DISPOSITIVO ONDE SERÁ FEITA A LEITURA OU GRAVAÇÃO. O TAMANHO (QTDE. DE BITS) LIMITA O TAMANHO MÁXIMO DE MEMÓRIA QUE A CPU PODE ENDEREÇAR, SENDO OS MAIS COMUNS : 20 BITS - ENDEREÇAM 1 MB 24 BITS - ENDEREÇAM 16 MB 32 BITS - ENDEREÇAM 4 GB (FFFF FFFF = 4.294.967.295) Windows como ele distribui a RAM 2.5) MEMÓRIA : É A PARTE DO COMPUTADOR OSDE ESTÃO OS PROGRAMAS EM EXECUÇÃO E OS DADOS NECESSÁRIOS À EXECUÇÃO DAS INSTRUÇÕES. A UNIDADE BÁSICA DE MEMÓRIA É O BIT, QUE PODE CONTER OS VALORES ZERO OU UM E QUE, AGRUPADOS DE 8 EM 8 FORMAM OS BYTES PARA A REPRESENTAÇÃO DE CARACTERES. O BYTE É A MENOR PORÇÃO DE MEMÓRIA ENDEREÇÁVEL (CÉLULA). OS CARACTERES SÃO FORMAOS A PARTIR DE DUAS TABELAS: ASCII E EBCDIC. UNIDADES DE MEDIDAS DE ARMAZENAMENTO EM COMPUTADOR: KILOBYTE = 1024 BYTES MEGABYTE = 1024 KB GIGABYTE = 1024 MB TERABYTE = 1024 GB PETABYTE = 1024 TB EXABYTE = 1024 PB ZETTABYTE = 1024 EB YOTTABYTE = 1024 ZB PARA A REPRESENTAÇÃO DOS CARACTERES DOIS MODELOS SÃO UTILIZADOS: SBCS (SINGLE BYTE CHARACTER SET) – UTILIZADO NO OCIDENTE, ONDE UM BYTE REPRESENTA UM CARACTERE. DBCS (DOUBLE BYTE CHARACTER SET) (PRÉ-UNICODE) – UTILIZADO NO ORIENTE, ONDE CADA CARACTERE É REPRESENTADO EM DOIS BYTES. EXISTEM VÁRIOS TIPOS DE MEMÓRIA, COM DIFERENTES UTILIZAÇÕES: RAM - RANDOM ACCESS MEMORY MEMÓRIA VOLÁTIL, UTILIZADA PARA ARMAZENAR PROGRAMAS EM EXECUÇÃO E DADOS ACESSÁVEIS POR ESSES PROGRAMAS. A RAM DIVIDE-SE EM 2 GRUPOS : RAM DINÂMICA E RAM ESTÁTICA (MEMÓRIA CACHE). O TAMANHO MÁXIMO É DETERMINADO PELO TAMANHO DA LINHA DE ENDEREÇOS. PODE SER REFERENCIADA COMO MEMÓRIA REAL OU PRINCIPAL ROM - READ ONLY MEMORY MEMÓRIA APENAS PARA LEITURA, NÃO VOLÁTIL, TAMBÉM CONHECIDA COMO FIRMWARE (HARDWARE PROGRAMADO). NOS PCs, CONTÉM ROTINAS ESPECIALISTAS DE I/O (MANIPULADORES DE INTERRUPÇÕES) E PROGRAMAS DE PARTIDA DO COMPUTADOR, COMO : ROTINAS DO BIOS : PRINT-SCREEN (05H) SERVIÇOS DE VÍDEO (10H) LISTA DE EQUIPTOS (11H) TAMANHO DA MEMÓRIA (12H) ACESSO A DISCO (13H) PORTA SERIAL (14H) TECLADO (16H) IMPRESSORA (17H) BOOT STRAP (19H) RELÓGIO (1AH) ROM BOOTSPTRAP, POST, SETUP EVOLUÇÃO DAS MEMÓRIAS ROM : ROM - FABRICADAS JÁ COM PROGRAMAÇÃO PROM - PROGRAMMABLE ROM EPROM - ERASEBLE PROM (RAIOS ULTRAVIOLETAS) EEPROM - ELECTRONICALLY EPROM CMOS - COMPLEMENTARY METAL OXIDE SEMICONDUCTOR: CHIP COM MEMÓRIARAM COM BAIXO CONSUMO DE ENERGIA, ALIMENTADA POR BATERIA, QUE CONTÉM A CONFIGURAÇÃO BÁSICA DO SISTEMA, A DATA, A HORA, SENHA, ETC. VIRTUAL ÁREA EM DISCO, GERENCIADA PELO SISTEMA OPERACIONAL, QUE FUNCIONA COMO EXTENSÃO DA MEMÓRIA PRINCIPAL. EM SISTEMAS QUE IMPLEMENTAM MEMÓRIA VIRTUAL, QUANDO É SOLICITADA A EXECUÇÃO DE UM PROGRAMA, ELE PRIMEIRO É CARREGADO PARA A MEMÓRIA VIRTUAL E DAÍ PARA A MEMÓRIA PRINCIPAL, DE ACORDO COM A TÉCNICA DE GERENCIAMENTO DE MEMÓRIA UTILIZADA. Para facilitar o entendimento das rotinas escritas em assembly, apresentadas em aula, estudar as seguintes instruções da linguagem assembly: ADD SUB MOV MUL INC DEC CMP JMP (Instrução JUMP e suas variações condicionais: JE, JZ, JAE, JNZ. ....) LOOP XOR OR AND SHL SHR OFFSET POP PUSH CLI STI CLD STD CALL INT RET IRET PROGRAMA DEBUG: Principais comandos: D = Dump : lista posições de memória Ex.: 1) D 100:0 lista 128 bytes de memória, iniciando em 100:0 2) D CS:0 L B lista “b” bytes de memória, iniciando em CS:0 E = Enter : insere valores Hexa, nas posições de memória especificadas. Ex.: E 10:A EB 90 Insere EB90 na memória, iniciando em !0:A G= = Go : Executa a partir do endereço especificado. Ex.: G=43:20 Executa o conteúdo da posição 43:20 L = Load : carrega arquivos ou setores físicos do disco para a memória. Ex.:1) L 100 Carrega arquivo especificado pelo comando N no deslocamento 100. 2) L 0 1 5 7 Carrega, no deslocamento 0 do segmento apontado por DS, da unidade b: (1), iniciando no setor 5, 7 setores. N = Name : Nomeia arquivo (posterior carga) Ex.: N arquivo.t xt Aponta para arquivo.txt R = Register : Apresenta o conteúdo dos registradores. Ex.: 1) R Mostra o conteúdo dos registradores. 2) R CS Mostra conteúdo de CS e aguarda modificação. U = Unassemble : Desmonta programa executável Ex.: 1) U 100 Lista as instruções (32 bytes), partindo de CS:100 2) U 100 110 Idem de CS:100 a CS:110 3) U 100 L9 Idem 9 bytes a partir de CS:100 W = Write : grava arquivo ou setores físicos no disco. Ex.: 1) W Grava arq. nomeado, coloca tamanho em BX:CX 2) W 80 1 5 7 Grava 7 setores (inicia no 5) para o drive b:, do endereço CS:80 ARQUITETURA DA CPU 8086 DA INTEL Este microprocessador possui dois processadores no mesmo chip, que trabalham assíncronamente. : ESQUEMA DO PROCESSADOR : BIU - Unid. de interface de barramento ( Bus Interface Unit) EU - Unidade de execução A BIU : Proporciona a comunicação com o ambiente exterior à CPU, através de 16 linhas de dados bidirecionais e de 20 linhas de endereçamento, FUNÇÕES : - Busca da instrução - Arranjo seqüencial das instruções no Reg. de Fila - Busca e armazenamento dos operandos - Realocação de endereços - Controle do barramento Para isso possui um conjunto de registradores de segmentos, de comunicação interna, indicador de instruções (IP), registro de fila, somador de endereços e lógica de controle de barramento. Quando ociosa a BIU realiza pré-busca de instruções na memória, armazenando-as no Registro de fila. A EU : Realiza a execução das instruções propriamente dita. FUNÇÕES : - BUSCA DAS INSTRUÇÕES NO REG. DE FILA DA BIU - DECODIFICAÇÃO DA INSTRUÇÃO - GERA ENDEREÇOS DE OPERANDOS À BIU - REQUISITA LEITURA OU GRAVAÇÃO NA MEMÓRIA/PERIF. - PROCESSA A OPERAÇÃO ESPECIFICADA PELA INSTRUÇÃO - ALTERA OS SINALIZADORES DE ESTADO, Conforme O RESULTADO DA INSTRUÇÃO. Para realizar essas funções, é composta por: ULA, registrador de FLAGS de estado e controle (sinalizadores), oito Registradores Gerais, Registradores Temporários e lógica de controle de fila. OS REGISTRADORES DO 8086 POSSUI 14 REGISTRADORES, COM 16 BITS CADA, DIVIDIDOS EM 4 GRUPOS : 1 - REGISTRADORES GERAIS 2 - REGISTRADORES DE SEGMENTO 3 - REGISTRADORES PONTEIROS E ÍNDICES 4 - REGISTRADORES PONTEIROS DE INSTRUÇÕES E DE ESTADO REGISTRADORES GERAIS : SÃO OS REGISTRADORES AX, BX, CX e DX QUE PODEM SER USADOS COMO 2 REGISTRADORES DE 8 BITS CADA. AX AH AL BX BH BL CX CH CL DX DH DL bits 15 8 7 0 EXEMPLO DE UTILIZAÇÃO : AX : ACUMULADOR (OPERAÇÕES ARITMÉTICAS), CONTER CÓDIGO DE SERVIÇOS. BX : BASE DO ENDEREÇO DE MATRIZ CX : CONTADOR (LOOPING) DX : DADOS, RESTO DE DIVISÃO, DESLOCAMENTOS NO SEGTO. DE DADOS, ENDER. PORTA DE SAIDA. 2) REGISTRADORES DE SEGMENTO : UM PROGRAMA EM SISTEMAS QUE UTILIZAM O PROCESSADOR 8086 PODE ALOCAR ATÉ 4 BLOCOS DE MEMÓRIA, CHAMADOS SEGMENTOS, CUJOS ENDEREÇOS INICIAIS SÃO ARMAZENADOS NOS REGISTRADORES DE SEGMENTO CORRESPONDENTES : CS, DS, ES, e SS. SEGMENTO DE CÓDIGO UTILIZADO PARA ARMAZENAR AS INSTRUÇÕES DO PROGRAMA. ESTE SEGMENTO TEM SEU ENDEREÇO INICIAL NO REGISTRADOR CS. DESLOCAMENTOS DENTRO DO SEGMENTO DE CÓDIGO SÃO ARMAZENADOS NO REGISTRADOR IP (INSTRUCTION POINTER), CUJO VALOR É AUTOMÁTICAMENTE MODIFICADO PELO SISTEMA. SEGMENTO DE DADOS UTILIZADO PARA ARMAZENAR OS DADOS UTILIZADOS PELO PROGRAMA. SEU ENDEREÇO INICIAL É ARMAZENADO NO REGISTRADOR DS. DESLOCAMENTOS NO SEGMENTO DE DADOS SÃO AR MAZENADOS NOS REGISTRADORES SI (SOURCE INDEX) E DI (DESTINATION INDEX), OU OUTROS. 2.3) SEGMENTO EXTRA É UTILIZADO COMO SEGMENTO EXTRA DE DADOS. SEU ENDEREÇO INICIAL É ARMAZENADO NO REGISTRADOR ES. DESLOCAMENTOS ARMAZENADOS EM DI. SEGMENTO DE PILHA UTILIZADO PARA PERMITIR QUE UM PROGRAMA EM EXECUÇÃO CHAME OUTRO PROGRAMA E RETOME A EXECUÇÃO NO PONTO EM QUE PAROU, QUANDO RECEBER NOVAMENTE O CONTROLE. OS DADOS NO SEGMENTO DE PILHA SÃO ACESSADOS PELA TÉCNICA L.I.F.O. O ENDEREÇO INICIAL DO SEGMENTO DE PILHA É ARMAZENADO NO REGISTRADOR SS. DESLOCAMENTOS NO SEGMENTO DE PILHA SÃO ARMAZENADOS EM SP (STACK POINTER) E BP (BASE POINTER). O VALOR DE SP É AUTOMÁTICAMENTE MODIFICADO PELO SISTEMA QUANDO SE INSERE OU RETIRA DADOS DA PILHA. EXERCÍCIOS: SOLICITE OS SERVIÇOS ABAIXO DO SISTEMA OPERACIONAL, ATRAVÉS DA INTERRUPÇÃO 21h. A) SERVIÇO 2B : “SET DATE”. AH = 2Bh CX = ANO (ENTRE 1980 E 2099) DH = MÊS (ENTRE 01 E 12) DL = DIA (ENTRE 01 E 31) B) SERVIÇO 02 (CHARACTER OUTPUT) AH = 02 DL = CARACTER A EXIBIR (8 BITS) C) SERVIÇO 09 (DISPLAY STRING) AH = 09 DS:DX = BASE:DESLOC. DO INÍCIO DO STRING (TERMINA C/ $) D) SERVÇO 39h (CREATE SUB-DIRECTORY) AH = 39h DS:DX = BASE:DESLOC. DO PATH/NOME DO SUB-DIRETÓRIO (TERMINA C/ 00h) E) SERVIÇO 3Ah (DELETE SUB-DIRECTORY) AH = 3Ah DS:DX = BASE:DESLOC. DO PATH/NOME DO SUB-DIRETÓRIO (TERMINA C/ 00h) EXECUTE O MANIPULADOR DA INT 10h (BIOS), SERVIÇO 0B E SUB-FUNÇÃO 00 (DETERMINA A COR DA BORDA DO VÍDEO) AH = 0Bh BH = 00 BL = CÓDIGO DA CORESQUEMA DE UM PROGRAMA NA MEMÓRIA ENDEREÇAMENTO PADRÃO USADO PELO S. O. PARA PROGRAMAS .EXE, CARREGADOS NA MEMÓRIA PARA EXECUÇÃO: REGISTRADORES PROGR. NA MEMÓRIA DE SEGMENTO SEG. DE PILHA (SP E BP) SS 16 bits SEG. EXTRA (DADOS) (DI) SEG. DE DADOS (SI / DI) SEG. DE CÓDIGO (IP) CS 16 bits P.S.P. DS =ES 16 bits SE NÃO HOUVER O SEGMENTO DE PILHA, O VALOR DE SS É IGUAL AO DE CS E SP É ZERO. O POSICIONAMENTO (ENDEREÇOS) DOS REGISTRADORES DS E ES ABAIXO DECORREM DE INSTRUÇÕES NO PRÓPRIO PROGRAMA, QUE INDICAM O PONTO DO PROGRAMA QUE DEVEM ENDEREÇAR. REGISTRADORES PROGR. NA MEMÓRIA DE SEGMENTO SEG. DE PILHA (SP E BP) SS 16 bits SEG. EXTRA (DADOS) (DI) ES 16 bits SEG. DE DADOS (SI / DI) DS 16 bits SEG. DE CÓDIGO (IP) CS 16 bits P.S.P. COMO O TAMANHO DOS REGISTRADORES É 16 BITS E O TAMANHO DO BARRAMENTO DE ENDEREÇOS (ENDEREÇO FÍSICO) É 20 BITS, UM PROGRAMA SEMPRE É CARREGADO EM ENDEREÇO DE PARÁGRAFO, POSSIBILITANDO TRUNCAR O DÍGITO (4 BITS) MAIS À DIREITA, E RECUPERÁ-LO NO MOMENTO DA FORMAÇÃO DO ENDEREÇO FÍSICO. OS SEGMENTOS NÃO SÃO NECESSARIAMENTE SEPARADOS, PODENDO OCORRER SOBREPOSIÇÃO. OS ENDEREÇOS CONTIDOS NOS REGISTRADORES DE SEGMENTO, SÃO A CRESCIDOS DE 4 BITS PARA TORNAR O ENDEREÇO FÍSICO RESULTANTE COM 20 BITS, O QUE PERMITE ENDEREÇAR UM TOTAL DE 1MB DE MEMÓRIA RAM. O ENDEREÇO FÍSICO DE MEMÓRIA APONTADO PELA CPU É FORMADO A PARTIR DO ENDEREÇO LÓGICO ( VALORES DOS REGISTRADORES DE SEGMENTO (BASE) E DOS REGISTRADORES PONTEIROS/ÍNDICES (DESLOCAMENTO) ASSOCIADOS AO SEGMENTO. ENDEREÇO FÍSICO = BASE * 10H + DESLOCAMENTO. base desloc ENDEREÇO LÓGICO(16 BITS) : 7000 : 0123 ENDEREÇO FÍSICO : 70123 O TAMANHO MÁXIMO DE UM SEGMENTO, UTILIZANDO REGISTRADORES DE DESLOCAMENTO DE 16 BITS, É 64 KB. 3) REGISTRADORES PONTEIROS E ÍNDICES OS PONTEIROS SP e BP SÃO UTILIZADOS PARA ARMAZENAR DESLOCAMENTOS NO SEGMENTO DE PILHA E OS REGISTRADORES ÍNDICES SI e DI PARA ARMAZENAR DESLOCAMENTOS NOS SEGMENTOS DE DADOS. SP - (STACK POINTER) PONTEIRO DE PILHA, APONTA PARA A POSIÇÃO DO TOPO DA PILHA, SENDO SEU VALOR AUTOMATICAMENTE MODIFICADO QUANDO INSERIMOS (PUSH) OU RETIRAMOS (POP) DADOS DA PILHA. BP - (BASE POINTER) PONTEIRO BASE, UTILIZADO PARA ACESSO DIRETO A ALGUMA POSIÇÃO DA PILHA (PASSAGEM DE PARÂMETROS ENTRE PROGRAMAS) EXEMPLO DE FUNCIONAMENTO DA PILHA CONFIGURAÇÃO INICIAL DA PILHA REGISTRADORES ender. SEGTO. DE PILHA físico SS 00A8 00A80 + futuras SP 000C entradas na pilha 00A8A 00A8C topo da pilha entradas anter. na pilha B) CONFIGURAÇÃO APÓS COLOCAR O VALOR A01F NA PILHA (PUSH) REGISTRADORES ender. SEGTO. DE PILHA físico SS 00A8 00A80 Futuras entradas + na pilha SP 000A 00A8A 1F topo da A0 pilha 00A8C entradas anteriores na pilha C) CONFIGURAÇÃO APÓS “RETIRADA” DE A01F DA PILHA REGISTRADORES ender. SEGTO. DE PILHA físico SS 00A8 00A80 Futuras entradas SP 000C na pilha 00A8A 1FA0 00A8C Topo da pilha Entradas anter. na pilha CRESCIMENTO DA PILHA. SE A PILHA OCUPAR UM SEGMENTO DE MEMÓRIA, QUAIS VALORES DE SP INDICAM PILHA CHEIA E VAZIA ? OBSERVE QUE OS VALORES NUMÉRICOS SÃO ARMAZENADOS COM AS POSIÇÕES MAIS SIGNIFICATIVAS DO NÚMERO NOS ENDEREÇOS MAIORES E AS MENOS SIGNIFICATIVAS NOS ENDEREÇOS MENORES. SI - UTILIZADO COMO “ÍNDICE FONTE” QUE CONTÉM O DESLOCAMENTO DO OPERANDO FONTE NO SEGMENTO DE DADOS. DI - UTILIZADO COMO “ÍNDICE DE DESTINO” QUE CONTÉM O DESLOCAMENTO DO OPERANDO DESTINO NO SEGMENTO DE DADOS. ESQUEMA : DS B000 B0000 SI 001C B001C DI 001F B001F REGISTRADORES PONTEIRO DE INSTRUÇÃO (IP) E DE ESTADO (FLAGS) IP - INSTRUCTION POINTER, UTILIZADO PARA CONTER O DESLOCAMENTO, NO SEGMENTO DE CÓDIGO, DA PRÓXIMA INSTRUÇÃO A SER EXECUTADA. CS 7000 70000 IP 0123 70123 próx.instr. REGISTRADOR DE FLAGS : REGISTRADOR DE 16 BITS, NOVE DOS QUAIS SÃO USADOS PARA INDICAR VÁRIAS CONDIÇÕES DURANTE A EXECUÇÃO DE UM PROGRAMA. OS BITS 0, 2, 4, 6, 7 e 11 SÃO USADOS COMO FLAGS DE ESTADO QUE DENOTAM RESULTADOS DE OPERAÇÕES NO PROGRAMA. OS BITS 8 A 10 CONTÉM FLAGS DE CONTROLE E OS BITS 1, 3, 5 e 12 A 15 NÃO SÃO USADOS. 11 10 9 8 7 6 5 4 3 2 1 0 O D I T S Z A P C T = TRAP: MODO PASSO A PASSO I = INTERRUPT-ENABLE : DESABILITA INTERRUPÇÕES MASCARÁVEIS. D = DIREÇÃO: 0: INCREMENTA SI/DI; 1: DECREMENTA SI/DI Z = ZERO: 1 SE OS OPERANDOS FOREM IGUAIS, 0 SE FOREM DIFERENTES C = CARRY: 1 SE RESULT. > 16 BITS OU NÚMERO NEGATIVO NA SUBTRAÇÃO NA COMPAR: 2O. > 1O. , ZERO SE 2O. <= 1O. A= AUXILIAR: IGUAL CARRY, PARA 8 BITS. P= PARIDADE: 1 SE RESULT. DE OPERAÇÃO GERAR QTDE PAR DE BITS. S=SINAL: 1 SE RESULTADO FOR NEGATIVO, 0 SE POSITIVO. O=OVERFLOW: ESTOURO. POSIÇÕES DE MEMÓRIA RESERVADAS AO PROCESSADOR. PARA O FUNCIONAMENTO DOS PROCESSADORES DA FAMÍLIA 8086 ALGUMAS POSIÇÕES DE MEMÓRIA SÃO RESERVADAS PARA USO ESPECÍFICO DA CPU. OS ENDEREÇOS DE FFFF0 H ATÉ FFFFF H (ROM) SÃO RESERVADOS PARA CONTER UM ‘JUMP’ PARA A ROTINA DE ‘INITIAL PROGRAM LOADING’ (BOOT), QUE É EXECUTADA SEMPRE QUE O SISTEMA É LIGADO (POWER ON) OU FOR PRESSIONADA A TECLA ‘RESET’. OS ENDEREÇOS 00000 H ATÉ 003FF H (TABELA DE VETORES DE INTERRUPÇÕES - TVI) SÃO RESERVADOS AO ATENDIMENTO DAS 256 POSSÍVEIS INTERRUPÇÕES DIRECIONADAS AO PROCESSADOR, NUMERADAS DE 00H a FFH. fffff h Jump para a rotina ‘rom bootstrap’ ffff0 h ponteiro p/ int. 255 (ff) 3ff h 3fc h ponteiro p/ int 1 7h 4h ponteiro p/ int 0 3h 0h A TABELA DE VETORES DE INTERRUPÇÕES É DIVIDIDA EM 256 ENTRADAS DE 4 BYTES CADA : 2 BYTES PARA A BASE E 2 BYTES PARA O DESLOCAMENTO A PARTIR DA BASE ESSES 2 VALORES FORMAM O ENDEREÇO LÓGICO DO MANIPULADOR DA INTERRUPÇÃO NA MEMÓRIA INTERRUPÇÕES : O TRABALHO EXECUTADO PELO NÚCLEO DE UM S. O. MULTIUSUÁRIO PODE SER REPRESENTADO EM UNIDADES FUNCIONAIS : INTERPRETADOR DE INTERRUPÇÕES : RECEBE O CONTROLE QUANDO UMA INTERRUPÇÃO (GERADA PELA CHAMADA AO SISTEMA – SYSTEM CALL) INDICA A SOLICITAÇÃO DE SERVIÇOS AO SISTEMA OPERACIONAL. APÓS EXECUTAR A TAREFA SOLICITADA O CONTROLE RETORNA AO PROGRAMA QUE ESTAVA EM EXECUÇÃO, ANTES DA SOLICITAÇÃO DE NTERRUPÇÃO. INTERRUPÇÃO: É UM SINAL ENVIADO PARA A UCP, INDICANDO QUE ALGUMA TAREFA DEVE SER EXECUTADA, PODENDO SER GERADA POR HARDWARE OU POR SOFTWARE. AS INTERRUPÇÕES POR HARDWARE SÀO CLASSIFICADAS EM: INTERNAS – DIRECIONADAS DIRETAMENTE À UCP EXTERNAS – GERADAS POR CONTROLADORAS DE PERIFÉRICOS E CANALIZADAS À UCP PELO PIC MASCARÁVEIS – PODEM SER DESABILITADAS NÃO MASC. – GERADAS POR EVENTOS GRAVES (PARIDADE, FALTA DE ENERGIA) AS INTERRUPÇÕES POR SOFTWARE ESTÃO CONTIDAS NO CÓDIGO DO PROGRAMA QUE AS GERA. EX.: INT 21 (DOS / WIN) A ROTINA (MANIPULADOR DE INTERRUPÇÃO – INTERRUPT HANDLER) A SER ATIVADA É IDENTIFICADA A PARTIR DO NÚMERO DA INTERRUPÇÃO, QUE NOS PCs SÃO NUMERADAS DE 00h A FFh (256 INTERRUPÇÕES). NA MAIORIA DOS SISTEMAS MODERNOS, O DESVIO PARA A ROTINA MANIPULADORA DA INTERRUPÇÃO É FEITO A PARTIR DE UMA TABELA DE VETORES DE INTERRUPÇÕES QUE CONTÉM O ENDEREÇO LÓGICO DE MEMÓRIA ONDE SE ENCONTRA O MANIPULADOR. NESSE CASO, O NÚMERO DA ÍNTERRUPÇÃO SERVE COMO ÍNDICE PARA LOCALIZAR A ENTRADA DA TABELA QUE CONTÉM O ENDEREÇO DO MANIPULADOR. MANIPULADORES DE INTERRUPÇÕES: OS MANIPULADORES DE INTERRUPÇÕES SÃO ROTINAS PERTENCENTES AO BIOS (ROM), AO SISTEMA OPERACIONAL (RAM), OU DESENVOLVIDAS PELOS USUÁRIOS (RAM). TEM COMO CARACTERÍSTICAS: DEVOLVER OS REGISTRADORES COM OS MESMOS VALORES QUE RECEBEU; EM AMBIENTE MONOTAREFA NÃO DEVE CHAMAR O SISTEMA OPERACOINAL, DEVENDO INTERAGIR DIRETAMENTE COM O BIOS; COLOCAR O ENDEREÇO LÓGICO DE MEMÓRIA, ONDE FOI CARREGADO, NA TVI; TEMINAR COM A INSTRUÇÃO IRET; RESERVAR A QTDE DE RAM QUE NECESSITA EM NÚMEROS DE PARÁGRAFOS. A INTERAÇÃO COM O HARDWARE, PARA UM APLICATIVO QUALQUER. PODE SER REPRESENTADA COMO ABAIXO: PROCESSO DE TRATAMENTO : QUANDO RECEBE UMA INTERRUPÇÃO A CPU : DESABILITA O SISTEMA DE INTERRUPÇÕES SALVA O CONTEÚDO DOS REGISTRADORES CS, IP e FLAGS NA PILHA. CALCULA A POSIÇÃO DA ENTRADA NA TVI, QUE CONTÉM O ENDEREÇO DO MANIPULADOR DA INT (O NR. DA INT MULTIPLICADO POR 4, APONTA PARA O PRIMEIRO BYTE DA ENTRADA NA TVI) CARREGA CS E IP COM O ENDEREÇO DO MANIPULADOR. DESVIA PARA O ENDEREÇO DO MANIPULADOR. QUANDO RETOMA O CONTROLE NOVAMENTE, RESTAURA OS VALORES SALVOS NA PILHA E RETOMA O TRABALHO INTERROMPIDO. EXERCÍCIOS: 1) UTILIZANDO O COMANDO G= DO DEBUG ACIONE O MANIPULADOR DA INT 19h. 2) ALTERE A TABELA DE VETORES DE INTERRUPÇÕES PARA: A) EXECUTAR O MANIPULADOR DA INT. 19h QUANDO FOR PRESSIONADA A TECLA “PRINT SCREEN” (INT 05h). B) EXECUTAR O ENDEREÇO DE RESET (FFFF0h) QUANDO FOR PRESSIONADAA TECLA “PRINT SCREEN” (INT 05h). HISTÓRICO DOS MICROPROCESSADORES DA INTEL 8086 (JUN/78) REGISTRADORES = 16 BITS BARRA DE DADOS = 16 BITS BARRA DE ENDEREÇOS = 20 BITS 8088 (FEV/79) REGISTRADORES = 16 BITS BARRA DE DADOS = 8 BITS BARRA DE ENDEREÇOS = 20 BITS 80186 E 80188 (MAR/82) MESMA ARQUITETURA DOS ANTERIORES NOVAS INSTRUÇÕES 80286 (FEV/82) REGISTRADORES = 16 BITS BARRA DE DADOS = 16 BITS BARRA DE ENDEREÇOS = 24 BITS MODO REAL E MODO PROTEGIDO 80386 DX (OUT/85) REGISTRADORES = 32 BITS BARRA DE DADOS = 32 BITS BARRA DE ENDEREÇOS = 32 BITS MODO REAL E MODO PROTEGIDO 80386 SX (JUN/88) REGISTRADORES = 32 BITS BARRA DE DADOS = 16 BITS BARRA DE ENDEREÇOS = 32 BITS MODO REAL E MODO PROTEGIDO 80486 DX (ABR/89) REGISTRADORES = 32 BITS BARRA DE DADOS = 32 BITS BARRA DE ENDEREÇOS = 32 BITS CACHE DE MEMÓRIA EMBUTIDO NO PROCESSADOR CO-ROCESSADOR ARITMÉTICO 80486 SX (ABR/89) EXCLUI O CO-PROCESSADOR ARITMÉTICO PENTIUM (1992) REGISTRADORES = 32 BITS BARRA DE DADOS = 64 BITS BARRA DE ENDEREÇOS = 32 BITS MODO REAL X MODO PROTEGIDO MODO REAL : NESSE MODO DE ENDEREÇAMENTO, O ENDEREÇO REAL RESULTA DIRETAMENTE OS VALORES CONTIDOS NOS REGISTRADORES. MODO PROTEGIDO : O VALOR CONTIDO NO REGISTRADOR DE SEGMENTO (ENDEREÇO BASE) APONTA PARA UMA TABELA, CONTROLADA PELO HARDWARE OU S. O., QUE CONTÉM A BASE QUE FORMARÁ, JUNTAMENTE COM O VALOR DE DESLOCAMENTO, O ENDEREÇO FÍSICO. Ex.: CS 0A23 TABELA IP 01BA 0432AB 0432AB + 01BA 043465 = Endereço Físico SISTEMA DE ARQUIVOS VERSÃO MELHORADA DO IOCS (INPUT OUTPUT CONTROL SYSTEM) DOS ANTIGOS SISTEMAS BATCH. O SISTEMA DE ARQUIVOS, GERALMENTE INSERIDO NO NÚCLEO DOS SISTEMAS OPERACIONAIS, É FORMADO POR ROTINAS PROGRAMADAS, RESPONSÁVEIS PELA CRIAÇÃO, RECUPERAÇÃO, MODIFICAÇÃO E ELIMINAÇÃO DOS DADOS REGISTRADOS NOS PERIFÉRICOS. EXEMPLOS DE SISTEMAS DE ARQUIVOS: HPFS, NTFS, FAT, EXT2. PARA O FUNCIONAMENTO DO SISTEMA DE ARQUIVOS, OS MEIOS DE ARMAZENAMENTO, NOTADAMENTE OS DISCOS MAGNÉTICOS, DEVEM SEGUIR UM ESQUEMA RÍGIDO QUANTO AS SEU FORMATO (ÁREAS DE CONTROLE E ÁREAS DE DADOS). DISCOS MAGNÉTICOS INTERNAMENTE, OS DISCOS MAGNÉTICOS SÃO ESTRUTURADOS EM CILINDROS, TRILHAS E SETORES. TRILHAS: SÃO CIRCUNFERÊNCIAS CONCÊNTRICAS, REPRESENTADAS NAS FACES DAS LÂMINAS QUE FORMAM O DISCO. SETORES: SÃO SEGMENTOS DE TRILHAS ONDE OS DADOS SÃO GRAVADOS. OS SETORES TÊM, TIPICAMENTE, 512 BYTES DE TAMANHO, EXISTINDO A MESMA QUANTIDADE DE SETORES EM QUALQUER TRILHA DE UM MESMO DISCO. CILINDROS: SÃO FORMADOS PELO CONJUNTO DE TRILHAS EQÜIDISTANTES AO CENTRO DO DISCO. A LOCALIZAÇÃO DE UM DADO EM UM DISCO MAGNÉTICO É OBTIDA PELA INDICAÇÃO DO CILINDRO, CABEÇA E No. DO SETOR O TEMPO DE ACESSO A UM DADO EM DISCOS MAGNÉTICOS É FORMADO POR TRÊS TEMPOS SIGNIFICATIVOS COMBINADOS: TEMPO DE SEEK (BUSCA): TEMPO DE POSICIONAMENTO DO MECANISMO DE ACESSO (BRAÇOS) AO CILINDRO INDICADO PARA LER OU GRAVAR. TEMPO DE LATÊNCIA: TEMPO DE ESPERA PELA PASSAGEM DO SETOR SOB A CABEÇA DE R/W. TEMPO DE TRANSFERENCIA DOS DADOS LIDOS OU GRAVADOS. FORMATAÇÃO : PARA SEREM UTILIZADOS, OS DISCOS MAGNÉTICOS DEVEM SER FORMATADOS, EXISTINDO 2 TIPOS DE FORMATAÇÃO : FORMATAÇÃO FÍSICA E FORMATAÇÃO LÓGICA FORMATAÇÃO FÍSICA : NORMALMENTE É REALIZADA PELO FABRICANTE DO DISPOSITIVO, E CONSISTE EM MAPEAR OS SETORES DO DISCO (LOCAIS ONDE OS DADOS SERÃO GRAVADOS). FORMATAÇÃO LÓGICA : É REALIZADA ATRAVÉS DE UM PROGRAMA UTILITÁRIO, QUE ACOMPANHA O SISTEMA OPERACIONAL (p.ex. FORMAT) QUE VAI ESTABELECER O TAMANHO E A LOCALIZAÇÃO DAS ÁREAS DE CONTROLE E DE DADOS, DE ACORDO COM O PADRÃO UTILIZADO PELO SISTEMA OPERACIONAL. PARTICIONAMENTO: CONSISTE EM DIVIDIR O VOLUME FÍSICO (DISK-PACK), EM ATÉ QUATRO PARTIÇÕES PRIMÁRIAS / EXTENDIDA, ONDE CADA PARTIÇÃO FUNCIONA COMO UM DISCO ISOLADO DAS DEMAIS PARTIÇÕES. OS DISCOS RIGIDOS SÃO PARTICIONADOS APÓS A FORMATAÇÃO FÍSICA E ANTES DA LÓGICA. O MAPEAMENTO DAS PARTIÇÕES É FEITO NO REGISTRO MESTRE DE INICIALIZAÇÃO (MBR), INDICANDO O CILINDRO, FACE E SETOR INICIAIS E FINAIS, A QUANTIDADE DE SETORES, O TIPO DE SISTEMA OPERACIONAL INSTALADO, SE É “BOOTÁVEL” OU NÃO. GERALMENTE O MBR É LOCALIZADO NO CILINDRO 0, FACE 0 E SETOR 1, SENDO ESSA TRILHA RESERVADA PARA ESSE FIM. ( A PRIMEIRA PARTIÇÃO COMEÇA NO CILINDRO 0, FACE 1 E SETOR 1). O PARTICIONAMENTO PODE SER DESTRUTIVO (OS DADOS EXISTENTES SE PERDEM) OU NÃO DESTRUTIVO (OS DADOS DE UMA PARTIÇÃO SÃO MANTIDOS). PODEMOS ACESSAR O MBR, UTILIZLANDO A INTERRUPÇÃO 13h DO BIOS: LAY-OUT DO MBR (MASTER BOOT RECORD): Deslocamento bytes conteúdo Obs 000 1BE Master Boot Program 1BE 1 Carregador 80 = boot 1BF 1 Face inicial 1C0 1 Setor inicial 1C1 1 Cilindro inicial Part. 1 1C2 1 Tipo da partição * 1C3 1 Face final 1C4 1 Setor final 1C5 1 Cilindro final 1C6 4 Setor inicial da partição 1CA 4 Qtde. de setores da partição 1CE 1 Carregador 80 = boot 1CF 1 Face inicial 1D0 1 Setor inicial 1D1 1 Cilindro inicial Part. 2 1D2 1 Tipo da partição * 1D3 1 Face final 1D4 1 Setor final 1D5 1 Cilindro final 1D6 4 Setor inicial da partição 1DA 4 Qtde. de setores da partição 1DE 1 Carregador 80 = boot 1DF 1 Face inicial 1E0 1 Setor inicial 1E1 1 Cilindro inicial Part. 3 1E2 1 Tipo da partição * 1E3 1 Face final 1E4 1 Setor final 1E5 1 Cilindro final 1E6 4 Setor inicial da partição 1EA 4 Qtde. de setores da partição 1EE 1 Carregador 80 = boot 1EF 1 Face inicial 1F0 1 Setor inicial 1F1 1 Cilindro inicial Part. 4 1F2 1 Tipo da partição * 1F3 1 Face final 1F4 1 Setor final 1F5 1 Cilindro final 1F6 4 Setor inicial da partição 1FA 4 Qtde. de setores da partição 1FE 2 55AA *Alguns tipos de partições: 0=vazia; 1=FAT12; 4=FAY!6 (< 32M); 8/9=AIX / Inicializ.; b=FAT32 Win95; C=FAT32 Win95 LBA; E=FAT16 WIN95 LBA; F=Estendida Win95; 82=Linux Swap; 83=Linux DIVISÃO FUNCIONAL DOS DISCOS FORMATADOS PARA FAT: SETOR DE BOOT F.A.T. CÓPIA DA FAT DIRETÓRIO RAIZ ÁREA DE ARQUIVOS E SUB-DIRETÓRIOS SETOR DE BOOT: É O PRIMEIRO SETOR DO DISCO (SETOR # O), QUE SEMPRE CONTERÁ UM JUMP PARA A ROTINA DISK BOOTSTRAP, O B.P.B. QUE CONTÉMINFORMAÇÕES SOBRE AS CARACTERÍSTICAS FÍSICAS DO DISCO, E DADOS QUE PERMITEM ESTABELECER A LOCALIZAÇÃO DAS ÁREAS DO DISCO (FAT, DIRETÓRIO RAIZ E ÁREA DE ARQUIVOS) E O PROGRAMA DISK BOOTSTRAP, QUE TEM COMO FUNÇÃO LOCALIZAR E CARREGAR PARA A MEMÓRIA OS ARQUIVOS ONDE ESTÁ CONTIDO O SISTEMA OPERACIONAL, DURANTE A INICIALIZAÇÃO DO SISTEMA. . FORMATO : Jump para Disk Bootstrap Fabricante / versão SO Bios Parameter Block Disk Bootstrap LAY-OUT DO SETOR DE BOOT (SETOR # 0) PARA FAT12 E FAT16 Deslocamento tamanho em bytes descrição 00h 3 Jump para o programa Diskbootstrap. 03h 8 String de Identificação do sistema. 0Bh 2 Qtde de bytes por setor. 0Dh 1 Qtde de setores por grânulo (cluster). 0Eh 2 Qtde de setores da área reservada. 10h 1 Qtde. de FATs. 11h 2 Qtde de entradas no diretório raiz. 13h 2 Qtde total de setores no volume. 15h 1 Descritor de mídia. 16h 2 Qtde de setores por FAT. 18h 2 Qtde de setores por trilha. 1Ah 2 Qtde de cabeças. 1Ch 4 Qtde de setores escondidos. 20h 4 Qtde total de setores no volume (se 13h = 0) 24h 1 Número físico do drive. 25h 1 Reservado. 26h 1 Assinatura (29h). 27h 4 Número serial do volume. 2Bh 11 Label do Volume. 36h 8 Tipo da FAT (FAT12 ou FAT!6). 3Eh ?? Disk bootstrap LAY-OUT DO SETOR DE BOOT (SETOR # 0) PARA FAT32 Deslocamento tamanho em bytes descrição 00h 3 Jump para o programa Diskbootstrap. 03h 8 String de Identificação do sistema. 0Bh 2 Qtde de bytes por setor. 0Dh 1 Qtde de setores por grânulo (cluster). 0Eh 2 Qtde de setores da área reservada. 10h 1 Qtde. de cópias da FAT. 11h 2 Zeros. 13h 2 Zeros. 15h 1 Descritor de mídia (F8). 16h 2 Zeros. 18h 2 Qtde de setores por trilha. 1Ah 2 Qtde de cabeças. 1Ch 4 Qtde de setores escondidos. 20h 4 Qtde de setores no volume. 24h 4 Qtde de setores por FAT (se 16h = 0). 28h 1 Indicador de FAT ativa (0). 29h 1 Versão do sistema de arquivos (0). 2Ah 2 Sub-versão do sistema de arquivos (0). 2Ch 4 Primeiro grânulo do diretório raiz (2). 30h 2 Setor do sistema de arquivos (1). 32h 2 Backup do setor de boot (6). 34h 12 Reservados. 40h 1 Número físico do drive (128). 41h 1 Reservado. 42h 1 Assinatura (29h). 43h 4 Número serial do volume. 47h 11 Label do Volume. 52h 8 Tipo de FAT (FAT32) 5Ah ??? Disk bootstrap. O PRIMEIRO CLUSTER DO DIRETÓRIO RAIZ (OFFSET 2CH) INDICA A POSIÇÃO DO DISCO ONDE INICIA O DIRETÓRIO RAIZ, AGORA COM TAMANHO VARIÁVEL E ENCADEADO PELA FAT. O SETOR DO SISTEMA DE ARQUIVOS (OFFSET 30H) INFORMA SOBRE A OCUPAÇÃO DO DISCO (QUAL O 1O. GRÂNULO LIVRE E QTDE DE GRÂNULOS LIVRES). FORMATO DAS ENTRADAS NOS DIRETÓRIOS PARA FAT12 E FAT16 BITS: QUALQUER ARQUIVO QUE SEJA GRAVADO EM DISCO, OCUPARÁ UMA ENTRADA NO DIRETÓRIO RAIZ OU SUB-DIRETÓRIO NO QUAL SEJA DEFINIDO. CADA ENTRADA DE DIRETÓRIO OCUPA 20h (32d) BYTES QUE DESCREVEM O ARQUIVO PARA O SISTEMA. LAY-OUT DAS ENTRADAS DE DIRETÓRIOS: 00h 08h 0Bh 0Ch 16h 18h 1Ah 1Ch OS VALORES AO LADO DO QUADRO REPRESENTAM O DESLOCAMENTO DO PRIMEIRO BYTE DO CAMPO, EM RELAÇÃO AO INICIO DA ENTRADA. DESCRIÇÃO DO CONTEÚDO DOS CAMPOS: FILENAME: REPRESENTA O NOME ATRIBUÍDO AO ARQUIVO, COM ATÉ 8 CARACTERES ANTES DO PONTO DA EXTENSÃO. O VALOR DO PRIMEIRO CARACTER DO NOME PODE SIGNIFICAR: 00h: ENTRADA DO DIRETÓRIO NUNCA USADA 2Eh: A ENTRADA REFERE-SE A UM SUB-DIRETÓRIO SE O SEGUNDO CARACTERE FOR 2Eh (.) A ENTRADA REFERE-SE AO DIRETÓRIO PAI . E5h: ARQUIVO DELETADO. EXTENSÃO : TRÊS BYTES PARA A EXTENSÃO DO NOME. ATRIBUTOS : UM ATRIBUTO DE ARQUIVO ESTARÁ ATIVO QUANDO SEU BIT CORRESPONDENTE VALER 1. BIT SIGNIFICADO SOMENTE LEITURA ARQUIVO OCULTO ARQUIVO DO SISTEMA NOME DE VOLUME (SÓ NO RAIZ). ENTRADA DE SUB-DIRETÓRIO. ARQUIVO MODIFICADO 6 E 7 RESERVADOS D) HORA/MIN/SEG DA ÚLTIMA ALTERAÇÃO BITS CONTEÚDO 0 a 4 SEGUNDOS (INCREMENTA 1 A CADA 2 SEG 5 a A MINUTOS B a F HORA E) DATA DA ÚLTIMA ALTERAÇÃO BITS CONTEÚDO 0 a 4 DIA DO MÊS 5 a 8 NR. DO MÊS 9 a F NR. DO ANO (RELATIVO A 1980) NÚMERO DO GRÂNULO INICIAL CONTÉM O NÚMERO DO PRIMEIRO GRÂNULO OCUPADO PELO ARQUIVO, NA ÁREA DE ARQUIVOS E SUB-DIRETÓRIOS. TAMANHO DO ARQUIVO CORRESPONDE À QUANTIDADE EXATA DE BYTES QUE O ARQUIVO OCUPA NO DISCO, INCLUINDO BYTES DE CONTROLE (CR, LF, etc) PROPRIEDADES DO DIRETÓRIO RAIZ PARA FAT12 E FAT16 BITS : A QUANTIDADE DE ENTRADAS NO DIRETÓRIO RAIZ VARIA DEPENDENDO DA CAPACIDADE DO DISCO, PORÉM ESSA QUANTIDADE PERMANECE FIXA EM UM DADO DISCO. OS POSSÍVEIS TAMANHOS DO DIRETÓRIO RAIZ SÃO: DISCO CAPACIDADE SETORES DO RAIZ QTDE DE ENTRADAS 5,25 “ 360 KB 7 112 5,25 “ 1,2 MB 14 224 3,25 “ 720 KB 7 112 3,25 “ 1,4 MB 14 224 HD -- 32 512 APÓS A VERSÃO 2.0 O DOS SUPORTA SUB-DIRETÓRIOS QUE, COMO O RAIZ, CONTROLAM ARQUIVOS, SEM A RESTRIÇÃO DE TAMANHO FIXO, FUNCIONANDO COMO UMA EXTENSÃO DO DIRETÓRIO RAIZ. UM SUB-DIRETÓRIO SEMPRE ESTÁ ASSOCIADO A OUTRO DIRETÓRIO (RAIZ OU SUB-DIRETÓRIO). ÁREA DE ARQUIVOS E SUB-DIRETÓRIOS : É UTILIZADA PARA ARMAZENAR OS REGISTROS DOS ARQUIVOS E ENTRADAS DE SUB-DIRETÓRIOS. ESSA ÁREA É ESTRUTURADA EM GRÂNULOS, QUE É FORMADO POR UM CONJUNTO DE SETORES (1, 2, 4, 8,...). O NÚMERO DE SETORES POR CLUSTER É SEMPRE UMA POTÊNCIA DE 2, SENDO NO MÁXIMO 64 SETORES NO WIN/9x E 128 SETORES NO WIN/NT. UM GRÂNULO CORRESPONDE A UNIDADE MÍNIMA DE ALOCAÇÃO PARA UM ARQUIVO OU SUB-DIRETÓRIO. OS GRÂNULOS DE UM MESMO ARQUIVO PODEM SER CONSECUTIVOS OU NÃO, SENDO ENCADEADOS ATRAVÉS DA FAT (FILE ALLOCATION TABLE). PARA CADA GRÂNULO NO DISCO, EXISTE UMA ENTRADA CORRESPONDENTE NA FAT, QUE CONTROLA SUA UTILIZAÇÃO. FAT GRÂNULOS : # 2 # 3 # 4 # N-1 # N TAMANHOS DOS GRÂNULOS PARA DISQUETES Disquete capacidade tamanho do grânulo 5 ¼ “ 360 KB 2 setores 1.2 MB 1 setor 3 ½ “ 720 KB 2 setores 1,4 MB 1 setor 2,8 MB 2 setores TAMANHOS DOS GRÂNULOS PARA DISCOS RÍGIDOS A POSIÇÃO DE UM GRÂNULO NO DISCO PODE SER OBTIDA A PARTIR DE SEU NÚMERO, SENDO 2 O NÚMERO DO PRIMEIRO GRÂNULO NA ÁREA DE ARQUIVOS (NÃO EXISTEM GRÂNULOS DE NÚMEROS 0 E 1). A LOCALIZAÇÃO DE UM GRÂNULO (SETOR OU BYTE) NO DISCO ÉDADA POR: PG = TAR + TFATs + TDR + (NG – 2) * TG PG : POSIÇÃO DO GRÂNULO TAR : TAMANHO DA ÁREA RESERVADA. TFATs : TAMANHO DA FAT E DE SUA CÓPIA TDR : TAMANHO DO DIR. RAIZ (QTDE. DE ENTRADAS * 20h bytes) NG : NÚMERO DO GRÂNULO TG : TAMANHO DO GRÂNULO OBS.: PARA FAT32 A FÓRMULA DEVE EXCLUIR O TAMANHO DO DIRETÓRIO RAIZ. TABELA DE ALOCAÇÃO DE ARQUIVOS (FAT – FILE ALLOCATION TABLE) CONTÉM O MAPA DE UTILIZAÇÃO DOS GRÂNULOS DO ARQUIVO ATRAVÉS DE SUAS ENTRADAS (UMA PARA CADA GRÂNULO), QUE PODEM TER 12, 16 OU 32 BITS CADA. A QUANTIDADE DE BITS DE CADA ENTRADA DA FAT, DETERMINA A QUANTIDADE MÁXIMA DE GRÂNULOS ENDEREÇÁVEIS, O QUE SE REFLETE NO TAMANHO DE CADA GRÂNULO. 12 BITS = 4096 GRÂNULOS. 16 BITS = 65.536 GRÂNULOS. 32 BITS = 256 Mega GRÂNULOS (utiliza apenas 28 bits). EXEMPLO DE TAMANHOS DE GRÂNULOS PARA FAT DE 16 BITS (Win/NT) TAMANHO DA PARTIÇÃO SETORES POR GRÂNULO TAMANHO DO GRÂNULO ATÉ 511 MB 16 8 KB 1.023 MB 32 16 KB 2.047 MB 64 32 KB 4.096 MB 128 64 KB POSSÍVEIS VALORES DAS ENTRADAS: VALOR SIGNIFICADO (0)000 h GRÂNULO LIVRE (F)FF0 a (F)FF6 h GRÂNULO RESERVADO (F)FF7 h GRÂNULO DEFEITUOSO (F)FF8 a (F)FFF h ÚLTIMO GRÂNULO DO ARQUIVO OUTROS NR. DO PRÓXIMO GRÂNULO DO ARQ. / SUB-DIR. COMO CADA GRÂNULO É CONTROLADO POR UMA ENTRADA DA FAT, CUJO NÚMERO É O MESMO DO GRÂNULO, DEVE HAVER UM BALANCEAMENTO ENTRE A QUANTIDADE DE GRÂNULOS E A QUANTIDADE DE ENTRADAS NA FAT: (T – NX) / F <= X 512 / B - 2 EXEMPLO PARA FAT DE 16 BITS: No diretório : Filename ....................... número do grânulo inicial Meuarqui ....................... 0300 Na FAT : F8FF FFFF 0000 0600 0000 0000 0800 0000 FFFF ... Entrada # 0 1 2 3 4 5 6 7 8 NO EXEMPLO ACIMA, O ARQUIVO OCUPA OS GRÂNULOS 3, 6 e 8. AS DUAS PRIMEIRAS ENTRADAS DA FAT (0 e 1) EXISTEM FISICAMENTE, MAS NÃO SÃO USADAS PARA CONTROLAR GRÂNULOS. SEU CONTEÚDO É : 1º BYTE : DESCRITOR DE MÍDIA – F8 = DISCO RÍGIDO F0 = 3,5” DE 1,44 MB F9 = 3,5” DE 720 KB FD= 5,25”DE 360 KB DEMAIS BYTES = FF h MULTIPLICANDO-SE O NÚMERO DO GRÂNULO POR 2 TEREMOS O DESLOCAMENTO (RELATIVO AO INÍCIO DA FAT) DO PRIMEIRO BYTE DA ENTRADA CORRESPONDENTE ÀQUELE GRÂNULO. FAT DE 12 BITS : CADA PAR DE ENTRADAS NA FAT OCUPAM 3 BYTES. MULTIPLICANDO-SE O NÚMERO DO GRÂNULO POR ‘UM E MEIO’ (1,8h) E TOMANDO A PARTE INTEIRA DO PRODUTO, TEREMOS O DESLOCAMENTO DO BYTE INICIAL DA ENTRADA CORRESPONDENTE NA FAT. TOMANDO UMA PALAVRA (2 BYTES) NESSE DESLOCAMENTO, TEMOS 3 DÍGITOS DE CONTEÚDO DA ENTRADA E UM DÍGITO ESTRANHO QUE DEVE SER DESCARTADO. SE O NÚMERO DO GRÂNULO FOR PAR DESCARTAMOS O DÍGITO DE MAIOR ORDEM E, SE FOR ÍMPAR DESCARTAMOS O DÍGITO DE MENOR ORDEM. O SISTEMA OPERACIONAL DOS : SISTEMA MONOUSUÁRIO / MONOTAREFA, DISTRIBUÍDO EM 1981 COMO PC-DOS, PARA COMPUTADORES PESSOAIS, SURGIU COMO SUPERSET DO SISTEMA 86-DOS. EVOLUÇÃO : 1981 - PRIMEIRA VERSÃO - DOS 1.0 1982 - SUPORTE A DISCOS DE DUPLA FACE - DOS 1.1 1983 - SUPORTE A DISCOS RÍGIDOS HIERARQUIA DE ARQUIVOS (UNIX) - DOS 2.0 SUPORTE INTERNACIONAL - DOS 2.1 1984 - SUPORTE A DISCOS 5,25” (1.2 MB) DISCOS RÍGIDOS MAIORES (32 MB) - DOS 3.0 SUPORTE A REDES - DOS 3.1 1986 - SUPORTE A DISCOS DE 3,5” - DOS 3.2 1987 - SUP.INTERNAC. AMPLIADO (CODE-PAGE) - DOS 3.3 1988 - SUPORTE A DISCOS COM MAIS DE 32 MB - DOS 4.0 1991 - HELP ON-LINE NOVOS COMANDOS - DOS 5.0 1993 - COMPACTADOR DE DISCOS MENU SELECT (CONFIG.SYS SELETIVO) MEMMAKER - DOS 6.22 ESTRUTURA DO DOS : A ESTRUTURA BÁSICA DO DOS É FORMADA PELOS MÓDULOS : BIOS NÚCLEO (KERNEL) PROCESSADOR DE COMANDOS (SHELL) MÓDULO BIOS : É ESPECÍFICO A DETERMINADO TIPO DE COMPUTADOR, SENDO FORNECIDO PELO FABRICANTE DO EQUIPAMENTO ATRAVÉS DO ARQUIVO IO.SYS, QUE CONTÉM OS DRIVERS (ROTINAS RESIDENTES) DOS SEGUINTES DISPOSITIVOS : CONSOLE (CON) IMPRESSORA (PRN) PORTA SERIAL (AUX) DISK BOOT (RECARGA DO DOS) O NÚCLEO DO DOS COMUNICA-SE COM OS CONTROLADORES DE DISPOSITIVOS (DRIVERS) A PARTIR DAS SOLICITAÇÕES DE I/O DOS APLICATIVOS, QUE SÃO TRANSFORMADAS EM INSTRUÇÕES APROPRIADAS ÀS DIVERSAS CONTROLADORAS DE HARDWARE. MÓDULO NÚCLEO : DESENVOLVIDO PELO DESENVOLVEDOR DO SISTEMA OPERACIONAL É FORNECIDO ATRAVÉS DO ARQUIVO MSDOS.SYS. FUNÇÕES : GERENCIAMENTO DE ARQUIVOS GERENCIAMENTO DA MEMÓRIA ATENDIMENTO A PROGRAMAS (INT 20H A 2FH) ACESSO AO RELÓGIO E SISTEMA. PROCESSADOR DE COMANDOS (SHELL) : SERVE DE INTERFACE AO USUÁRIO COM O SISTEMA OPERACIONAL, É FORNECIDO NO ARQUIVO COMMAND.COM. CATEGORIAS DOS COMANDOS : INTERNOS EXTERNOS (.COM E .EXE) ARQUIVOS DE LOTE (.BAT) ORDEM DE EXECUÇÃO : INTERNOS; .COM ; .EXE E .BAT INTERPRETADOR DE INTERRUPÇÕES SISTEMA DE ARQUIVOS GERENCIADOR DE RECURSOS GERENCIADOR DE PROCESSOS APLICATIVO SISTEMA OPERACIONAL BIOS HARDWARE FILENAME EXTENSÃO ATRIBUTOS RESERVADO HORA/MIN/SEG.ULT.ALTERAÇÃO. DATA DA ULT. ALTERAÇÃO NR. DO GRÂNULO INICIAL QTDE. DE BYTES DO ARQUIVO SUB-D3 SUB-D2 SUB-D1 RAIZ .......... CAPACIDADE Sistema FAT16 Sistema FAT32 DO DISCO Grânulo (KB) Grânulo (setores) Grânulo (KB) Grânulo (setores) Até 128 MB 2 4 não usado não usado De 129 MB a 256 MB 4 8 não usado não usado De 257 MB a 512 MB 8 16 não usado não usado De 512 MB a 1 GB 16 32 4 8 De 1 GB a 2 GB 32 64 4 8 De 2 GB a 8 GB impossível impossível 4 8 De 8 GB a 16 GB impossível impossível 8 16 De 16 GB a 32 GB impossível impossível 16 32 De 32 GB a 2048 GB impossível impossível 32 64 _________________________________________________________________________________________
Compartilhar