Você está na página 1de 22

Modulo III Gerncia de Memria

Prof. Ismael H F Santos

April 05

Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br

Ementa
n Gerncia de Memria

Introduo n Alocao Contgua


n
n

Alocao Particionada Esttica

Swapping n Alocao Particionada Dinmica n Polticas de Escolha de Parties n Fragmentao x Compactao


n
April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 2

SOP CO009
Gerncia de Memria

April 05

Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br

Gerente de Memria
n Objetivos da Gerncia de Memria
i. Tornar o mais eficiente possvel o compartilhamento de memria entre os processos. ii. Impedir que um processo acesse rea de memria que no lhe pertence. iii. Facilitar alocao de memria. iv. Recuperar a memria liberada pelos processos.
April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 4

SOP CO009
Alocao Contgua

April 05

Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br

Alocao Contgua
n Alocao Contgua Simples
n

A MP dividida em 2 partes: uma para o SO e outra para o programa do usurio. Problemas:

MP SO rea para o programa usurio

Registrador

rea livre no utilizada pelo programa

no permite a utilizao eficiente da UCP e da MP, pois apenas um processo pode utilizar esses recursos. a princpio os programas estavam limitados ao tamanho da MP disponvel.

April 05

Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br

Alocao Contgua
n Main memory usually into two partitions: n Resident operating system, usually held in low memory with interrupt vector n User processes then held in high memory n Single-partition allocation n Relocation-register scheme used to protect user processes from each other, and from changing operating-system code and data n Relocation register contains value of smallest physical address; limit register contains range of logical addresses each logical address must be less than the limit register
April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 7

Alocao Contgua
n Alocao Contgua Overlay
MP SO Mdulo Principal rea de Overlay rea livre 2kb 3kb 4kb 1kb Mdulo 4kb A Mdulo 3kb B 1kb rea no utilizada A Principal B

A tcnica de overlay divide o programa em mdulos,

de forma que cada parte possa executar independentemente uma da outra, utilizando uma mesma rea de memria
April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 8

SOP CO009

Alocao Particionada Esttica

April 05

Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br

Alocao Particionada Esttica


n Alocao Particionada Esttica
Parties de tamanho fixo

estabelecendo na fase de PART INCIO TAM inicializao do sistema 1 2KB 2KB 2 4KB 5KB (BOOT) em funo dos 3 9KB 8KB programas que normalmente executam no ambiente. Os programas s podiam executar em uma das parties, mesmo estando as outras livres. Essa limitao se devia aos compiladores e montadores que geravam apenas cdigo absoluto o que gerou a Alocao Particionada Esttica Absoluta.
April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 10

Tabela de Parties

Alocao Particionada Esttica


n Alocao Particionada Esttica
Problema: O problema da alocao particionada esttica absoluta que os programas s podem rodar na partio para qual foram compilados mesmo que existam outras parties livres.

n Alocao Particionada Esttica - Relocao


O problema de determinados programas s rodarem em

uma partio passou a ser crtico, pois trazia uma grande ineficincia para o sistema. Somente com a evoluo dos compiladores, ligadores e loaders, a gerao de cdigo relocvel foi possvel dando origem a um novo tipo de alocao chamada Alocao Particionada Esttica Relocavel.
April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 11

Alocao Particionada Esttica Relocao


n Alocao Particionada Esttica- Relocao
A tcnica de relocao consiste na utilizao de um
registrador (fence register) como endereo base a partir do qual todos os endereos so referendados. O valor desse registrador somado a todo endereo gerado pelo processo do usurio em execuo. At ser executado um programa do usurio passa por diversas fases. Endereos so representados de formas diferentes em cada fase conforme veremos a seguir.

April 05

Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br

12

Binding of Instructions and Data to Memory


n Alocao Particionada - Relocao

April 05

Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br

13

Alocao Particionada Esttica Relocao


n Alocao Particionada - Relocao
Na Alocao Particionada, a tabela de parties
contm um bit de status informando se a partio est ou no livre para ser utilizada. A proteo, nesse esquema de alocao de memria, feita com o uso de dois registradores e pode ser implementada de duas maneiras:
MP 0 SO lower upper

Bounds Register
128k

1 2 3

upper lower

CPU

End Fsico N

S N

End Fsico OK

Tmp to SO

End Invlido

April 05

Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br

14

Alocao Particionada Esttica Relocao


n Alocao Particionada Esttica- Relocao

Base/Limits Register

HW da UGM diferente para os dois casos. No caso i ns

temos a chamada Relocao Esttica (gerada em tempo de carga do programa para execuo). No caso ii ns temos a Relocao Dinmica, a qual exige a soma do registrador base a cada endereo referendado o que representa um custo adicional a execuo que pode ser compensado com tcnicas de overlapping de instrues no processador.
April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 15

Binding of Instructions and Data to Memory


n Address binding of instructions and data to

memory addresses can happen at three different stages n Compile time: If memory location known a priori, absolute code can be generated; must recompile code if starting location changes n Load time: Must generate relocatable code if memory location is not known at compile time n Execution time: Binding delayed until run time if the process can be moved during its execution from one memory segment to another. Need hardware support for address maps (e.g., base and limit registers ).
April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 16

Logical vs. Physical Address Space


n The concept of a logical address space that is bound

to a separate physical address space is central to proper memory management


n n

Logical address generated by the CPU; also referred to as virtual address Physical address address seen by the memory unit

n Logical and physical addresses are the same in

compile-time and load-time address-binding schemes; logical (virtual) and physical addresses differ in execution-time address-binding scheme

April 05

Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br

17

Virtual-address Space

April 05

Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br

18

Memory-Management Unit ( MMU)


n Hardware device that maps virtual to physical

address
n In MMU scheme, the value in the relocation

register is added to every address generated by a user process at the time it is sent to memory
n The user program deals with logical

addresses; it never sees the real physical addresses


April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 19

Dynamic relocation using a relocation register

April 05

Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br

20

Dynamic Loading
n Routine is not loaded until it is called n Better memory-space utilization; unused

routine is never loaded n Useful when large amounts of code are needed to handle infrequently occurring cases n No special support from the operating system is required implemented through program design
April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 21

Dynamic Linking
n Linking postponed until execution time n Small piece of code, stub, used to locate the

appropriate memory-resident library routine n Stub replaces itself with the address of the routine, and executes the routine n Operating system needed to check if routine is in processes memory address n Dynamic linking is particularly useful for libraries
April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 22

Alocao Particionada Esttica Problemas


n Alocao Particionada Esttica Problemas O problema bsico da Alocao Particionada
Esttica, inicialmente adotada pelo OS/MFT (multiprogramming with a fixed number of tasks) da IBM quanto escolha do tamanho das parties para melhor atender os requerimentos de memria dos jobs atualmente processados. O throughput do sistema de computao em geral proporcional ao nvel de multiprogramao, que afetado pela maneira como gerenciamos o uso da mem ria.

April 05

Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br

23

Fragmentao
n Alocao Particionada Esttica -

Fragmentao
Fragmentao interna - memria requerida pelo processo menor que a disponvel na partio. externa - partio livre mas no utilizada por falta de espao. Fragentao Total = Frag Int + Frag Ext = (1+3+3) + 2 = 9Kb %Memria perdida = FragTot/ MemTot = 9/(2+5+8+2) = 50 %

April 05

Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br

24

SOP CO009
Swapping

April 05

Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br

25

Swapping
n Swapping cnica para permitir
que programas que esperam por memria livre possam ser processados. Nesta situao, o SO escolhe um programa residente que levado da MP para o disco (swapped out) retornando posteriormente para a MP (swapped in) como se nada tivesse ocorrido.
April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 26

Swapping
n A process can be swapped temporarily out of memory to a

backing store, and then brought back into memory for continued execution
n Backing store fast disk large enough to accommodate copies

of all memory images for all users; must provide direct access to these memory images
n Roll out, roll in swapping variant used for priority-based

scheduling algorithms; lower-priority process is swapped out so higher-priority process can be loaded and executed
n Major part of swap time is transfer time; total transfer time is

directly proportional to the amount of memory swapped


n Modified versions of swapping are found on many systems (i.e.,

UNIX, Linux, and Windows)


April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 27

Swapping

April 05

Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br

28

Swapping
n Swapping
Sempre que o Escalonador (CPU scheduler) decide

executar um processo ele chama o Dispatcher. O Dispatcher verifica se o processo a ser executado est residente em memria, se no, ele remove (swap out) algum processo que esteja correntemente na MP e carrega (swap in) o processo escolhido para ser executado. Aps isto o contexto do processo a ser executado restaurado e o controle passado ao processo que passa ento a executar. Exemplo: Calcule o Tswap = ? Tamanho do processo = 1 Mb Taxa de transferncia = 100 Mbits/s Tempo de seek= 10 msec, Disco = 7200 rpm
April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 29

Swapping (cont.)
7200 voltas 1 minuto = 60 s t 1volta 60/7200 s Assumimos Tlatncia = t 1volta = (60/7200) = 1/240 Ttransf disco-memria = Tseek + Tlatncia + Ttransf = = 10 x 10 3 + 1/240 + (1Mb x 8)/100 Mbits /s = = 0,01 + 0,042 + 8/100 = 0,01 + 0,042 + 0,08 = 0,132 s Tswap = 2 * Transf disco-memria = 0,26 seg
Swap in Swap out

April 05

Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br

30

SOP CO009

Alocao Particionada Dinmica

April 05

Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br

31

Alocao Particionada Dinmica


n Alocao Particionada Dinmica
O problema principal da Alocao Particionada

Esttica era a escolha do nmero e tamanho das regies de forma a diminuir a fragmentao (interna e externa). praticamente impossvel definir estes valores devido a diversidade dos jobs presentes em um Sistema de Computao. A soluo permitir que as regies (parties) variem seu tamanho de forma dinmica que a chamada Alocao Particionada Dinmica (ou varivel) adotada pelo OS/MVT (multiprograming with a variable number of tasks) da IBM.

April 05

Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br

32

Alocao Particionada Dinmica


n Alocao Particionada Dinmica

April 05

Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br

33

Alocao Particionada Dinmica


n Alocao Particionada Dinmica
Apesar do esquema MVT ser melhor que o MFT,
apresentando em geral uma menor fragmentao, o problema de Fragmentao Externa no MVT pode se tornar crtico. No pior caso podemos ter um bloco livre (no utilizado) entre cada dois processos. Se toda essa memria fosse reunida em um nico bloco livre mais processos poderiam rodar nesta nova partio. A poltica de escolha da partio tambm afeta a Fragmentao. Polticas de escolha da Partio se dividem em: FIRSFIT, BEST-FIT e WORST-FIT.
April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 34

SOP CO009

Polticas Escolha Partio

April 05

Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br

35

Polticas de escolha da Partio


n How to satisfy a request of size n from a list of

free holes
n n

First-fit: Allocate the first hole that is big enough Best-fit: Allocate the smallest hole that is big enough; must search entire list, unless ordered by size. Produces the smallest leftover hole. Worst-fit: Allocate the largest hole; must also search entire list. Produces the largest leftover hole.

n First-fit and best-fit better than worst-fit in terms

of speed and storage utilization


April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 36

Polticas de escolha da Partio


First-Fit - escolha a primeira partio livre, de tamanho
suficiente para carregar o processo. O Buraco dividido em duas partes, um para o processo e outro para o novo buraco. um algoritmo rpido pois ele no faz muitas pesquisas na lista. Existe uma variao do FIRST FIT chamada a NEXT FIT que comea a pesquisa na lista a partir da ltima posio encontrada ao invs de comear desde o princpio Best-Fit - escolhe a melhor partio, i.e., aquela em que o programa deixa o menor espao sem utilizao. Nesse algoritmo, a lista est ordenada por tamanho, diminuindo o tempo de busca por uma rea desocupada. A desvantagem que cada vez mais a memria fica com pequenas reas no contguas, aumentando o problema de fragmentao externa.
April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 37

Polticas de escolha da Partio


Worst-Fit - a idia deste algoritmo tentar diminuir o
problema da fragmentao externa gerada pelo BEST FIT escolhendo a partio que deixa o maior espao sem utilizao.

April 05

Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br

38

SOP CO009

Fragmentao x Compactao

April 05

Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br

39

Fragmentao
n Alocao Particionada Dinmica
n n n

Hole block of available memory; holes of various size are scattered throughout memory When a process arrives, it is allocated memory from a hole large enough to accommodate it Operating system maintains information about: a) allocated partitions b) free partitions (hole)
OS process 5 OS process 5 OS process 5 process 9 process 8 OS process 5 process 9 process 10 process 2 process 2 process 2
40

process 2
April 05

Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br

Fragmentao
n External Fragmentation total memory space

exists to satisfy a request, but it is not contiguous n Internal Fragmentation allocated memory may be slightly larger than requested memory; this size difference is memory internal to a partition, but not being used n Reduce external fragmentation by compaction
n n n

Shuffle memory contents to place all free memory together in one large block Compaction is possible only if relocation is dynamic, and is done at execution time I/O problem
n n

Latch job in memory while it is involved in I/O Do I/O only into OS buffers
Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 41

April 05

Compactao
n Compactao
Uma soluo para o problema

da Fragmentao o uso da tcnica de Compactao. O objetivo desta tcnica reunir toda memria livre num nico bloco de memria, movendo de lugar as parties ocupadas. Existem vrios algoritmos de compactao, o mais simples seria aquele que move todos processos para o topo (ou base) da memria enquanto os blocos livres so movidos em direo contrria. Este algoritmo normalmente tem um custo proibitivo devido a grande movimentao de memria requerida
April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 42

Compactao
n Compactao
Swapping pode ser combinado com MVT. Se existe Relocao Esttica todo job que swapped in precisa ser executado na mesma regio de memria que ocupava anteriormente, o que fora a necessidade de se remover da mem ria (swap out) os processos que por ventura estejam utilizando a sua regio. Se existe Relocao Dinmica ento o job pode ser swapped in em uma posi o diferente.

April 05

Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br

43

Você também pode gostar