Banca de prelegeri - formale, tehnice, naturale, sociale, umanitare și alte științe

8.5.2. Managementul memoriei

Programele împreună cu datele la care au acces trebuie să fie în RAM în timpul executării. Sistemul de operare trebuie să rezolve problema alocării memoriei între procesele utilizatorului și componentele sistemului de operare. Această activitate se numește gestionare a memoriei.







După cum știm deja, dispozitivele de stocare a computerului sunt împărțite cel puțin în două niveluri: memoria principală (operativă) și secundară (externă).

Această schemă poate fi suplimentată cu câteva nivele intermediare, după cum se arată în figura 5.1. Tipurile de memorie pot fi combinate într-o ierarhie prin scăderea timpului de acces, creșterea prețului și creșterea capacității.

Schema pe mai multe niveluri este utilizată după cum urmează. Informațiile care se află în memoria de nivel superior sunt de obicei stocate și la niveluri cu numere mari. Dacă procesorul nu detectează informațiile necesare la nivelul i, acesta începe să îl caute la următoarele nivele. Când se găsesc informațiile necesare, acesta este transferat la o memorie de nivel superior.

Se pare că, prin această metodă de organizare, pe măsură ce viteza de acces la nivelul memoriei scade, frecvența apelurilor către aceasta scade.

Banca de prelegeri - formale, tehnice, naturale, sociale, umanitare și alte științe

Metode de alocare a memoriei. Toate metodele de gestionare a memoriei pot fi împărțite în două clase: metode care nu utilizează mișcarea proceselor între RAM și disc și metodele care o fac (Figura 8.3).

Banca de prelegeri - formale, tehnice, naturale, sociale, umanitare și alte științe

Figura 8.3 - Clasificarea metodelor de alocare a memoriei


Fiecare partiție poate avea o coadă de proces propriu sau poate exista o coadă globală pentru toate partițiile (Figura 8.4).

Această schemă a fost implementată în IBM OS / 360 (MFT), DEC RSX-11 și o serie de alte sisteme.

Dezavantajul evident al acestei scheme este că numărul de procese simultane este limitat de numărul de partiții.

Alocarea secțiunilor de memorie ale unei variabile. În acest caz, memoria aparatului nu este împărțită în secțiuni în prealabil, fiecărui nou program îi este alocată memoria necesară. Dacă memoria nu este suficientă, programul nu este acceptat pentru executare și este în coada de așteptare. După terminarea programului, memoria este eliberată și un alt program poate fi descărcat în această locație. Astfel, în orice moment, memoria de acces aleator este o secvență aleatorie aleatorie a secțiunilor ocupate și libere (secțiuni) de mărime arbitrară (Figura 8.5).







Figura 8.4 - Alocarea memoriei de către partițiile fixe

a) - cu o coadă comună; b) - cu cozi separate

Banca de prelegeri - formale, tehnice, naturale, sociale, umanitare și alte științe

Figura 8.5 - Dinamica alocării memoriei între procese

Sarcinile sistemului de operare la implementarea acestei metode de gestionare a memoriei sunt:

· Încărcarea programului în secțiunea alocată și actualizarea tabelelor pentru zonele libere și ocupate;

· După terminarea programului, actualizarea tabelelor din zonele libere și ocupate.

Deși procedura de comprimare are ca rezultat o utilizare mai eficientă a memoriei, poate dura o perioadă considerabilă de timp, ceea ce adesea depășește avantajele acestei metode.

Metode de alocare a memoriei utilizând spațiul de pe disc. Circuitele descrise mai sus nu utilizează eficient memoria, prin urmare în schemele moderne de gestionare a memoriei nu este obișnuit să se plaseze procesul în memoria RAM cu un bloc continuu. În general, trebuie remarcat faptul că problema alocării programelor care sunt mai mari decât memoria liberă disponibilă a existat întotdeauna. Odată cu apariția memoriei externe în stadiile inițiale, soluția era de a împărți programul în părți numite suprapuneri. Acoperirea zero a început să fie efectuată mai întâi. Când a terminat, a sunat la o altă suprapunere. Toate suprapunerile au fost stocate pe disc și mutate între memorie și disc prin facilitățile OS. Cu toate acestea, programatorul a fost să împartă programul în părți și să-și planifice încărcarea în memoria principală.

Când lucrați cu memorie virtuală, sistemul de operare rezolvă următoarele sarcini:

· Date despre locații în dispozitive de memorie de diferite tipuri, de exemplu, o parte a programului în RAM, și unele pe disc;

· Mută ​​ca date necesare între dispozitive de stocare de diferite tipuri, de exemplu, încarcă partea necesară a programului din disc în memoria principală;

Cea mai comună implementare a memoriei virtuale este pagina. segmente și alocări de memorie segment de pagină, precum și swap.

ВС - pagina virtuală; FS - pagină fizică;
VI - memorie externă

Figura 8.6 - Alocarea memoriei paginilor

Banca de prelegeri - formale, tehnice, naturale, sociale, umanitare și alte științe

Figura 8.8 - Alocarea memoriei pe segmente

Distribuția segmentului pe pagină. Pentru a stoca în segmente de memorie de o mărime mare în întregime în mod inconvenient ca stocarea unui proces cu un bloc continuu. Se impune ideea segmentării segmentelor în pagini. În acest caz, spațiul virtual al procesului este împărțit în segmente, iar fiecare segment este divizat în pagini virtuale numerotate în segment (Figura 8.9).

Figura 8.9 - Alocarea memoriei pe segmentul de pagină

Swapping. Un fel de memorie virtuală se schimba. În conformitate cu această metodă, unele procese (de obicei în stare de așteptare) sunt descărcate temporar pe disc. Planificatorul de sistem de operare nu le exclude din considerație și atunci când sunt îndeplinite condițiile pentru activarea unui proces situat în zona de swap de pe disc, acest proces este mutat în memoria RAM. Dacă nu există suficient spațiu liber în memoria RAM, un alt proces este descărcat.

În timpul schimbării, spre deosebire de metodele de implementare a memoriei virtuale considerate anterior, procesul se mută între memorie și întregul disc, adică de ceva timp procesul poate fi complet absent în memoria RAM. Există diferiți algoritmi pentru selectarea proceselor de încărcare și descărcare, precum și diferite modalități de alocare a memoriei operaționale și a discului la procesul descărcat.


***** Yandex.Caută pe site-ul:







Trimiteți-le prietenilor: