s.o aula 2930

16
MATÉRIA: SISTEMA OPERACIONAL (S.O) PROFESSOR: ARMANDO RIVAROLA, LICENCIADO EM COMPUTAÇÃO

Upload: armando-rivarola

Post on 17-Jan-2017

118 views

Category:

Education


0 download

TRANSCRIPT

Page 1: S.o aula 2930

MATÉRIA: SISTEMA OPERACIONAL (S.O)PROFESSOR: ARMANDO RIVAROLA, LICENCIADO EM COMPUTAÇÃO

Page 2: S.o aula 2930

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.

Page 3: S.o aula 2930

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.

Page 4: S.o aula 2930

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.

Page 5: S.o aula 2930

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.

Page 6: S.o aula 2930

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.

Page 7: S.o aula 2930

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.

Page 8: S.o aula 2930

Figura 4.8: Representação do binding.

Page 9: S.o aula 2930

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.

Page 10: S.o aula 2930

COMPILADORES

Figura 4.10: Arquivo objeto gerado através de compilação absoluta

Page 11: S.o aula 2930

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

Page 12: S.o aula 2930

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;

Page 13: S.o aula 2930

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;

Page 14: S.o aula 2930

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:

Page 15: S.o aula 2930

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.

Page 16: S.o aula 2930

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?