software b sico n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Software Básico PowerPoint Presentation
Download Presentation
Software Básico

Loading in 2 Seconds...

play fullscreen
1 / 21
mackenzie-levine

Software Básico - PowerPoint PPT Presentation

59 Views
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. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - - 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.