Recomandat, 2024

Alegerea Editorului

Diferența între paginarea și segmentarea în sistemul de operare

Gestionarea memoriei din sistemul de operare este o funcționalitate esențială, care permite alocarea memoriei proceselor de execuție și dealochează memoria atunci când procesul nu mai este necesar. În acest articol, vom discuta două sisteme de gestionare a memoriei și segmentare. Diferența de bază între paginare și segmentare este că "pagina" este un bloc cu dimensiune fixă, în timp ce un "segment" este un bloc cu dimensiuni variabile.

Vom discuta câteva diferențe între Paging și segmentare cu ajutorul diagramei de comparație de mai jos.

Diagramă de comparație

Bazele comparațieipaginareSegmentarea
De bazăO pagină are o dimensiune bloc fixă.Un segment este de mărime variabilă.
fragmentareaPagingul poate duce la fragmentarea internă.Segmentarea poate duce la fragmentarea externă.
AdresaAdresa specificată de utilizator este împărțită de un procesor într-un număr de pagină și un offset.Utilizatorul specifică fiecare adresă cu două cantități un număr de segment și offset (Segment limit).
mărimeaHardware-ul decide dimensiunea paginii.Dimensiunea segmentului este specificată de utilizator.
MasaCăutarea pe pagini implică un tabel de pagini care conține adresa de bază a fiecărei pagini.Segmentarea implică tabelul de segmente care conține numărul de segment și offset (lungimea segmentului).

Definiția Paging

Paging este o schemă de gestionare a memoriei . Paging permite ca un proces să fie stocat într-o memorie într-o manieră non-contiguă . Procesul de stocare într-o manieră necontinuă rezolvă problema fragmentării externe .

Pentru a implementa paginarea, spațiile de memorie fizică și logică sunt împărțite în aceleași blocuri cu dimensiune fixă. Aceste blocuri de dimensiuni fixe de memorie fizică sunt numite cadre, iar blocurile de dimensiuni fixe de memorie logică sunt numite pagini .

Când un proces trebuie executat, paginile de proces din spațiul de memorie logică sunt încărcate în cadrele spațiului de adrese al memoriei fizice. Acum adresa generată de CPU pentru accesarea cadrului este împărțită în două părți, respectiv numărul paginii și offsetul paginii .

Tabela de pagini utilizează numărul paginii ca index; fiecare proces are propriul tabel de pagini care hărtește adresa logică la adresa fizică. Tabela de pagini conține adresa de bază a paginii stocate în cadrul spațiului de memorie fizică. Adresa de bază definită de tabela de pagini este combinată cu compensarea paginii pentru a defini numărul de cadru din memoria fizică în care este stocată pagina.

Definiția Segmentation

Ca și Paging, segmentarea este, de asemenea, o schemă de gestionare a memoriei . Acesta acceptă viziunea utilizatorului asupra memoriei. Procesul este împărțit în segmentele de mărime variabilă și încărcat în spațiul de adrese al memoriei logice.

Spațiul logic al adreselor este colecția de segmente de dimensiuni variabile. Fiecare segment are numele și lungimea . Pentru execuție, segmentele din spațiul de memorie logică sunt încărcate în spațiul de memorie fizică.

Adresa specificată de utilizator conține două cantități, numele segmentului și Offset . Segmentele sunt numerotate și menționate de numărul segmentului în locul denumirii segmentului. Acest număr de segment este folosit ca un indice în tabelul de segmente, iar valoarea offset decide lungimea sau limita segmentului. Numărul segmentului și offsetul combinat generează adresa segmentului în spațiul de memorie fizică.

Diferențe cheie între paginare și segmentare

  1. Diferența de bază între paginare și segmentare este că o pagină are întotdeauna o dimensiune fixă ​​a blocului, în timp ce un segment este de mărime variabilă .
  2. Pagingul poate duce la fragmentarea internă deoarece pagina este de dimensiune fixă ​​a blocului, dar se poate întâmpla ca procesul să nu obțină întreaga dimensiune a blocului care va genera fragmentul intern din memorie. Segmentarea poate duce la fragmentarea externă, deoarece memoria este umplută cu blocurile cu dimensiuni variabile.
  3. În paginare, utilizatorul oferă doar un întreg întreg ca adresă care este divizată de hardware într-un număr de pagină și Offset . Pe de altă parte, în segmentare utilizatorul specifică adresa în două cantități, adică numărul segmentului și offsetul .
  4. Mărimea paginii este decisă sau specificată de hardware . Pe celelalte mâini, dimensiunea segmentului este specificată de utilizator .
  5. În paginare, tabela de pagini hartă adresa logică la adresa fizică și conține adresa de bază a fiecărei pagini stocate în cadrele spațiului de memorie fizică. Cu toate acestea, în segmentare, tabelul segmentului hartă adresa logică la adresa fizică și conține numărul de segment și offset (limita segmentului).

Concluzie:

Pagingul și segmentarea ambelor sunt schemele de gestionare a memoriei . Paging permite ca memoria să fie împărțită în bloc de dimensiuni fixe, în timp ce segmentarea împarte spațiul de memorie în segmente ale mărimii blocului variabil . Atunci când pagingul duce la fragmentarea internă, segmentarea duce la fragmentarea externă .

Top