Спец часть (часть 2) (3 поток) (2015) (by Кибитова) (1161602), страница 12
Текст из файла (страница 12)
56.0аяСтраничнаяорганизация памяти.страницаСтруктура адреса:В центральном процессоре имеется аппаратная (регистровая)таблица, называемаяk k-10ая1Встраницатаблицей страниц,предназначеннаядляорганизацииотображениямеждувиртуальнымицентральном процессоре имеетсяаппаратная (регистровая)Номер страницыНомер в страницетаблица, называемаяи физическимиадресамипри страничнойорганизациипамяти. Количествоэтойтаблицейстраниц,предназначеннаядля организацииотображениястрокмеждув виртуальнымитаблице определяетсямаксимальнымчисломвиртуальныхстраниц,котороезависитот в этойи физическимиадресами при страничной организации памяти.
Количество строк…Количествостраницсхем работыпроцессораи максимальнойадреснойКаждойтаблицеопределяетсямаксимальнымчисломразрядностивиртуальныхпроцессора.страниц, котороезависит отограничено размеромвиртуальнойстраницепрограммыставитсявсоответствиестрокатаблицысхемработыисполняемойпроцессора имаксимальнойадреснойразрядностипроцессора.Каждойполя «Номер страницы»страниц с темженомером(нулевойстраницесоответствуетнулеваястрокаит.п.).Внутривиртуальной странице исполняемой программы ставится в соответствие строка таблицыкаждой записитаблицыномер физическойв которойстраницс тем жестраницномеромнаходится(нулевой страницесоответствуетстраницы,нулевая строкаи т.п.).
Внутриразмещаетсясоответствующаявиртуальнаястраницапрограммы.Соответственно,каждой записи таблицы страниц находится номер физической страницы, в которой56. Страничнаяорганизацияпамяти.аппарат виртуальнойстраничнойпамятипозволяетавтоматически(т.е. аппаратно)размещаетсяРис.соответствующаявиртуальнаястраница программы.Соответственно,аппарат номервиртуальнойстраничнойпамяти позволяет(т.е. аппаратно)преобразовыватьвиртуальнойстраницыв номер автоматическифизической страницыВ центральном процессоре имеется аппаратная (регистровая) таблица, называемаяпреобразовыватьномер страницвиртуальнойстраницыв номерфизическойпосредствомобращения к таблице(Рис. 57).Программныхдействийпри такомстраницытаблицей страниц, предназначенная для организации отображения между виртуальнымипосредствомобращенияк выборетаблицеоперационнойстраниц (Рис.системой57). Программныхдействийпри такомподходе требуетсяминимально:приочередногопроцесса,и физическими адресами при страничной организации памяти.
Количествострок в этойподходе натребуетсяминимально:при выбореоперационнойсистемойпроцесса,который ставитсяобработкунамаксимальнымцентральныйпроцессор,она должналишьочередногокорректнотаблице определяетсячисломвиртуальныхстраниц,которое зависит отставитсяна страницобработкуна центральныйпроцессор,она должна лишь корректнозаполнить которыйаппаратнуютаблицупроцессорадляданногопроцесса.схем работы процессора и максимальной адресной разрядности процессора. Каждойзаполнить аппаратную таблицу страниц процессора для данного процесса.виртуальной странице исполняемой программы ставится в соответствие строка таблицыРис. 56. Страничная организация памяти.размеры физической и виртуальной памяти могут быть произвольными.
Может оказаться,что физической памяти в компьютере больше, чем размеры адресного пространстваРис. 56. Страничная организация памяти.виртуальнойпамяти, а может оказаться и наоборот: физической памяти существенноменьшеВвиртуальной.во всех этихслучаях система окажется работоспособной.центральном Нопроцессоревирт. имеется аппаратная (регистровая) таблица, называемаяAисп.k k-1 отображения между0таблицей страниц, предназначенная для организациивиртуальнымии физическими адресами Номерпри страничнойорганизацииНомерпамяти.Количество строк в этойвиртуальной страницыв страницетаблицеопределяетсямаксимальным числом виртуальных страниц, которое зависит от0α0схем 1 работы α процессора и максимальной адресной разрядности процессора.
Каждой1виртуальной странице исполняемой программы ставится в соответствиестрокатаблицыi-ой виртуальнойстранице2 с темα2же номером (нулевой страницесоответствуетфизическаясдаαi 0соответствуетстраницнулеваястрокаи т.п.). Внутриномеромαкаждой записи таблицы страниц находится номер физической страницы,i в которойнет страница программы. Соответственно,размещается соответствующая виртуальнаяне автоматически (т.е. аппаратно)аппарат виртуальной страничнойПолученнаяпамяти страницапозволяетПолучаем адрес физическойразмещенав ОЗУпреобразовыватьномервиртуальнойстраницыв номерфизической страницыiαiстраницы Aисп.физ..посредством обращения к таблице страниц (Рис.
57). Программныхпри такомПродолжениедействийработы программыПрерывание по защитеподходе требуется минимально: припамяти.выбореПричина?операционной системой очередного процесса,который ставится на обработку на центральный процессор, она должна лишь корректнозаполнить аппаратную таблицу страниц процессора для данного процесса.m–1αm–1Обращение в«чужую» память Страница откачана в целяхоптимизации использования ОЗУПодкачка нужной страницы,вычисление физического адреса,продолжение работы программыSTOP67Рис.примерорганизациистраничнойвиртуальнойпамяти.
СхемаРис.58.57.МодельныйСтраничнаяорганизацияпамяти.Преобразованиевиртуальногоадреса впреобразования адресов.физический. Но данный подход имеет и свои недостатки. Во-первых, это страничнаяТиповая схема преобразования адресов достаточно проста (Рис. 58). Пусть вфрагментация, или внутренняя (скрытая) фрагментация: если в странице используетсятаблице страниц имеется N строк. Это означает, что в компьютере дозволенохотя бы один байт, то вся страница отводится процессу и считается занятой (т.е., решивиспользовать N страниц.
Содержимое каждой i-ой строки таблицы — αi – определяетсявопрос с т.н. внешней фрагментацией, мы в данном случае не используемпамять,операционнойсистемойв моментзапускапроцесса. описаннаяПусть в нашемпримереразмеромсо страницуминусодин байт).Во-вторых,выше модельноммодель являетсяеслиα>=0,тоэтономерфизическойстраницы,котораясоответствуетi-ойвиртуальнойiвырожденной: если таблица страниц целиком располагается на регистровой памяти, то встранице.Если αiпоследней< 0, то этоозначает,что даннойстраницыпрограммыи еслисилудороговизныразмерыподобнойтаблицыдолжныубытьслишкомнет,малы(а входеобработкипроцессапроцессоробращаетсякстрокетаблицыстраницследовательно, будет невелико количество физических страниц).
Реальные современные сотрицательнымсодержимым,поизащитеи управлениесистемыимеют болеесложнуюпроисходитлогическую прерываниеорганизацию,речь о памяти,ней пойдетниже.получаетОС.Причинвозникновенияпрерываниявданномслучаеможетдве.Во-первых,Кроме того, при смене процессов таблицу страниц сначала обязательно надо сохранить, аможетобновитьоказаться,что действительноi-ой виртуальнойстраницы у программы нет, чтопотом– дополнительныенакладныерасходы.свидетельствуетоб ошибкев программе.Во-вторых,оказаться,Напоследок заметим,что данноенами определениеаппаратаможетвиртуальнойпамяти чтосоответствующейстраницы нетнекоторыхв оперативной– она расположенана внешнемрасходитсяс определениямидругихпамятиисточников.Повторим, чтомызапоминающеммеханизмустройстве(ВЗУ), т.е.даннаявиртуальнаястраницалегальна, но врассматриваемвиртуальнойпамятикак i-аямеханизмпреобразованиявиртуальногоадресногопространствафизическое.многихизданиях, посвященныхрассмотрениюданный моментее нет вв ОЗУ.Так илиВоиначе,операционнаясистема анализируетпричинуоперационныхсистем,виртуальнойпамятьюсчитаетсято,чтопозволяетчастьпрограммывозникновения прерывания и для последнего случая осуществляет подкачку из ВЗУ в ОЗУразмещатьвнешнихТакимустройствах,считают механизмвиртуальнойпамятикактребуемой настраницы.образом,т.е.замечательнымсвойствомстраничнойорганизациисредствоувеличенияобъемафизическойпамяти.Мы считаемтакое всюопределениепамяти являетсято, чтопри такойорганизациине обязательнозагружатьпрограмму внекорректным.Если Прирассматривать,например,виртуальнуюкак механизмоперативную память.смене задачисистема должнасначалапамятьскопироватьсодержимоеувеличенияобъемавпамяти,то возникает вопрос:объема физическойтаблицы страницсвою программнуютаблицу,в аслучаепослебольшогоэтого восстановитьсодержимоепамятиразвевиртуальнаяпамятьотсутствует?Соответственно,возникаютпроблемыстаблицы страниц той программы, которая будет исполняться следующей.подобнымопределением.Отметим, что страничная организация памяти решает все вышеперечисленныепроблемы, связанные с выполнением программ.
Здесь имеется механизм защиты памяти (в этой схеме процесс никогда не сможет 69обратиться к «чужой» странице), но такжеимеется возможность разделять некоторые страницы между несколькими процессами (вэтом случае операционная система каждому из процессов допишет в таблицу страницномер общей страницы). Данная схема обладает достаточной производительностью,поскольку ее функционирование основано на использовании регистров. Основнымдостоинством данного подхода является решение проблемы фрагментации, поскольку всепрограммы оперируют в терминах страниц (каждая из которых имеет фиксированныйразмер), и мы можем размещать программу по страницам в произвольном порядке.Помимо этого решается еще и проблема перемещаемости программ по ОЗУ, причем дажесоответствииналичиемресурса), следуетоперациявыделения.Этоозначает,чтос дляпредоставляемогоресурсаидет непосредственногокорректировка системныхданныхозначает,чтодляпредоставляемогоресурсаидеткорректировкасистемныхданных(например, изменение статуса занятости), а затем выдача его потребителю.(например,изменениестатуса занятости),а затем выдачаего потребителю.И, наконец,четвертойзадачей являетсявыбор стратегииосвобождения памяти.И,наконец,четвертойзадачейявляетсявыборстратегиипамяти.Освобождение памяти можно рассматривать с двух точек зрения.освобожденияС одной стороны,этоОсвобождениепамятиможнорассматриватьсдвухточекзрения.Соднойстороны,этоиокончательноеосвобождениепамяти,происходящеевслучаезавершенияпроцессаИ еще одно важное замечание.