MATÉRIA: SISTEMA OPERACIONAL (S.O)
PROFESSOR: ARMANDO RIVAROLA, LICENCIADO EM
COMPUTAÇÃO
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.
 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.
 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.
 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.
 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.
 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.
Figura 4.8: Representação do binding.
 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.
COMPILADORES
Figura 4.10: Arquivo objeto gerado através de compilação absoluta
 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).
 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;
 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;
 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:
 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.
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?

S.o aula 2930

  • 1.
    MATÉRIA: SISTEMA OPERACIONAL(S.O) PROFESSOR: ARMANDO RIVAROLA, LICENCIADO EM COMPUTAÇÃO
  • 2.
    ESPAÇOS LÓGICOS EFÍ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.
     Notem queao 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.
     Durante aimplementaçã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.
     Seja qualfor 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.
     Tipicamente seorganizam 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.
     De umlado 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.
  • 9.
     Veremos aseguir 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.
    COMPILADORES Figura 4.10: Arquivoobjeto gerado através de compilação absoluta
  • 11.
     Na Figura4.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.
     Os arquivosobjeto 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.
     Não podemexistir 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.
     A somadas 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.
     Reverter acompilaçã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.
    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?