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
Pearson Education Slide 1. Pearson Education Slide 2 Cap í tulo 11 Criado por Frederick H. Colclough, Colorado Technical University Compilação Separada.
Advertisements

Coerência de Cache em Multiprocessadores
Programação em Java Prof. Maurício Braga
Software Básico Silvio Fernandes
Software Básico Silvio Fernandes
SISTEMAS OPERACIONAIS (SO) Aula 5 Luciana A. F. Martimiano 2002
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:
Capitulo 6: Entrada e Saída
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.
Estruturas de Repetição
Linguagem de Montagem Visão geral.
Sistema de Arquivos - PROTEÇÃO DE ARQUIVOS
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.
Sistemas Operacionais
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
Processos no Unix e Linux
Vi 1 Editando com vi. vi 2 Por que vi? l Editar arquivos de configuração l Editar scripts de shell l Disponível em todas as distribuições l Necessita.
Exemplo de Espalhamento Extensível 1. Definição dos dados a processar 2 Escondido pela moldura.
15 Introdução à Manipulação de Planilhas Eletrônicas Planilhas Eletrônicas são tabelas usadas para comunicar informações de forma clara, precisa e sucinta.
Maria Aparecida Castro Livi
INTRODUÇÃO À PROGRAMAÇÃO
Introdução à Informática
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Arquitetura de Computadores
Linguagens de Programação
Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos
Aula 10 Manipulação de Exceções
Sincronização e Comunicação entre Processos
09/03/10 20:13 Claudio de Oliveira – 1/21.
Projeto Final - APGS Adriana P. de Medeiros
Revisão da Linguagem C.
Compilação de programas com make
MANUAL CAF – CONTROLE ACADÊMICO FINANCEIRO
Cadastro de produto Posto de Combustível.
Sistemas Operacionais
Subprogramas - Funções e Sub-rotinas
JAVA: Conceitos Iniciais
Sejam bem vindos! Arquitetura de Sistemas Operacionais.
PROGRAMAÇÃO I UNIDADE 1.
SISTEMAS OPERACIONAIS
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.
Arquitetura de computadores
Sistemas Operacionais
PROGRAMAÇÃO ESTRUTURADA (MODULARIZAÇÃO/SUBPROGRAMAÇÃO)
Sistemas Operacionais
Organização e Arquitetura de Computadores
Agenda - Aula 2 Introdução (Computador Digital) Processadores
Controle Distribuído da Concorrência
Vetor Prof. Guilherme Baião S. Silva Adaptações:
INPE / CAP-315 Airam J. Preto, Celso L. Mendes Aula 5 (1) Análise de Dependência Tópicos: Restrições à Vetorização Detecção de Dependência Teste.
Processo de Aquisição Adilson de Almeida Cezar Meriguetti
Procedimentos iniciais para cadastro detalhado de produtos
Geração de Código aula-12-geração-de-código.pdf.
Capítulo VIII Ambientes de Execução
Execução de programas Cap. VIII.
Nome alunos 1 Título UC. Título – slide 2 Conteúdo Conteúdo 2.
BCC /01 Aula Teórica 09 Funções Material Didático Proposto. 1 BCC701 – Programação de Computadores I Universidade Federal de Ouro Preto Departamento.
Sistemas Operacionais
Professor Esp. Diego André Sant’Ana Disciplina: Sistemas Operacionais II Sistemas de Arquivos- Tipo de arquivos – Cap
Programação Computacional Aula 8: Entrada e Saída pelo Console Prof a. Madeleine Medrano
Sistemas Operacionais IV – Gerenciamento de E/S
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 12: Características independentes da máquina 1

Introdução A carga e o link costumam ser vistos como serviços do SO A ligação do programador com estes serviços não é tão próxima como com o assembler durante o desenvolvimento do programa Portanto, a maioria dos loaders é mais padronizada e oferece menos recursos variados 2

Introdução No aspecto dessa independência da máquina discutiremos – Pesquisa automática em biblioteca – Opções que podem ser selecionadas em tempo de carga e link 3

Pesquisa automática em biblioteca Vários linking loaders podem incorporar de maneira automática as rotinas de uma biblioteca de subprogramas ao programa que está sendo carregado Na maioria dos casos há um biblioteca padronizada com esta finalidade Isso permite que seja usado subrotinas de uma biblioteca quase como se fizessem parte da linguagem 4

Pesquisa automática em biblioteca As subrotinas chamadas serão acessadas automaticamente na biblioteca, linkadas com programa principal, e carregadas O programador só precisa mencionar o nome das subrotinas como referências externas Os linking loaders que suportam a pesquisa automática devem acompanhar os símbolos externos referenciados, mas não definidos, no fluxo principal de entrada do loader 5

Pesquisa automática em biblioteca Uma solução simples seria entrar com os símbolos de cada registro de Referência na tabela de símbolos (ESTAB) se os símbolos já não estivessem Esses itens seriam assinalados de modo especial e quando a definição fosse encontrada, o endereço seria preenchido na tabela 6

Pesquisa automática em biblioteca No final da Passagem 1, os símbolos de ESTAB sem definição representam referências externas não resolvidas O loader pesquisará as bibliotecas especificadas e processará as subrotinas como se fizesse parte do fluxo principal de entrada Observe que as subrotinas nas bibliotecas também podem conter referências externas, assim é preciso repetir o processo até que todas as referências sejam resolvidas 7

Pesquisa automática em biblioteca Esse processo permite ao programador ignorar as rotinas standard da biblioteca, utilizando suas próprias rotinas em lugar delas EX: se o programador define uma subrotina SQRT (mesmo nome da subrotina da biblioteca), ao fim da Passagem 1 do loader, SQRT já estaria definida, e portanto não seria incluída por pesquisa da biblioteca 8

Pesquisa automática em biblioteca Na maioria dos casos, as bibliotecas são construídas utilizando-se uma estrutura de arquivo especial – Diretório que dá nome a cada rotina e guarda um ponteiro que indica o endereço da rotina dentro do arquivo A pesquisa à biblioteca se transforma, na prática, em uma pesquisa ao diretório, seguida pela leitura do programas-objetos Essa pesquisa se aplica a qualquer referência externa e não apenas a subrotinas 9

Opções do Loader Vários loader permitem que o usuário especifique opções para modificar os procedimentos do loader – Linguagem de comandos especial – Arquivo de entrada – Instruções embutidas no fluxo principal – Instruções no programa-fonte (assembler ou compilador os inclui no programa-objeto) 10

Opções do Loader Utilizaremos a abordagem de linguagem de comandos Uma das opções é a escolha de dispositivos de entrada alternativos – INCLUDE nome-programa(nome-biblioteca) Instrui o loader a ler o programa-objeto designado em uma biblioteca e tratá-lo como se fosse parte da entrada principal do loader – DELETE nome-csect Elimina símbolos externos ou seções de controle inteiras 11

Opções do Loader – CHANGE nome1, nome2 Faz com que o símbolo externo nome1 fosse transformado em nome2 sempre que aparecesse nos programas-objetos Ex: Considerando o programa-fonte e o programa-objeto a seguir, onde há um programa principal (COPY) que utiliza 2 subrotina (RDREC e WRREC). 12

Opções do Loader 13

Opções do Loader 14

Opções do Loader 15

Opções do Loader Se o prog. passasse a utilizar READ e WRITE de uma biblioteca em substituição a RDREC e WRREC Como solução temporária, uma sequência de comandos poderia ser empregada para fazer a alteração sem a necessidade de remontar o programa 16

Opções do Loader No programa-objeto haveria os seguintes comandos INCLUDEREAD(UTLIB) INCLUDEWRITE(UTLIB) DELETEREDREC, WRREC CHANGERDREC, READ CHANGEWRREC, WRITE 17

Opções do Loader Esses comandos fariam com que o loader incluísse as seções de controle READ e WRITE da biblioteca UTLIB Eliminasse as seções RDREC e WRREC O 1º CHANGE faria com que todas as referências externas ao símbolo RDREC fossem transferidas para READ E o 2ª CHANGE de WRREC para WRITE 18

Opções do Loader Um comando para especificar o uso de bibliotecas alternativas, ao invés de inclusão automática – LIBRARYMYLIB As bibliotecas especificadas pelo usuário costumam ser lidas antes das bibliotecas standard do sistema – NOCALLrotina1, rotina2 Instrui o loader a ignorar as referências externas especificadas 19

Opções do Loader Outra opção é a saída do loader Por exemplo, ele poderia imprimir ou não um mapa de carga e qual o nível de detalhamento Uma opção bastante comum é permitir especificar o endereço onde a execução do programa deverá ser iniciada Outra possibilidade é definir se o loader tentará executar o programa caso sejam detectados erros durante a carga 20

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