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
Software Básico Silvio Fernandes
Advertisements

Software Básico Silvio Fernandes
Parte 1: Organização de Computadores
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:
1.3.2 – Linguagem Assembly Um programa em linguagem de máquina sofre de total falta de clareza O programa é uma sequência de linhas numeradas Cada linha.
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.
Arquitetura e organização de computadores
Linguagem de Montagem Visão geral.
Indexação Automática de Documentos
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula /08/2011 Professor Leomir J. Borba-
Universidade Federal de Campina Grande – UFCG Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação – DSC Máquina de.
Arquitetura de Computadores
TEORIA DA COMPUTAÇÃO Parte III  Máquina de Turing
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
Daniel M. Aquino, Marcelo C. Perez, Thais A. B. Fernandes
SSC SISTEMAS OPERACIONAIS I Aula 15 – Gerenciamento de Memória
Conceitos Básicos de Informática INTRODUÇÃO À TERMINOLOGIA BÁSICA
INTRODUÇÃO À PROGRAMAÇÃO
Introdução à Informática
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Organização da Memória Principal
Arquitetura de Computadores
Linguagens de Programação
Sistemas Operacionais I
Processadores – Aula 3 Professor: André Luis Meneses Silva
Processadores – Aula 3 Professor: André Luis Meneses Silva
Sistemas Operacionais I
Revisão de Conceitos Básicos Hardware (Parte 1)
JAVA: Conceitos Iniciais
Capítulo 9: Memória Virtual
PROGRAMAÇÃO I UNIDADE 1.
Aula prática 8 Ponteiros Monitoria de Introdução à Programação
Representação de Instruções
Sistemas Operacionais
Eric, Fabrício, João Vicente
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.
SISTEMAS OPERACIONAIS
TECNOLOGIA EM REDES DE COMPUTADORES INTRODUÇÃO A COMPUTAÇÃO Aula /02/2013 Professor Leomir J. Borba- –
Sistemas Operacionais
ORGANIZAÇÃO DE COMPUTADORES
Conteúdo Processos e threads Partes do processo
SOMA  0 fim início Simulação do algoritmo que soma os valores dos primeiros números naturais até o número fornecido como entrada: leia N T
Agenda - Aula 2 Introdução (Computador Digital) Processadores
Processamento de dados na UCP e memória UCP
Faculdade Talentos Humanos - FACTHUS - Algoritmo I - Rogério Rodrigues
Geração de Código aula-12-geração-de-código.pdf.
Sistemas Operacionais
Sistemas Operacionais
SISTEMAS OPERACIONAIS I Gerenciamento de Arquivos
Organização e Arquitetura de Computadores
Capítulo 5 Entrada/Saída 5.1 Princípios do hardware de E/S
Campus de Caraguatatuba Aula 16e: Exercícios de View
Aula01 – Técnicas de Programação II
Sistemas Operacionais
8088 Assembly Software Básico Mitsuo Takaki.
Registradores.
Engenharia de Sistemas Embarcados Aula 5: Um Conjunto Básico de Ferramentas.
Arquitetura de Computadores
Arquitetura de Microcomputadores
Pet computação UFPE Arquitetura Von Neumann. pet computação UFPE 1.Definição e tipos de arquitetura Quando falamos em arquitetura temos dois tipos a considerar:
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais FATEC-PB Professor: Gustavo Wagner
Arquitetura ARM Subrotinas.  Implementar uma sub-rotina requer dois passos: 1.Armazenar o endereço de retorno. 2.Desviar a execução para o endereço da.
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 11: Características dependentes da máquina II 1

Tabelas e lógica de um linking loader Usamos registros de modificação para a relocação de modo que as funções de link e relocação sejam executadas através do mesmo mecanismo Máquinas desse tipo empregam o endereçamento relativo e tornam desnecessária a relocação dos endereços da maioria das instruções 2

Tabelas e lógica de um linking loader O algoritmo de um linking loader é bastante mais complicado que o algoritmo do loader absoluto A entrada de linking loader é um conjunto de programas-objetos (seções de controle) que devem ser linkados Eles costumam fazer 2 passagens sobre a entrada: 1 para atribuir endereços a todos os símbolos e outra para fazer a carga, a relocação e o link propriamente ditos 3

Tabelas e lógica de um linking loader A principal estrutura de dados necessária para o nosso linking loader é uma tabela externa de símbolos (ESTAB) Usada para armazenar o nome e o endereço de cada símbolo externo no conjunto de seções de controle que estão sendo carregadas, além do indicar em que seção cada símbolo é definido Organizada na forma de um hash table 4

Tabelas e lógica de um linking loader Possui 2 variáveis importantes – PROGADDR (endereço de carga do programa) Endereço inicial da memória onde o programa linkado será carregado, cujo valor é fornecido pelo SO – CSADDR (endereço de seção de controle) Contém o endereço inicial associado a seção de controle que está sendo lida pelo loader, cujo valor é somado a todos os endereços relativos dentro da seção de controle de modo a convertê-los em endereços reais 5

Tabelas e lógica de um linking loader 6

7

Durante a passagem 1 o loader se preocupa apenas com os registros de Cabeçalho e Definição das seções de controle O endereço inicial de carga do programa linkado (PROGADDR) se torna o endereço (CSADDR) da 1ª seção de controle O nome da seção indicado no registro de Cabeçalho é incluído em ESTAB, com o valor dado por CSADDR 8

Tabelas e lógica de um linking loader Todos os símbolos externos que aparecem no registro de Definição também são incluídos em ESTAB Seus endereços são obtidos somando-se o valor especificado no registro de Definição a CSADDR Quando o registro Fim é lido, o tamanho da seção CSLTH (obtino no Cabeçalho) é somado a CSADDR para calcular o endereço da próxima seção de controle 9

Tabelas e lógica de um linking loader Vários loader oferecem a opção de impressão de um mapa de carga que mostra estes símbolos e seus endereços, para depuração 10

Tabelas e lógica de um linking loader A passagem 2 faz a relocação e o link propriamente ditos A medida que cada registro de Texto é lido, o código-objeto é movido para o endereço especificado (mais o valor atual de CSADDR) Quando um registro de Modificação é encontrado, o símbolo cuja valor de ser usado para a modificação é pesquisado em ESTAB, que é somado ou subtraído da posição de memória indicada 11

Tabelas e lógica de um linking loader A última atividade é, geralmente, a passagem de controle para o programa carregado, dando início à sua execução O registro de Fim de cada seção pode conter o endereço da primeira instrução a ser executada dentro da seção correspondente Nosso loader considera que este é o ponto de transferência para o início da execução 12

Tabelas e lógica de um linking loader Se mais de uma seção especificar um ponto de transferência, o loader utilizará arbitrariamente o último endereço encontrado Se nenhuma seção especificar um ponto de transferência, o loader usará o início do programa linkado como ponto de transferência 13

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