Qual era a principal característica da alocação Particionada estática?

Grátis

46 pág.

Qual era a principal característica da alocação Particionada estática?

  • Denunciar


Pré-visualização | Página 2 de 4

Notem que o sistema operacional pode ser alocado
tanto na parte baixa como na parte alta da memória.
Em geral, o sistema operacional é alocado na parte baixa da memória devido a posição do vetor de interrupções que
normalmente ocupa a memória baixa. O vetor de interrupções é uma tabela que contem os endereços das rotinas de
tratamento de interrupção (MAZIERO, 2014).
Alocação contígua simples
Na configuração da figura (a) o sistema operacional é alocado na parte baixa da memória ficando o restante da
memória disponível para o programa a ser executado. Já na configuração (b) ocorre o inverso, o sistema operacional é
alocado na parte superior e o programa na inferior. A figura (c) mostra uma configuração utilizando uma memória RAM
e uma ROM (Read-Only Memory – Memória Apenas de Leitura). Nesta abordagem os drivers de dispositivo ficam
alocados na parte superior da memória ROM e o sistema operacional e o programa do usuário na memória RAM.
Alocação contígua simples
Os antigos computadores de grande porte utilizavam a estrutura da figura (a). A abordagem da figura (b) tem sido
utilizada em muitos sistemas embarcados e estrutura da figura (c) foi utilizada por pequenos sistemas MS--DOS que
denominava a parte do sistema na ROM de BIOS (Basic Input Output – Sistema Básico de Entrada e Saída). Nesta forma
de alocação, o usuário pode acessar qualquer endereço de memória, ele tem o controle total sobre a memória principal.
Esta característica permite que um determinado programa possa, de forma intencional ou não, acessar a área destinada
ao sistema operacional, o que poderia causar um colapso do sistema.
Alocação contígua simples
Para resolver este problema foi adotado um registrador (figura
ao lado) que tem a função de delimitar as áreas do sistema
operacional e do programa. Caso um programa faça referência a
um endereço de memória, o sistema checa o delimitador para
verificar se o endereço não está invadindo uma área ocupada
pelo sistema operacional. Se estiver invadindo, então o sistema
operacional termina o programa e envia uma mensagem de
erro para o usuário sobre a violação de acesso da memória
principal.
Sobreposições (overlay)
Com o passar do tempo, a memória física passou a não ser
suficiente para conter todo o programa do usuário que eram
maiores que a memória principal. A solução encontrada foi a
utilização de uma técnica conhecida como overlay (sobreposições).
Nesta técnica o programa é desenvolvido de forma que possa ser
dividido em partes lógicas independentes de forma a permitir que
uma parte possa ser substituída por outra quando não estiver em
uso.
Área de overlay: área comum compartilhada.
Alocação contígua particionada fixa
Com a evolução dos sistemas monoprogramáveis para os multiprogramáveis, houve uma
grande necessidade de aprimoramento no modo de alocação da memória. Isto pelo fato de
que, um dos fatores de eficiência dos sistemas multiprogramáveis decorrem de ter vários
programas alocados na memória ao mesmo tempo para serem executados. Assim, surgiu a
alocação particionada fixa. Esta abordagem consiste em dividir a memória em tamanhos
fixos, denominadas partições.
A partição da memória pode ser de tamanhos iguais ou diferentes. O tamanho de cada
partição era definido no momento da inicialização do sistema operacional levando em
consideração os programas que seriam executados. Caso houvesse a necessidade de um
particionamento diferente do que tinha sido configurado, era necessário que o sistema
operacional fosse reinicializado com a nova configuração.
Alocação contígua particionada fixa
Este esquema tornava o gerenciamento de memória relativamente simples pelo fato
dos programas, ao serem compilados, recebiam um endereço físico da memória
principal a partir de onde deveriam ser carregados. Isto fazia com que o programa
somente executasse em uma partição específica. Dessa maneira, um programa tinha
que aguardar a desocupação de sua partição para ser executado, mesmo tendo outras
partições livres. Por exemplo, o programa “A” está sendo alocado na Partição 4 cujo
tamanho é de 100k. O programa “D” está alocado na Partição 1, também com tamanho
de 100k. A Partição 3 de tamanho 300k está livre, mas a restrição imposta pelos
endereços absolutos impedem que os programas “B”, “E” ou “F” sejam alocados nesta
partição causando um grande desperdício de memória. Esta forma de gerenciamento de
memória ficou conhecida como alocação particionada estática absoluta.
Alocação contígua particionada fixa
O problema de desperdício de memória da alocação particionada estática absoluta foi
superado com a implementação de compiladores e carregadores de realocação. Assim,
todos os endereços de memória, utilizados por um programa, ao ser compilado, passam
a ser relativos ao início do programa e não mais endereços físicos da memória. Esta
abordagem permite que ao carregar um programa, o carregador transforma os
endereços relativos em endereços absolutos a partir de partição onde foi alocado o
programa. Esta forma de gerenciamento de memória ficou conhecida como alocação
particionada estática relocável.
Desta forma, o programa pode ser alocado em qualquer partição que comporte o seu
tamanho. Contudo, houve um grande aumento na complexidade dos compiladores e
carregadores.
Alocação contígua particionada dinâmica
Um grande problema enfrentado nas abordagens anteriores, onde a
partição é fixa é a fragmentação da memória conhecida com
fragmentação interna. A fragmentação interna acontece quando um
programa não ocupa totalmente a partição em que foi alocado. Além
disso, uma partição pode ser muito pequena que não possa acomodar
um programa que esteja esperando.
Alocação contígua particionada dinâmica
A solução encontrada foi permitir que um programa
ocupasse o espaço que for necessário, de acordo com sua
necessidade, desde que haja espaço disponível na
memória. Assim, foi substituída a partição de tamanho
fixo pela alocação particionada dinâmica. Inicialmente a
memória é organizada de forma a não ter nenhuma
partição. Conforme há a necessidade de carregar um
programa, o sistema operacional cria a partição
dinamicamente, de acordo com as necessidades do
programa. Consequentemente, eliminou-se a
fragmentação interna, mas por outro lado, aumentou a
complexidade da tabela de alocação de partições.
Alocação contígua particionada dinâmica
Esta solução gerou um outro problema. Conforme os programas
terminam sua execução e desalocam a partição, vão deixando cada
vez mais, pequenos espaços vazios na memória. Estes espaços vão se
espalhando pela memória e muitas vezes são tão pequenos, que não
é possível utilizá-los para alocar um novo programa. Este problema é
conhecido como fragmentação externa. É possível resolver o
problema de fragmentação externa através de duas soluções. A
primeira solução consiste em reunir os espaços livres adjacentes
quando um programa libera a partição. Na figura abaixo, quando o
Programa C finaliza sua execução, sua partição de 1kb é combinada
com as duas partições adjacentes formando um espaço maior de
8kb.
Alocação contígua particionada dinâmica
Alocação contígua particionada dinâmica
A segunda solução exige que todas as partições na memória
sejam realocadas de forma que sejam eliminados todos os
espaços vazios entre elas. Esta solução é conhecida como
realocação dinâmica ou alocação particionada dinamicamente
com realocação. Esta abordagem praticamente elimina a
fragmentação externa, mas há um excessivo consumo de recurso
do sistema, como processamento e área de disco rígido, além de
ser muito complexa.
Estratégia de posicionamento de memória
Inicialmente, quando um programa necessita ser alocado, o sistema pode escolher qualquer partição livre que contenha
o espaço suficiente para recebê-lo. A escolha é feita pelo gerenciador de memória utilizando diversas estratégias e
levando em consideração diversos fatores com o objetivo de determinar em qual a melhor

O que é alocação Particionada Estatica?

9.3.1 – Alocação Particionada Estática: Divisão da memória em tamanhos fixos (partições) definidos na inicialização do Sistema em função dos programas que executariam no ambiente. A alteração do tamanho de uma partição necessita a inicialização do Sistema Operacional.

Qual a diferença entre a alocação Particionada estática absoluta e a Relocável?

Na alocação absoluta, um programa pode apenas ser carregado a partir de um único endereço, consequentemente em uma única partição. Na alocação relocável, um programa pode ser carregado a partir de qualquer endereço ou partição.

Qual a principal diferença entre a alocação de memória Particionada estática ou alocação fixa e a alocação dinâmica?

Alocação Particionada Estática -problema decorrente do esquema de alocação fixa de partições, é chamado fragmentação interna. Alocação Particionada Dinâmica -foi eliminado o conceito de partições de tamanho fixo. -programas utilizam apenas o espaço de que necessitam. -outro tipo de problema: fragmentação externa.

Como funciona a alocação Particionada dinâmica?

Alocação Particionada Dinâmica Aumenta o grau de compartilhamento de memória. Diminui o grau de fragmentação. Neste esquema foi eliminado o conceito de partições com tamanho fixo. Cada programa utiliza o espaço que necessitasse, desde que existisse este espaço na memória,transformando-o em uma partição.