Software Básico Silvio Fernandes 2009.1 Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.

Slides:



Advertisements
Apresentações semelhantes
Contadores e Registradores
Advertisements

Programação em Java Prof. Maurício Braga
Software Básico Silvio Fernandes
Software Básico Silvio Fernandes
Motivação para listas duplamente encadeadas e circulares
Software Básico Silvio Fernandes Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula 05:
Arquitetura de Computadores
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Ciência da Computação Aula 06: Funções.
Ciclos, Vectores e Gráficos Simulação da Queda de Corpos II
Vetores Representação e características Operações I Decomposição
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Ciência da Computação Aula 03: Computador.
Software Básico Silvio Fernandes
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Software Básico Silvio Fernandes
SISTEMAS DE EQUAÇÕES.
Gerenciamento de Arquivos, Páginas e Registros
1 Complexidade de Algoritmos Complexidade de pior caso Complexidade de melhor caso de uso bem menos freqüente em algumas situações específicas Complexidade.
Arquivos Seqüenciais Inhaúma Neves Ferraz
EXPRESSÕES ARITMÉTICAS
Informática Industrial
SSC541 - SISTEMAS OPERACIONAIS I Aula 13 – Gerenciamento de Memória
Rganização de Computadores Melhorias de Desempenho com Pipelines Capítulo 6 – Patterson & Hennessy Organização de Computadores Melhorias de Desempenho.
REPRESENTAÇÃO DE INSTRUÇÕES
Organização da Memória Principal
Arquitetura de Computadores
Linguagens de Programação
Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos
1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos
Programação Baseada em Objectos Desenho de TAD
Listas Encadeadas.
Estrutura de decisão e repetição em JAVA
Classes e objetos P. O. O. Prof. Grace.
Sistemas Operacionais I
PROGRESSÕES JUDITE GOMES
Sistemas Operacionais
TENSÕES E CORRENTES EM CIRCUITOS TRIFÁSICOS BALANCEADOS Sistemas de potência são alimentados por geradores trifásicos. De maneira ideal, os geradores suprem.
Campus de Caraguatatuba
Semana 03: Comandos de desvio de fluxo. Expressões lógicas.
PROGRAMAÇÃO I UNIDADE 1.
Funcionamento básico de um computador
Sistemas Operacionais
Salas de Matemática.
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Ciência da Computação Aula 02: Introdução.
Entendendo as definições de classe
Semana 03 Comandos de desvio de fluxo. Expressões lógicas.
EXERCÍCIOS PARA GUARDA-REDES
Arquitetura de computadores
Projeto de Banco de Dados
ENGA78 – Síntese de Circuitos Digitais
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Campus de Caraguatatuba Aula 8: Noções Básicas sobre Erros (2)
Campus de Caraguatatuba Aula 12: Sistemas de Equações Lineares (2)
Organização e Arquitetura de Computadores
Agenda - Aula 2 Introdução (Computador Digital) Processadores
Agenda Modos de Endereçamento.
Processamento de dados na UCP e memória UCP
CALENDÁRIO SEXY Ele & Ela. CALENDÁRIO SEXY Ele & Ela.
Campus de Caraguatatuba Aula 2: Somatório e Produtório
Diagramas de Venn e de Carroll Não se chamam propriamente ferramentas/instrumentos estatísticos mas ajudam a organizar de uma forma simples alguns tipos.
Rio Verde - Goiás - Brasil
Geração de Código aula-12-geração-de-código.pdf.
Sistemas Operacionais
BCC 101 – Matemática Discreta I
Planilha Eletrônica - Excel
Campus de Caraguatatuba Aula 9: Noções Básicas sobre Erros (3)
Transcrição da apresentação:

Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula 10: Características dependentes da máquina 1

Características dependentes da máquina O loader absoluto é simples e eficiente, entretanto é necessário que o programador especifique o endereço real onde o programa será carregado O compartilhamento eficiente de recursos da máquina exige programas relocáveis Programas absolutos dificulta o uso de bibliotecas de sub-rotinas – É importante escolher e carregar apenas rotinas que pretendemos incorporar ao programa 2

Relocação Os loaders que permitem relocação são chamados de loaders relocadores ou loaders relativos O 1º método é o uso de registro de modificação usado para descrever cada parte do Código Obejto (CO) que deve ser alterada quando o programa for relocado As figuras a seguir mostram um código-fonte e o respectivo código-objeto 3

Relocação 4

5

6

Cada registro de modificação especifica o endereço inicial e o tamanho do campo cujo valor deve ser alterado Em seguida descreve a modificação que será realizada (soma com o símbolo COPY, que representa o endereço inicial do programa) Registro de modificação é conveniente mas não se adapta bem a todas as máquinas 7

Relocação Considere o programa da Figura a seguir É o mesmo do exemplo anterior, exceto que está escrito para SIC standard que não usa endereçamento relativo Então o endereço de todas as instruções, exceto RSUB têm que ser modificados Isto exigiria o uso de 31 registros de modificação, e o PO mais que dobraria de tamanho 8

Relocação 9

10

Relocação Num computador que use principalmente endereçamento direto, será mais eficiente especificar a relocação através de bits de relocação, sem necessidade de registro de modificação Nesse método são usados bits de relocação associados a cada palavra do código-objeto (1 bit de relocação para cada instrução possível) Os bits relocação são unidos numa máscara de bits 11

Relocação 12

Relocação Se o bit de relocação for 1, o endereço inicial do programa será somada a esta palavra Se for 0, nenhuma modificação será necessária Alguns computadores possuem o recurso de relocação controlada por hardware, o que elimina a necessidade de se atribuir ao loader essa tarefa de relocação de programas 13

Link de programas O programador tem uma inclinação natural a enxergar o programa como uma entidade lógica que combina todas as seções de controle iterrelacionadas Mas sob o ponto de vista do loader existem apenas seções de controle que devem ser interligadas, relocadas e carregadas O loader não tem como saber quais são as seções que foram montadas ao mesmo tempo 14

Link de programas Considere os 3 programas (montados separadamente) a seguir, cada um deles contendo uma única seção de controle Cada programa contém uma lista de itens (LISTA, LISTB, LISTC), o final destas listas é assinalado pelos labels ENDA, ENDB, ENDC Os labels no início e no fim das listas são símbolos externos 15

Link de programas 16

Link de programas 17

Link de programas 18

Link de programas Programa-objeto de PROGA 19

Link de programas Programa-objeto de PROGB 20

Link de programas Programa-objeto de PROGC 21

Link de programas No 1º programa (PROGA), REF1 é uma referência a um label dentro do programa, então é montada de maneira tradicionalPROGA No PROGB o mesmo operando se refere a um símbolo externoPROGB – O assembler usa uma instrução no formato estendido com o campo de endereço definido como Esta referência é tratada de modo exatamente igual em PROGCPROGC 22

Link de programas A REF2 no PROGA é formada por uma referência externa mais uma constantePROGA – O assembler armazena o valor da constante no campo de endereço da instrução e um registro de Modificação instrui o loader para que some a este campo o valor de LISTB REF3 é um operando imediato cujo valor deverá ser a diferença entra ENDA e LISTA (tamanho da lista em bytes) 23

Link de programas PROGA dispõe de todas as informações para calcular REF3 Enquanto que em PROGB e PROGC os valores dos labels são desconhecidos, assim a instrução tem que ser montada como referência externa (com 2 registros de modificação)PROGB PROGC 24

Link de programas O assembler do PROGA consegue avaliar todas as expressões em REF4 menos o valor de LISTC – Assim, chega-se ao valor (hexa) e um registro de modificação A mesma expressão em PROGB não contém nenhum termo, assim o CO contém e 3 registros de modificação Em PROGC, o assembler pode fornecer o valor de LISTC com relação ao início do programa 25

Link de programas O valor desta palavra em PROC contém o endereço relativo de LISTC (hexa) REF4 representa uma referência externa simples em PROGA, uma referência externa complicada para PROGB e uma combinação de relocação e referência externa para PROGC A fig. a seguir mostra os 3 programas na memória, tal como estariam depois da carga e do link 26

Link de programas 27

Link de programas 28

Link de programas PROGA foi carregado a partir do endereço 4000, com PROGB e PROGC imediatamente após Repare que de REF4 a REF8 (depois da relocação e do link) os valores resultantes em todos os programas foram iguais No caso de referências que são operandos de instruções, os valores calculados depois da carga nem sempre parecem iguais 29

Link de programas Isso acontece porque há um passo a mais no cálculo do endereço envolvido em instruções que usam o endereçamento relativo ao contador de programa ou à base Nesses casos, são os endereços-alvos que ficam iguais 30

Referências Leland L Beck. Desenvolvimento de software básico. 2ª ed. Rio de Janeiro: Campus, p. 31