kjvsdvv
735 palavras
3 páginas
Ao detectar uma tentativa de acesso a um endereço fora desse intervalo, a MMU irá gerar uma solicitação de interrupção (IRQ - Interrupt ReQuest, vide Seção 1.5.1) para o processador, indicando o endereço inválido. Ao receber a interrupção, o processador interrompe o fluxo de execução do processo pi, retorna ao núcleo e ativa a rotina de tratamento da interrupção, que poderá abortar o processo ou tomar outras providências.A maior vantagem da estratégia de alocação contígua é sua simplicidade: por depender apenas de dois registradores e de uma lógica simples para a tradução de endereços, pode ser implementada em hardware de baixo custo, ou mesmo incorporada a processadores mais simples. Todavia, é uma estratégia pouco flexível e está muito sujeita à fragmentação externa, conforme será discutido na Seção 5.5.
5.3.3 Alocação por segmentos
A alocação por segmentos, ou alocação segmentada, é uma extensão da alocação contígua, na qual o espaço de memória de um processo é fracionado em áreas, ou segmentos, que podem ser alocados separadamente na memória física. Além das quatro áreas funcionais básicas da memória do processo discutidas na Seção 5.2.2 (text, data, stack e heap), também podem ser definidos segmentos para ítens específicos, como bibliotecas compartilhadas, vetores, matrizes, pilhas de threads, buers de entrada/saída, etc. Ao estruturar a memória em segmentos, o espaço de memória de cada processo não é mais visto como uma sequência linear de endereços lógicos, mas como uma coleção de segmentos de tamanhos diversos e políticas de acesso distintas. A Figura 5.8 apresenta a visão lógica da memória de um processo e a sua forma de mapeamento para a memória física. núcleo
0 max
Memória RAM
S1
S2
S3
S4
S5
S6
P1
P2
P1.S1 P1.S3 P1.S2
P1.S4
P1.S5
P1.S6
P2.S2 P2.S1 P2.S3
P2.S4
S1
S2
S4 S3
Figura 5.8: Alocação de memória por segmentos.
No modelo de memória alocada por segmentos, os endereços gerados pelos processos
devem