Идеализирана абстракция на ресурсите за съхранение, които действително са достъпни на даден компютър


Фиг. 2. Моментно разпределение на физическата оперативна памет



Pdf просмотр
страница2/3
Дата11.12.2023
Размер47.73 Kb.
#119584
1   2   3
Виртуална памет
Свързани:
Раздел II - Тест 1, MS DOS, Състояние на процесите, Файлова система, 4.7 Файлова система на ОС, 3.1 Управление на ОП - Типове адреси..., WINDOWS 10
Фиг. 2. Моментно разпределение на физическата оперативна памет

II. Управление на оперативната и виртуалната памети
Всяка операционна система има собствена стратегия за управление на оперативната памет. Тази стратегия се изпълнява от модула за управление на паметта (memory management). Най-често паметта се разделя на блокове (страници) всеки от които има собствен манипулатор (идентификатор). Всеки блок има статус – свободен или зает. Само операционната система (или процес с root права) може да чете и записва в блоковете от паметта. Най-малката единица информация, която може да бъде преместена към / от виртуалната памет е една страница с данни. С течение на времето остават множество непоследователни свободни блокове в паметта, които не се използват от нито един процес. Управлението на блоковете, както и преместването им с цел обединяване на малките свободни блокове с цел получаване на по-голям свободен блок е възможно само от ядрото на операционната система. Този процес се нарича фрагментиране на оперативната памет. Всяка операционна система има собствена стратегия чрез която намалява фрагментацията. Тази стратегия не може да се активира много често, тъй като по време на дефрагментиране се блокира изпълнението на процесите.
По аналогичен начин се получава и фрагментиране на блоковете с които се работи във виртуалната памет. Операционните системи рядко се ангажират с дефрагментиране на paging файловете, тъй като това е много бавна операция. По-често се заделя по-голям размер за paging файла, за да се не се налага да се дефрагментира съдържанието му.
III. Адресиране на виртуалната памет
Като всяка памет, така и виртуалната памет трябва да може да се адресира. Съвременните процесори не адресират директно оперативната памет, тъй като нямат регистри с необходимия за това размер. Те използват техники за индиректно адресиране на оперативната памет. Най-често използваните подобни техники са сегментиране и странициране. Повечето от операционните системи за персонални компютри управляват паметта чрез странициране. В този случай паметта се разделя на страници с размер 4KB или 2MB. За всяка страница могат да бъдат задавани отделни права за достъп. Всяка


4 страница може да се намира във физическата памет или във виртуалната памет. На фиг. 3 е показан начина на адресиране на 4KB страница при процесор на Intel.
Фиг. 3. Адресиране на физическата оперативна памет при 4 KiB страници
Линейният (виртуален) адрес, който микропроцесорът генерира, се разделя на 4 части.
Старшите 2 бита са отместване в структура наречена Page Directory Pointer Table (PDPT).
Началото на тази структура се сочи от текущото съдържание на Управляващ Регистър 3
(CR3). Всеки елемент от PDPT е указател към началото на друга структура наречена Page
Directory (PD). Всеки елемент от PD е указател към структура с име PageTable (PT). Всеки елемент от PT (PTE) е дескриптор на една страница в паметта. Отместването в страницата се задава чрез младшите 12 адреса на линейния адрес.
След като се адресира страница от паметта трябва да се провери дали тя се намира във физическата оперативна памет или във виртуалната памет. За целта, в дескриптора на всяка страница има бит с име Present (P). Ако този бит е 1, то страницата е във физическа памет. За да се ускори конвертирането на линейните до физически адреси се използва асоциативна кеш памет в която се буферират последно конвертираните адреси. Тази памет се нарича Translation Lookaside Buffer (TLB). На Фиг. 4 е показано как се използва TLB при процесорите на Intel. Когато виртуален (линеен) адрес трябва да бъде преобразуван до физически адрес, първо се проверява дали в TLB има запис за този линеен адрес. Ако се намери съвпадение (TLB hit), от TLB се извлича физическия адрес и достъпът до паметта може да продължи с кеширане на паметта. Ако обаче няма съвпадение (TLB miss), се активира търсене на физическия адрес в таблицата на страниците (Page Table) при 4KB страници или в PD при 2MB страници.


5
Фиг. 4. Преобразуване на виртуален до физически адрес при работа с виртуална памет
Ако дадена страница се адресира, но не е налице (page not present), ще възникне събитие от тип Page Fault и операционната система трябва да го обработи. В този случай се налага страницата да бъде намерена във виртуалната памет и заредена обратно във физическата памет (виж Фиг. 5).
Фиг. 5. Събития, генерирани при работа с виртуалната памет


6
Ако физическият адрес вече е буфериран в TLB се реализира проверка дали текущият процес има права за достъп до паметта (Protection Check), която той сочи. При липса на права се генерира събитие Protection Fault, което операционната система трябва да обработи. Следователно, операционната система се ангажира само с обработката на грешки при достъп до паметта, а всичко останало се поема от микропроцесора.


Сподели с приятели:
1   2   3




©obuch.info 2024
отнасят до администрацията

    Начална страница