Gestió de Memòria: Tècniques, Requisits i Organització
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en catalán con un tamaño de 5,59 KB
Gestió de Memòria: Conceptes Bàsics
La gestió de memòria és la tasca desenvolupada pel SO i el hardware per acomodar diferents processos en la memòria principal. Si hi ha pocs processos dins la memòria principal, gran part del temps estaran en espera d'operacions d'E/S i, per tant, el processador quedarà lliure. Cal, per tant, repartir la memòria de forma eficient per tal de ficar-hi tants de processos com sigui possible. És un problema que apareix en els sistemes multiprogramats. El nucli del SO ocupa una part fixa de la memòria principal i la resta es comparteix entre els altres processos.
Requeriments de la Gestió de Memòria
La gestió de memòria ha de satisfer diferents requeriments:
- Reubicació: el procés pot canviar de posició dins la memòria.
- Protecció: un procés no ha de poder accedir a la memòria dels altres sense permís.
- Compartició: a vegades s'ha de compartir la memòria entre diferents processos.
- Organització lògica: els programes estan formats per mòduls de diferents característiques.
- Organització física: gestionar la transferència entre memòria principal i secundària.
Reubicació en detall
El programador no coneix amb antelació els processos presents en memòria en el moment d'execució. Alguns SO, per mantenir el processador ocupat, eliminen els processos bloquejats de la memòria principal i els transfereixen a memòria secundària (swapping). Degut al swapping, els processos poden ser carregats en posicions diferents de memòria. Les referències dins el codi dels programes (a dades, bots, pila, ...) s'han de traduir a adreces reals d'acord amb la ubicació actual del procés.
Protecció en detall
Els processos han de protegir-se d'interferències, accidentals o intencionades, d'altres processos. Un procés no pot referir-se a posicions de memòria d'altres processos, tant per lectura com per escriptura, sense autorització. És una tasca que s'ha de realitzar en temps d'execució (recordar reubicació). En general, la protecció de la memòria és una tasca del hardware més que del SO.
Compartició en detall
Els mecanismes de protecció anteriors han de ser prou flexibles com per permetre l'accés de diferents processos a la mateixa zona de memòria principal. Diferents processos poden compartir el mateix codi, en lloc de mantenir vàries còpies del programa en memòria. Processos cooperants poden requerir compartir les mateixes estructures de dades.
Organització Lògica i Física de la Memòria
Organització lògica:
- La memòria sol estar organitzada com un espai d'adreces lineal que consta d'una seqüència de paraules.
- Els programes d'usuari distingeixen mòduls de diferents característiques: sols d'execució /lectura/escriptura o lectura /privats o públics.
- Convè que el sistema operatiu i el hardware suportin aquests mòduls permetent: escriptura i compilació independent/ diferents tipus de protecció a cada tipus de mòdul /compartició de mòduls.
Organització física:
La memòria s'organitza en una jerarquia, al manco, de dos nivells:
- Memòria principal: ràpida, cara i volàtil --> Poca capacitat.
- Memòria secundària: lenta, barata i no volàtil --> Molta capacitat.
La memòria secundària actua de magatzem a llarg termini i la memòria principal guarda els programes i dades actualment en ús. L'intercanvi d'informació entre memòria principal i secundària serà la tasca bàsica del sistema de gestió de memòria del SO.
Tècniques de Gestió de Memòria
Partició Fixa
La memòria principal es divideix en un conjunt de regions no encavalcades anomenades particions. Les particions poden ser de la mateixa capacitat, o de diferents capacitats.
Qualsevol procés de grandària menor o igual a la partició pot ser carregat en ella. Si totes les particions estan ocupades, el SO pot desallotjar un procés d'una partició i transferir-lo a memòria secundària. Si el programa és massa gran per caber dins una partició, el programador ha de dissenyar el programa usant superposicions (overlays). Diferents mòduls de programa comparteixen el mateix espai de memòria en diferents instants de l'execució. El mòdul entrant es superposa sobre el resident. Independentment de la seva longitud el programa ocupa una partició completa. És la fragmentació interna. Les particions desiguals solucionen aquest problema, però n'apareixen de nous.
Algorismes d'ubicació amb particions iguals
Particions d'igual longitud: Si hi ha cap partició disponible, el procés es pot carregar en aquesta partició. Com que totes són iguals, no importa quina s'usi. Si totes les particions es troben ocupades per processos bloquejats, es selecciona un procés per ser transferit a memòria secundària i deixar lloc per un nou procés.
Algorismes d'ubicació amb particions diferents
- Cues múltiples: Assignar a cada procés la partició menor on pot caber. Utilitzar una cua de planificació per a cada tipus de partició. Intenta minimitzar la fragmentació interna. Problema: algunes de les cues estaran buides si no hi ha processos del seu rang actius.
- Cua única: Assignar el procés entrant a la partició disponible menor on pot caber-hi. Augmenta la multiprogramació, però també la fragmentació interna.