A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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.

Apresentações semelhantes


Apresentação em tema: "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."— Transcrição da apresentação:

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

2 Programas com Overlay Este método de implementação reduz a quantidade total de memória exigida para a montagem do programa, permitindo que as Passagens 1 e 2 ocupassem os mesmos endereços na memória A figura a seguir mostra a estrutura de overlay do nosso programa-exemplo As letras representam os nomes das seções de controle e as linhas as transferências de controle entre as seções 2

3 Programas com Overlay 3

4 A seção principal (raiz) de controle chama-se A, que pode chamar B, C ou D/E A maioria dos sistemas que suportam programas com overlay obedecem a um estrutura de árvore, onde os nós são chamados de segmentos O segmento raiz é carregado quando a execução é iniciada, e permanece na memória até que o programa termine 4

5 Programas com Overlay Os outros segmentos são carregados à medida que se tornam necessários Se um segmento S estiver presente na memória, todos os outros que ficam ao longo do percurso entre S e a raiz deverão estar presentes também Como os segmentos do mesmo nível (ex. B, C e D/E) só podem ser chamados pelo nível imediatamente superior, eles nunca serão requisitados ao mesmo tempo 5

6 Programas com Overlay Dessa forma, para esses segmentos do mesmo nível podem ser atribuídos os mesmo endereços de memória Se um segmento for carregado através de uma transferência de controle, ele será superposto (overlay) a qualquer outro segmento do mesmo nível que estiver na memória A estrutura de um programa usando overlay é definida pelo loader usando comandos 6

7 Programas com Overlay A instrução SEGMENT nome-seg (seção de controle) define um segmento, atribui um nome ao segmento, e relaciona as seções de controle que ficarão contidas nele A instrução PARENT nome-seg Indentifica o segmento (definido anteriormente) que funcionará como o pai do segmento definido a seguir 7

8 Programas com Overlay 8

9 Depois que a estrutura de overlay estiver definida, será fácil encontrar os endereços A relocação e o link podem ser feitos da maneira habitual, com uma única exceção: – As transferências de controle de um pai para um filho deve levar em conta a possibilidade de que o segmento chamado não esteja na memória – O segmento raiz pode ser carregado diretamente na memória – Os outros segmentos serão gravados num arquivo de trabalho especial chamado SEGFILE criado pelo loader 9

10 Programas com Overlay 10

11 Programas com Overlay A carga efetiva dos segmentos durante a execução do programa é controlada por um gerenciador de overlay Ele é uma seção de controle especial denominada OVLMGR, incluída automaticamente no segmento-raiz do programa pelo loader O OVLMGR deve dispor de informações sobre a estrutura de overlay armazenadas numa tabela de segmentos, SEGTAB, criada pelo loader e incluída no seg-raiz como uma seção separada 11

12 Programas com Overlay A SEGTAB descreve a estrutura de árvore, especifica o nível de cada segmento com seu respectivo endereço onde deve ser carregado, o endereço de seu ponto de entrada, e a posição do segmento em SEGFILE SEGTAB possui também áreas de transferência especiais para cada segmento, exceto a raiz Estas áreas contém instruções para a transferência de controle entre os segmentos 12

13 Programas com Overlay Se houver um segmento na memória, a área de transferência deste segmento conterá uma instrução de salto para o seu ponto de entrada Se não houver nenhum segmento na memória, a área de transferência conterá as instruções que chamam o OVLMGR e passam para ele informações referentes ao segmento que deve ser carregado em seguida 13

14 Programas com Overlay Uma transferência de controle de um segmento para outro inferior (pode resultar num overlay) será transformada pelo loader num salto para a área de transferência deste segmento Como SEGTAB reside no segmento-raiz, as áreas de transferência permanecem sempre na memória 14

15 Programas com Overlay A figura a seguir representa um programa com os segmentos 1, 2 e 4 na memória, e as instruções da seção de controle A estão sendo executada O controle está com o segmento 1, entretanto, os seg. 2 e 4 permanecerão na memória até que sejam superpostos por outros segmentos As áreas de transferências dos seg. 2 e 4 contem salto para as seções B e H 15

16 Programas com Overlay As outras áreas de transferência contem instruções que chamam o OVLMGR (áreas sombreadas em SEGTAB) 16

17 Programas com Overlay 17

18 Programas com Overlay Se a seção A executar uma instrução +JSUB B, o resultado será um salto para a área de transferência do seg. 2 Isso ocasionará uma transferência direto do controle para B Se A chamar D, então a áreas de transferência do seg. 6 contém instruções que chamam o OVLMGR, que carrega no endereço apropriado o seg. 6 a partir de SEGFILE 18

19 Programas com Overlay 19

20 Programas com Overlay Em seguida, o gerenciador de overlay atualiza SEGTAB para indicar que o seg. 6 foi carregado, e que os seg. 2 e 4 não estão mais na memória 20

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


Carregar ppt "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."

Apresentações semelhantes


Anúncios Google