gestao de memoria2

7
INSTITUTO SUPERIOR POLITÉCNICO UNIVERSITÁRIO_____________________________________ CURSO: INFORMÁTICA DE GESTÃO 3o. SEMESTRE Abril. 2005 CADEIRA: SISTEMAS OPERATIVOS Docente: Xavier Manussa _____________________________________________________________________________________________ GESTÃO DE MEMÓRIA INTRODUÇÃO A organização e gestão de memória primária tem sido um dos factores mais importantes que influemciam o desenho dos Sistemas Operativos. Programas mais dados devem estar na memória primária de modo a corer ou serem directamente referenciados pelo CPU. A memória secundária (discos, tambores e fitas magnéticas, …) providenciam uma grande capacidade e mais barata para guardar programas e dados que devem estar disponiveis para processamento. ORGANIZAÇÃO DE MEMÓRIA Historicamente, a organização e gestão da memória principal do computador tem grandemente afectado a evolução dos sistemas operativos. A organização da memória é a maneira como a memória deve ser vista. A memória tem sido vista como um recurso muito carro e por conseguinte requereu sempre a atenção dos desenhadores dos sistemas que têm tentado sempre optimizar a sua utilização. Embora o seu preço tem vindo a reduzir-se , continua contudo cara em releção a memória secundária. Assim, existem vários esquemas de organização e gestão de memória: 1. Um programa de um utilizador na memória ou vários programas dos utilizadores ao mesmo tempo. 2. Se vários programas estão na memória ao mesmo tempo cada programa terá ou não o mesmo espaço de tempo, ou dividimos a memória em porções chamadas partições de diferentes tamanhos. 3. Se dividimos a memória em partições será duma forma rígida com partições definidas para períodos extendidos de tempo, ou proporcionamos uma partição dinâmica, permitindo ao sistema adaptar-se rápidamente à mudanças de acordo com as necessidades dos programas dos utilizadores. 4. Será necessário que os programas dos utilizadores sejam desenhados para correrem em partições específicas, ou permitimos que os trabalhos possam corer em qualquer partição disponível desde que tenha capacidade para tal? 5. Será necessário que cada trabalho seja colocado num bloco contínuo de localizações de memória, ou permitimos os trabalhos serem parcelados em blocos separados e colocados em qualquer slot na memória primária? Os sistemas operativos são construidos implementado cada um destes esquemas. Sistemas Operativos Gestão de Memória Pagina 1

Upload: cherno-macuvele

Post on 03-Feb-2016

212 views

Category:

Documents


0 download

DESCRIPTION

este material fala sobre a gestão da memória apresentada pelo DR.Manusse

TRANSCRIPT

Page 1: gestao de Memoria2

INSTITUTO SUPERIOR POLITÉCNICO UNIVERSITÁRIO_____________________________________

CURSO: INFORMÁTICA DE GESTÃO 3o. SEMESTRE Abril. 2005 CADEIRA: SISTEMAS OPERATIVOS Docente: Xavier Manussa

_____________________________________________________________________________________________ GESTÃO DE MEMÓRIA INTRODUÇÃO A organização e gestão de memória primária tem sido um dos factores mais importantes que influemciam o desenho dos Sistemas Operativos. Programas mais dados devem estar na memória primária de modo a corer ou serem directamente referenciados pelo CPU. A memória secundária (discos, tambores e fitas magnéticas, …) providenciam uma grande capacidade e mais barata para guardar programas e dados que devem estar disponiveis para processamento. ORGANIZAÇÃO DE MEMÓRIA Historicamente, a organização e gestão da memória principal do computador tem grandemente afectado a evolução dos sistemas operativos. A organização da memória é a maneira como a memória deve ser vista. A memória tem sido vista como um recurso muito carro e por conseguinte requereu sempre a atenção dos desenhadores dos sistemas que têm tentado sempre optimizar a sua utilização. Embora o seu preço tem vindo a reduzir-se , continua contudo cara em releção a memória secundária. Assim, existem vários esquemas de organização e gestão de memória:

1. Um programa de um utilizador na memória ou vários programas dos utilizadores ao mesmo tempo.

2. Se vários programas estão na memória ao mesmo tempo cada programa terá ou não o mesmo espaço de tempo, ou dividimos a memória em porções chamadas partições de diferentes tamanhos.

3. Se dividimos a memória em partições será duma forma rígida com partições definidas para períodos extendidos de tempo, ou proporcionamos uma partição dinâmica, permitindo ao sistema adaptar-se rápidamente à mudanças de acordo com as necessidades dos programas dos utilizadores.

4. Será necessário que os programas dos utilizadores sejam desenhados para correrem em partições específicas, ou permitimos que os trabalhos possam corer em qualquer partição disponível desde que tenha capacidade para tal?

5. Será necessário que cada trabalho seja colocado num bloco contínuo de localizações de memória, ou permitimos os trabalhos serem parcelados em blocos separados e colocados em qualquer slot na memória primária?

Os sistemas operativos são construidos implementado cada um destes esquemas.

Sistemas Operativos Gestão de Memória Pagina 1

Page 2: gestao de Memoria2

INSTITUTO SUPERIOR POLITÉCNICO UNIVERSITÁRIO_____________________________________

GESTÃO DE MEMÓRIA Independetemente do esquema de organização adoptado para um sistema em particular, é necessário decidir que estratégias devem ser empregues para se obter uma óptima “performance”. As estratégias de gestão de memória determinam como uma dada organização de memória funciona sob várias políticas:

1. Quando é que se coloca um novo programa na memória? 2. Será quando o sistema especificamente o solicitar? Ou tentamos antecipar ao

pedido? 3. Aonde, na memória, colocamos o próximo programa a corer? 4. Colocamos os programas ajustadamente nos slots disponíveis de modo a

minimizar o disperdício de espaço, ou colocamos os programas tão rápido quanto possível para minimizar o tempo de execução.

5. Se um novo programa tiver que ser carregado para a memória e, se esta estiver cheia, qual dos outros programas deverá ser retirado? – o mais antigo programa ou aqueles que são pouco usados?, ou aqueles que recentemente foram pouco usados?

Os sistemas operativos tem sido implementados usando cada uma destas estratégias de gestão de memória. HIERARQUIA DE MEMÓRIA Os sistemas de memória de computadores tornaram-se hierárquicos consistindo de várias camadas de memória:

i. Memória Cache ii. Memória Primária iii. Memória Secundária

Tempo de acesso Diminui Velocidade de acesso aumenta Custo de memória por bit aumenta Capacidade de armazenamento diminui

Memória Cache Programas mais dados podem ser referenciados directamente pelo CPU.

Memória Secundária

Memória Primária

Programas mais dados devem primeiro ser movidos para a memória primária antes de ser referenciados pelo CPU.

Fig. 1.1 Hierarquia da organização de memória

Sistemas Operativos Gestão de Memória Pagina 2

Page 3: gestao de Memoria2

INSTITUTO SUPERIOR POLITÉCNICO UNIVERSITÁRIO_____________________________________

A memória cache é extremamente rápida e oferecendo por conseguinte altas velocidades de execução de instruções de programas bem como accesso rápido aos dados. A memória cache é mais cara comparativamente às restantes. A memória primária é de custo baixo em relação a memória cache. Programas e dados devem ser guardados na memória primária para que possam ser usados pelo Processador (CPU). Os programas e dados que não sejam imediatamente necessários são guardados na memória secundária, geralmente o DISCO DURRO. A memória secundária é por sua vez mais barata em comparação com a memória primária mas oferece grande capacidade de armazenamento (permanente) de programas e dados. Isto é, os dados na memória secundária não desaparecem senão com a avaria do próprio dispositivo de armazenamento (Disco Durro).As restantes memórias são voláteis – os dados ou programas desaparecem assim que se termina a execução do programa ou quando há um corte de energia. ESTRATÉGIAS DE GESTÃO DE MEMÓRIA As estratégias de gestão de memória propõem-se a alcancar o melhor uso possível e desempenho do recurso muito caro que é a memória. Há três tipos de estratégias de memória a saber:

i. Estratégias de busca – a pedido - por antecipação

ii. Estratégias de colocação iii. Estratégias de substituição

As estratégias de busca visam determinar quando é que a próxima parte do programa ou dados deve ser carregada na memória. Nas estratégias de busca por pedido, o programa e dados serão trazidos para a memória quando especificamente forem requeridos. Nas estratégias de busca por antecipação, o sistema antevê as necessidades do programa e tenta carregar na memória os módulos do programa e dados necessários antes de efectivamente serem necessários. Quando forem necessários estarão disponíveis na memória e o programa pode continuar em execução sem demora. As estratégias de colocação visam determinar aonde na memória principal deverá ser colocado um novo programa. Há três tipos a saber:

i. Onde primeiro se ajusta ii. Onde melhor se ajusta iii. Onde pior se ajusta

Onde primeiro se ajusta – o programa é colocado no primeiro bloco de memória principal capaz de o albergar. Onde melhor se ajusta – o programa é colocado no bloco de memória principal onde melhor se ajusta, isto é, o menor bloco livre mas capaz de albergar o programa de modo a deixar (disperdiçado) o menor espaço possível.

Sistemas Operativos Gestão de Memória Pagina 3

Page 4: gestao de Memoria2

INSTITUTO SUPERIOR POLITÉCNICO UNIVERSITÁRIO_____________________________________

Onde pior se ajusta – o programa é colocado no maior bloco livre de memória principal de modo a deixar (livre) o maior bloco possível. As estratégias de Substituição visam determinar qual dos programas existentes na memória deverá ser removido para dar lugar ao novo programa. Alocação Contígua vs Alocação Não Contígua de Memória Sistemas de alocação contígua de memória requerem que o programa inteiro ocupe um bloco de localizações adjacentes de memória para que possa ser executado. Nos sistemas de alocação não contigua de memória os programas e dados podem ocupar pequenos blocos separados que podem estar em qualquer espaço livre de memória, mesmo quando esses blocos não sejam adjacentes entre um e outro. MONOPROGRAMAÇÂO (Alocação de Memória para um Programa) Os primeiros computadores eram dedicados a um só utilizador de cada vez. Os primeiros sistemas de um só utilizador usaram os primeiros sistemas operativos, geralmente consistindo de sistemas de controlo de entrada/saida para facilitar a programação. 0 a

Não usada

Programa do Utilizador

Sistema Operativo

b Fig 1.2 Alocação de memória contígua para um programa do utlizador

c

Nestes sistemas a protecção consistia de um só registo de delimitação que separava a área de memória do programa do utilizador com a área ocupada pelo sistema operativo. Fig 1.3 Protecção de memória num sistema de alocação contigua para um programa do utlizador

Sistema Operativo

Programa do Utilizador

CPU Registo de delimitação

a

Todos os registos gerados pelo programa do utilizador são verificados para se apurar se não serão inferiores a a. Não usada

a

0

b

c

Sistemas Operativos Gestão de Memória Pagina 4

Page 5: gestao de Memoria2

INSTITUTO SUPERIOR POLITÉCNICO UNIVERSITÁRIO_____________________________________

Sistemas de um utilizador (Single Stream Batch Processing) Os primeiros sistemas de um só utlizador tinham a memória dedicada a um só trabalho durante mais tempo do que o tempo de execução do mesmo. Geralmente, os trabalhos necessitavam de tempo de set up durante o qual o sistema operativo era carregado, as cassettes e os discos eram montados, os formulários apropriados eram colocados na impressora, os cartões eram perfurados etc. Quandos os trabalhos eram concluidos outro tempo era dispendido na retidara dos mesmos. Durante esse tempo de set up e de desmontagem dos dispositivos usados pelos trabalhos o computador permanecia inactivo. Os desanhadores do sistema observaram que se podessem automatizar a transição de trabalho-para-trabalho poderiam reduzir consideravelmente o tempo disperdiçado entre os trabalhos. Assim surgiram os Sistemas de Processamento Batch. Em sistemas de um utilizador os trabalhos são agrupados em lotes carregados consecutivamente em cassettes ou discos. O processador da cadeia dos trabalhos lia as declarações da linguagem de controlo dos trabalhos e facilitava o set up do próximo trabalho. Através deste mecanismo de funcionamento os sistemas de processamento batch aumentaram consideravelmente o uso dos sistemas de computadores e ajudaram a demonstrar o real valor dos sistemas operativose e a gestão intensive dos recursos. MULTIPROGRAMAÇÃO DE PROGRAMAÇÃO FIXA Com tradução e endereçamento absolutos Com tradução e enderaçamento realocáveis Enventualmente, tornou-se evidente que diversos utilizadores podiam partilhar a máquina ao mesmo tempo, mas tinha que haver mecanismos de protecção entre os jobs dos diversos utilizadores. Em Multiprogramação de Partição Fixa com tradução e carregamento absolutos, os programas do utilizador estão preparados para correr em partições especificas. Se a partição para correr um dado programa não estivesse disponivel, então tinha que esperar , mesmo se uma outra partição estivesse livre. Em Multiprogração de Partição Fixa com tradução e carregamento realocáveis, um programa pode ser carregado em qualquer partição disponível que tenha capacidade suficiente para o conter. Protecção em Sistemas de Multiprogramação A protecção em sistemas de multiprogramação com alocação contigua de memória e feita através de dois registos de delimitação que são parte do CPU. Cada endereço gerado deve ser verificado para se apurar se se encontra dentro do intervalo de endereços de memória que são permitidos serem acedidos pelos programas. O utilizador que pretendesse usar o sistema operativo para ter acesso a funções de entrada/saida devia o fazer usando uma rotina especial chamada instrução de chamada do supervisor. Esta instrução permite atravessar a barreira do sistema operativo para obter certos serviços. Depois de o sistema operativo executar as devidas funções o control é retornado ao programa do utilizador.

Sistemas Operativos Gestão de Memória Pagina 5

Page 6: gestao de Memoria2

INSTITUTO SUPERIOR POLITÉCNICO UNIVERSITÁRIO_____________________________________

Sistema Operativo

Não usada

Partição 1

Partição 2

Partição 3

CPU baixa delimitação

alta delimitação

b

c

a

0 b

c

d

e Fig 1.4 Protecção de memória em alocação de memória contigua em sistemas de multiprogramação. Todos os registos gerados por um programa em execução são verificados para se apurar se se encontram dentro dos limites permitidos b e c. Fragmentação em Sistemas de Multiprogramação de Partição Fixa A fragmentação nestes sistemas ocorre de duas formas:

1. Os trabalhos (programas) não ocupam totalmente as partições aonde correm 2. As partições podem ficar desocupadas em virtude de serem muito pequenas para

correr certos trabalhos à espera. MULTIPROGRAMAÇÃO DE PARTIÇÃO VARIÁVEL Coalescing Holes Em multiprogramação de partição variável quando os trabalhos terminam deixam livres os blocos de memória que ocupavam. Estes blocos podem ser registados e comporem uma lista de blocos livres de memória de modo que os blocos adjacentes podem ser juntados para formar um bloco maior. O processo de anexar blocos adjacentes livres de memória para formar o maior possível bloco de memória é chamado coalescing holes. Compactação de Memória Mesmo com a compactação dos blocos livres de memória, é possivel que uma considerável quantidade de memória livre se encontre espalhada ao longo da mesma através de pequenos blocos separados. Neste caso pode ser que o sistema não tenha bloco de memória contíguo suficiente para correr um programa. A técnica de compactação de memória permite mover todos

Sistemas Operativos Gestão de Memória Pagina 6

Page 7: gestao de Memoria2

INSTITUTO SUPERIOR POLITÉCNICO UNIVERSITÁRIO_____________________________________

os blocos ocupados de memória de modo a estarem num mesmo extremo enquanto noutro extremo fica a parte de memória livre.

Sistema Operativo

Em uso

Livre

Em uso

Em uso

Sistema Operativo Figura.1.5 C SISTEMAS DE Multiprogramaçmemória de cadentão o programcarregado para swapping é usapartilhado que sofisticados perm

Sistemas Operati

Em uso

Em uso

Livre Livre

e

ãaaads

vo

Livr

ompactação de Memória em Multiprogramaçã

TROCA DE MEMÓRIA (SWAPPING).

o pode também ser implementada via swapp vez. O utlizador corre o seu programa até é movido (swapped) para fora da memória p memória para também correr até não maia quando a memória é limitada. Foi usada uportavam poucos utilizadores. Sistemas item diversos programas permanecer na mem

s Gestão de Memória

Em uso

o de Partição Variável

ing com apenas um utlizador na que não possa mais continuar. E rincipal, e o próximo utilizador é s poder continuar. A técnica de nos primeiros sistemas de tempo de swapping de memória mais ória ao mesmo tempo.

Pagina 7