Memorie virtuală, alocare memorie

În acest articol, vom vorbi pe teme precum memoria virtuală. și să ia în considerare metodele de bază pentru alocarea memoriei virtuale în sistemele de operare.







Toate metodele de alocare a memoriei pot fi împărțite în două clase: metode care utilizează mișcarea proceselor între RAM și disc și metode care nu fac acest lucru, adică. fără utilizarea memoriei externe.

Clasificarea metodelor de alocare a memoriei este prezentată în figura următoare:

Alocarea memoriei de către partițiile fixe

Cea mai simplă modalitate de a gestiona memoria RAM este să o împărțiți în mai multe secțiuni cu o valoare fixă. Acest lucru se poate face manual de către operator în timpul pornirii sistemului sau în timpul producerii acestuia. Următoarea sarcină primită pentru execuție este plasată fie în coada generală, fie în coada de așteptare pentru o anumită secțiune:

Subsistemul de gestionare a memoriei îndeplinește următoarele sarcini în acest caz:

Cu un avantaj evident - simplitatea implementării - această metodă are un dezavantaj semnificativ. Întrucât în ​​fiecare secțiune poate fi executat un singur program, nivelul de multiprogramare este limitat preliminar la numărul de partiții, indiferent de mărimea programelor. Chiar dacă programul are o cantitate mică, acesta va ocupa întreaga partiție, ceea ce duce la utilizarea ineficientă a memoriei. Pe de altă parte, chiar dacă suma RAM a mașinii vă permite să executați un anumit program, împărțirea memoriei în partiții nu vă permite să faceți acest lucru.

Alocarea de secțiuni de memorie de cantități variabile

În acest caz, memoria aparatului nu este divizată în prealabil în secțiuni. La început, toată memoria este gratuită. Fiecare nouă sarcină primită este alocată memoriei necesare. Dacă memoria nu este suficientă, sarcina nu este acceptată pentru execuție și se află în coada de așteptare. După terminarea sarcinii, memoria este eliberată și o altă sarcină poate fi descărcată în această locație. Astfel, în orice moment, memoria RAM este o secvență aleatorie de secțiuni (secțiuni) ocupate și libere de mărime arbitrară. Figura de mai jos prezintă starea memoriei la diferite momente în timp atunci când se utilizează alocarea dinamică. Deci, la momentul t0, numai sistemul de operare este în memorie, iar până la momentul t1 memoria este împărțită între 5 sarcini, iar sarcina P4, terminând, iese din memorie. Sarcina P6, sosită la momentul t3, este încărcată pe locul golit după sarcina P4.

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

secțiunea de selecție pentru sarcina nou primite poate fi efectuată în conformitate cu diverse reguli, cum ar fi, de exemplu, „primul profil venita suficient dimensiune“ sau „profil având o dimensiune minimă suficientă“ sau „secțiune având cea mai mare dimensiune suficientă.“ Toate aceste reguli au avantaje și dezavantaje.

Comparat cu metoda de alocare a memoriei pentru partițiile fixe, această metodă are mult mai multă flexibilitate, dar are un dezavantaj foarte grav - fragmentarea memoriei. Fragmentarea este prezența unui număr mare de zone non-contigue de memorie liberă de dimensiuni foarte mici (fragmente). Este atât de mic încât nici unul dintre programele noi nu se poate încadra în nici una din secțiuni, deși volumul total al fragmentelor poate ajunge la o cantitate semnificativă mult mai mare decât cantitatea necesară de memorie.

Partiții mobile

Următoarea imagine ilustrează alocarea memoriei prin mutarea partițiilor:







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.

Distribuirea virtuală a memoriei

Cele mai comune implementări ale memoriei virtuale sunt alocarea de memorie de pagină, segment și de segment, precum și swap. Figura următoare prezintă structura alocării paginii de memorie.

Toată memoria operativă a mașinii este de asemenea împărțită în părți de aceeași dimensiune, numite pagini fizice (sau blocuri).

Când procesul este încărcat, unele dintre paginile sale virtuale sunt plasate în memoria RAM. iar restul - pe disc. Paginile virtuale adiacente nu se găsesc neapărat în paginile fizice adiacente. La pornirea sistemului de operare creează o structură de informații pentru fiecare proces - tabel de pagină în care o corespondență între numărul de pagini virtuale și fizice pentru paginile încărcate în memorie. sau se face o notă că pagina virtuală este încărcată pe disc. Mai mult decât atât, în tabelul de pagini conține informații de control, cum ar fi o indicație a nevygruzhaemosti indicație de modificare a paginii (descărcare unele pagini pot fi interzise), semnul referindu-se la pagina (utilizată pentru a contoriza numărul de apeluri pe perioada de timp), precum și alte date generate și utilizate mecanism memoria virtuală.

În această situație, pot fi utilizate numeroase criterii de selecție diferite, cele mai populare fiind următoarele:

  • Cea mai lungă pagină neutilizată.
  • prima pagină prinsă.
  • , la care recent au existat mai puține hituri.

De exemplu, puteți dezactiva accesul la operațiile de scriere și citire în segmentul de cod al programului și pentru ca segmentul de date să permită citirea numai. În plus, împărțirea programului în părți "semnificative" permite, în principiu, divizarea unui segment prin mai multe procese. De exemplu, dacă două procese utilizează aceeași subrutină matematică, numai o copie a acestei subrutine poate fi încărcată în memoria RAM.

Alocarea de memorie segmentată este prezentată în figura următoare:

Distribuția segmentului de pagină

Un fel de memorie virtuală se schimba. O condiție prealabilă pentru sarcină este să-l încărcați în RAM, a cărui valoare este limitată. În aceste condiții, a fost propusă o metodă de organizare a unui proces de calcul, numită swap. Î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ă spațiul RAM nu este suficient, un alt proces este descărcat.

Când schimbarea, în contrast cu metodele discutate anterior pentru implementarea memoriei virtuale, procesul se mută în întregime între memorie și disc, adică într-un anumit interval de timp, procesul poate fi complet absent în memorie. 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.

Partajați informațiile cu prietenii dvs. în:

În acest articol, vom vorbi pe subiecte precum memoria virtuală și vom analiza metodele de bază pentru alocarea memoriei virtuale în sistemele de operare.

Poate că te interesează:

În acest articol, vom vorbi despre subiecte cum ar fi procesele și firele, descriptorii procesului, vorbi despre sincronizarea firelor și vor afecta ferestrele managerului preferat al fiecăruia.

În acest articol, vom vorbi despre subiecte precum procesele sistemului, și anume: planificarea proceselor de către sistemul de operare, alocarea resurselor procesului, starea procesului în sistemul de operare.

Astăzi citiți

Obțineți 1500 de aur gratuit în lumea rezervoarelor atunci când cumpărați programe antivirus
Wargaming - și Kaspersky Lab au anunțat lansarea unei acțiuni comune. Acum când cumperi software licențiat Kaspersky Internet Security, Kaspersky PURE și Kaspersky ONE.

Versiune gratuită de încercare a Diablo III - disponibilă deja pentru descărcare
Deja timp de trei luni ne bucurăm de mult-așteptatul lansare a Diablo III. Deținătorii fericit de licență au primit, de asemenea, un voucher care oferă posibilitatea de a juca versiunea Starter Edition.

GTA San Andreas - modificat de motorul GTA 4 (descărcare mod)
Ventilatoare - seria legendara de jocuri Grand Theft Auto a decis sa dezvolte un mod global, GTA San Andreas va fi livrat la motorul din GTA 4. Veti gasi un link pentru descarcarea modului la sfarsitul acestui articol.

Cum să descărcați muzică de la un contact la un computer - VKSaver 3.1
În acest articol vom răspunde la întrebarea: cum să descărcați muzică de la contact la calculator gratuit și folosiți pentru aceasta vom fi un program gratuit - VKSaver 3.1








Articole similare

Trimiteți-le prietenilor: