S.o aula 2930

137 visualizações

Publicada em

aula 29 30

Publicada em: Educação
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
137
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
2
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

S.o aula 2930

  1. 1. MATÉRIA: SISTEMA OPERACIONAL (S.O) PROFESSOR: ARMANDO RIVAROLA, LICENCIADO EM COMPUTAÇÃO
  2. 2. ESPAÇOS LÓGICOS E FÍSICOS  Retomemos os conceitos envolvidos com os arquivos de programa fonte. Qual é o objetivo básico de um programa? Ensinar o computador a executar um sequência de passos, manuseando dados de forma interativa ou não, com o objetivo final de realizar cálculos ou transformações com os dados fornecidos durante a execução do programa.  Para isto, após o entendimento do problema, idealiza-se conceitualmente uma forma de representação do dados a serem manipulados e depois disso um conjunto de operações especiais que manipularão as estruturas criadas possibilitando a obtenção dos resultados esperados do programa.
  3. 3.  Notem que ao projetar-se um programa, por mais simples ou complexo que ele seja, define-se um espaço lógico que reúne todas as abstrações feitas para criar-se o programa, sejam elas de natureza estrutural ou procedural/funcional.  Tais abstrações são os objetos lógicos do programa. O espaço lógico contém todas as definições necessárias para o programa, mas sem qualquer vínculo com as linguagens de programação ou com os processadores e computadores que executarão os programas criados a partir desta concepção.  O espaço lógico é a representação abstrata da solução do problema, também abstrata.
  4. 4.  Durante a implementação dos programas utilizam- se, como meios de expressão, as linguagens de programação que possibilitam expressar de maneira concreta (apesar das limitações impostas por qualquer linguagem de programação) as formulações contidas no espaço lógico. Pode-se dizer assim que os programas fonte representam, numa dada linguagem de programação, o espaço lógico do programa.  Num outro extremo, dentro do computador a execução do programa tem que ocorrer dentro da memória principal, como consequência e limitação da arquitetura de Von Neumann.
  5. 5.  Seja qual for o computador e a particularização da arquitetura de seu hardware, a memória principal pode sempre ser expressa como um vetor, unidimensional, de posições de memória que se iniciam num determinado ponto, usualmente o zero, e terminam em outro, 536.870.912 para um computador com 512 Mbytes de memória, por exemplo.  Cada posição desta estrutura de memória é idêntica, podendo armazenar o que se chama de palavra de dados do computador, na prática um conjunto de bits.
  6. 6.  Tipicamente se organizam as memórias dos microcomputadores em bytes, assim cada posição de memória poderia armazenar um byte de informação, sendo que nos referenciamos as posições de memória pelos seus números de posição, os quais são chamados de endereços.  Como a memória de um computador é um componente eletrônico, fisicamente palpável, dizemos que os endereços de memória representam fisicamente a organização de memória de um computador. Sabemos que um programa quando em execução na memória principal de um computador se chama imagem executável e que esta imagem ocupa um região de memória finita e bem determinada. Ao conjunto de posições de memória utilizado por uma imagem se dá o nome de espaço físico desta imagem.
  7. 7.  De um lado a concepção do programa, representada e contida pelo seu espaço lógico. Do outro lado, durante a execução da imagem temos que as posições de memória usadas constituem o espaço físico deste mesmo programa. De alguma forma, em algum instante o espaço lógico do programa foi transformado e ligado a organização de memória do sistema computacional em uso, constituindo o espaço físico deste mesmo programa.  A ligação entre o espaço lógico e físico representa, na verdade, a um processo de mapeamento, onde cada elemento do espaço lógico é unido de forma única a uma posição de memória do computador, acabando por definir um espaço físico. A este processo de ligação se dá o nome de mapeamento ou binding (amarração), como representado na Figura 4.8. No nosso contexto binding significa o mapeamento do espaço lógico de um programa no espaço físico que possibilita sua execução dentro do sistema computacional em uso.
  8. 8. Figura 4.8: Representação do binding.
  9. 9.  Veremos a seguir que o binding tem que ser realizado por uma das entidades envolvidas no processo de criação de programas, ou seja, em alguns instante da compilação, ligação, carregamento ou mesmo execução. É possível também que o binding seja realizado por mais de uma destas entidades, onde cada uma realiza uma parcela deste processo de mapeamento.
  10. 10. COMPILADORES Figura 4.10: Arquivo objeto gerado através de compilação absoluta
  11. 11.  Na Figura 4.10, onde se apresenta a estrutura interna de arquivos gerados através de compilação absoluta, temos os elementos seguintes:  Cabeçalho: Região onde são colocadas informações gerais sobre o arquivo objeto e suas partes. Também conhecido como header.  Código: Segmento onde reside o código do programa, propriamente dito. É gerado da mesma forma que na compilação absoluta.  TSE: A tabela de símbolos externos é o local onde são listadas as posições de chamada de símbolos externos (variáveis, estruturas ou funções).
  12. 12.  Os arquivos objeto produzidos tem seus endereços calculados a partir de um endereço de origem padronizado ou informado antes da compilação.  Este endereço de origem, a partir do qual os demais são definidos, é chamado de endereço base de compilação ou apenas de endereço base.  Desta maneira a compilação se torna mais simples, mas como consequência direta disto temos que:  •Um arquivo de programa executável só pode ser executado numa região fixa de memória;
  13. 13.  Não podem existir duas ou mais instâncias do mesmo programa executável na memória, a não ser que se realizem compilações adicionais forçando a geração do código para uso em diferentes regiões de memória;  Dois ou mais diferentes programas executáveis não podem ser carregados na memória a não ser que tenham sido compilados prevendo exatamente a ordem de carregamento e as áreas adicionais de memória que venham a utilizar;  Duas ou mais imagens executáveis não podem se sobrepor na memória (ocupar os mesmos endereços de memória) total ou parcialmente;  Uma imagem executável deve sempre ocupar uma região contínua de memória;
  14. 14.  A soma das imagens possíveis de serem carregadas em memória para execução paralela tem que ser menor ou igual a quantidade total de memória disponível.  As razões para estas limitações são simples e todas baseadas no fato de que dentro do arquivo objeto só existem números binários. Tais números representam tanto os códigos das instruções do processador como os dado constantes do programa e também os endereços determinados pelo compilador.  Como existem apenas números binários em todo o arquivo objeto, não é trivial a distinção entre instruções, dados e endereços, tornando praticamente impossível:
  15. 15.  Reverter a compilação, pois o binding se tornou irreversível, não sendo possível reconstituir-se o espaço lógico que originou o programa;  Modificar o endereçamento do programa pois não se pode distinguir que são os endereços dentro dos arquivos objeto gerados pelos compiladores absolutos.
  16. 16. EXERCÍCIOS  1) Qual é o objetivo básico de um programa?  2) O que é o espaço lógico?  3) O que é o espaço físico?  4) Como se dá a ligação entre o espaço lógico e o espaço físico?  5) A compilação absoluta, temos os elementos seguintes: Cabeçalho, Código e TSE, o que é cada um deles?

×