Documente Academic
Documente Profesional
Documente Cultură
Alocarea continuă
Coada de intrare (Input queue) – colecţie de procese aflate pe
Paginarea disc care aşteaptă să fie aduse în memorie pentru a rula
Segmentarea programul.
Segmentare cu paginare
Programele utilizator trec prin mai mulţi paşi înainte de a fi rulate.
Operating System Concepts with Java 9.1 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 9.2 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 9.3 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 9.4 Silberschatz, Galvin and Gagne ©2003
Adresele logice şi cele fizice sunt aceleaşi în schemele de legare Programul utilizator foloseşte adrese logice; acesta nu va vedea
a adreselor la compilare şi la încărcare; adresele logice (virtuale) niciodată adresa fizică reală.
şi fizice diferă în schema de legare la execuţie.
Operating System Concepts with Java 9.5 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 9.6 Silberschatz, Galvin and Gagne ©2003
1
Relocarea dinamică folosind un registru de
relocare Încărcarea dinamică
Rutina nu este încărcată până când este apelată
O mai bună utilizare a spaţiului de memorie; rutinele nefolosite
nu sunt încărcate niciodată.
Folositoare când cantităţi mari de cod sunt necesare pentru a
trata cazuri cu apariţii rare.
Nu necesită suport special din partea sistemului de operare, fiind
implementat prin designul programului.
Operating System Concepts with Java 9.7 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 9.8 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 9.9 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 9.10 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 9.11 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 9.12 Silberschatz, Galvin and Gagne ©2003
2
Vedere schematică a Swapping-ului Alocarea contiguă
Memoria principală este împărţită de obicei în două partiţii:
Sistemul de operare rezident, de obicei aflat în partea de jos
împreună cu vectorul de întrerupere.
Procesele utilizator aflate în memoria înaltă.
Operating System Concepts with Java 9.13 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 9.14 Silberschatz, Galvin and Gagne ©2003
OS OS OS OS
process 8 process 10
Operating System Concepts with Java 9.15 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 9.16 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 9.17 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 9.18 Silberschatz, Galvin and Gagne ©2003
3
Paginarea Schema de translatare a adreselor
Spaţiul de adrese logice ale unui proces poate fi necontinuu; Adresa generată de CPU este împărţită în:
procesului îi este alocată memorie fizică când acesta din urmă Număr de pagină (p) – folosit ca şi index într-o tabelă de pagini care
devine disponibilă. conţine adresa de bază a fiecărei pagini din memoria fizică.
Divide memoria fizică în blocuri de dimensiune fixă numite cadre
(dimensiunea este putere a lui 2, între 512 şi 8192 octeţi). Offset de pagină (d) – combinat cu adresa de bază pentru a defini
adresa fizică de memorie care este trimisă unităţii de memorie.
Divide memoria logică în blocuri de aceeaşi dimensiune numite
pagini.
Gestionează toate cadrele libere.
Pentru a rula un program de dimensiune n pagini, trebuie să
găsim n cadre libere şi să încărcăm programul.
Se pregăteşte o tabelă de pagini pentru translatarea adreselor
logice la cele fizice.
Fragmentare internă.
Operating System Concepts with Java 9.19 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 9.20 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 9.21 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 9.22 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 9.23 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 9.24 Silberschatz, Galvin and Gagne ©2003
4
Implementarea tabelei de paginare Memoria asociativă
Tabela de pagini este ţinută în memoria principală. Memoria asociativă – căutare paralelă
Registrul bază tabela pagini (Page-table base register (PTBR)) Page # Frame #
indică la tabela de pagini.
Registrul lungime tabela pagini (Page-table length register
(PRLR)) indică dimensiunea tabelei de pagini.
În această schemă fiecare acces la date/instrucţiune necesită
două accese la memorie. Una pentru tabela de pagini şi una
pentru date/instrucţiune. Translatarea adresei (A´, A´´)
Problema dublei accesări a memoriei poate fi rezolvată prin Dacă A´ este într-un registru asociativ, prezintă cadrul #.
folosirea unei componente cache hardware speciale pentru Altfel adu cadrul # din tabela de pagini în memorie
regăsire rapidă numite associative memory sau translation look-
aside buffers (TLBs)
Operating System Concepts with Java 9.25 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 9.26 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 9.27 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 9.28 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 9.29 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 9.30 Silberschatz, Galvin and Gagne ©2003
5
Structura tabelei de paginare Tabele de paginare ierarhice
Paginare ierarhică Împarte spaţiul de adrese logice în multiple tabele de paginare.
Tabele de paginare hash O tehnică simplă este o tabelă de paginare pe două nivele.
Operating System Concepts with Java 9.31 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 9.32 Silberschatz, Galvin and Gagne ©2003
10 10 12
Operating System Concepts with Java 9.33 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 9.34 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 9.35 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 9.36 Silberschatz, Galvin and Gagne ©2003
6
Tabela de paginare hash Tabela de paginare inversată
O intrare pentru fiecare pagină reală de memorie.
Intrarea constă din adresa virtuală a paginii stocate la acea
locaţie reală de memorie, cu informaţie despre procesul care
deţine acea pagină.
Scade memoria necesară pentru stocarea fiecărei tabele de
pagini, dar creşte timpul necesar pentru căutarea tabelei când
apare o referire la o pagină.
Folosirea unei tabele hash poate reduce căutarea la una sau cel
mult câteva intrări de tabelă.
Operating System Concepts with Java 9.37 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 9.38 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 9.39 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 9.40 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 9.41 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 9.42 Silberschatz, Galvin and Gagne ©2003
7
Vederea utilizator despre un proram Vederea logică a segmentării
4
1
3 2
4
Operating System Concepts with Java 9.43 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 9.44 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 9.45 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 9.46 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 9.47 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 9.48 Silberschatz, Galvin and Gagne ©2003
8
Exemplu de segmentare Partajarea segmentelor
Operating System Concepts with Java 9.49 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 9.50 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 9.51 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 9.52 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 9.53 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 9.54 Silberschatz, Galvin and Gagne ©2003