1 / 21

Software Básico

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

Download Presentation

Software Básico

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  3. Programas com Overlay

  4. Programas com Overlay • 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

  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

  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

  7. Programas com Overlay • A instrução SEGMENTnome-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 PARENTnome-seg • Indentifica o segmento (definido anteriormente) que funcionará como o pai do segmento definido a seguir

  8. Programas com Overlay

  9. Programas com Overlay • 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

  10. Programas com Overlay

  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

  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

  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

  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

  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

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

  17. Programas com Overlay

  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

  19. Programas com Overlay

  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

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

More Related