Спец часть (часть 2) (3 поток) (2015) (by Кибитова) (1161602), страница 11
Текст из файла (страница 11)
+<Rбазыпрограммнойи процессорахфизическойпамятью.И эта оконпроблемарешаетсязасчет«внемашины».Соответственно,стоит проблемаустановлениясоответствиямеждуиспользованиив адресациейсовременныхт.н.регистровых(registerwindows).Этоаппаратавиртуальнойпамяти.программнойадресациейи физическойпамятью.восстановленияИ эта проблемарешаетсяза этогосчетрешениенацеленона решениепроблем сохранения/регистров.СутьРеализациейоднойизмоделейаппаратавиртуальнойпамятиявляетсяаппаратаппаратавиртуальнойпамяти.решения заключается в следующем (Рис.
49). В процессоре имеется некоторое количествоадресов.Механизмбазированияадресовоснован памятина двоякойинтерпретацииРеализациейоднойиз моделейаппаратавиртуальнойаппаратвK базированияфизическихрегистровобщегоназначения,предназначенныхдля являетсяиспользованияпрог.(Рис.55)получаемыхвходевыполненияпрограммыисполнительныхадресов(A).базированияадресов.Механизмбазированияадресовоснованнадвоякойинтерпретацииисп.пользовательских программах.
Эти регистры пронумерованы от 0 до K–1. В каждыйпрог.С однойстороны, егов можноинтерпретироватькак абсолютныйисполнительныйадрес,(Рис.55)получаемыхходевыполненияпрограммыисполнительныхадресов(A).исп.момент времени программе доступно т.н. регистровое окно, состоящее из L регистровкогдафизическийадресвинтерпретироватьнекотором смыслесоответствуетисполнительному адрес,адресуСоднойстороны,егоможнокакабсолютныйисполнительный(L<K). Соответственно,физических регистров разделяются на регистровые окнафиз.
все Kпрог.программы(Aисп.адрес= Aвисп.некотором). Например,требуется«прочитатьячейку с адресомкогдафизическийсмыслесоответствуетадресунекоторымспособом.Одинпрог.изадресовспособовпредполагает,что исполнительномус нулевогофизическогоРис.55.физ.Базирование– решениепроблемыперемещаемостипрограммыпо(абсолютнымадресом)0»,или«передатьуправлениепоадресувходавобработчикпрограммы(A=A).Например,требуется«прочитатьячейкусадресомисп.исп.ОЗУ.регистра начинается нулевое физическое окно, причем в этом нулевом физическом окнепрерывания».адресом)С другойилистороны,исполнительныйадрес входапрограммыможно(абсолютнымуправлениеадресуобработчикпрограммепользователя 0»,доступны«передатьфизическиерегистры спономерамиот 0 дов L–1.Первоепроинтерпретироватькак относительныйт.е.
адресадрес,зависящийот местапрерывания».Спредставляетдругойстороны,исполнительныйпрограммыТакимобразом,базированиеадресов– адрес,средствоотображенияфизическоеокнособою очередныеLэторегистров,которыевнутривиртуальногоокнаможнотакжедислокациипрограммывОЗУ(адресотносительноточкизагрузкипрограммы).Инымипроинтерпретироватькакотносительныйадрес,т.е.адрес,зависящийотместасадресногопространствапрограммывфизическуюпамять«одинводин».Аппаратимеют нумерацию от 0 до L–1, но в реальности им соответствуют физические регистрысловами, имеетсяоперативнаяпамятьотносительнос ячейкамиперемещаемостис точкиномерамиот 0 донекоторогопоL–1,и,дислокациипрограммывОЗУ(адресзагрузкипрограммы).ИнымибазированияпозволяетразрешитьпроблемупрограммОЗУ,номерами,начинающимисясL–1.Т.е.окнаорганизованытакимспособом,чтопоследнийпрог.начинаяимеетсяспроцесснекоторогоадресаK, расположенапрограмма.ТогдаадресAисп.необходимовнутрисловами,оперативнаяпамятьячейкамис номерамиот Но0регистр,донекоторогоL–1,и,посколькуможнозагрузитьвс любуюобластьпамяти.приэтомрегистрпредыдущегоокна отображаетсянаоттотжефизическийчтои величинунулевойпрог.программыможнотрактовать,какотступфизическойячейкисадресомKнаначинаясчтонекоторогоадресаK, расположенапрограмма.
ТогдаадресAисп.внутрипомнить,программапредставляетсяв виде непрерывнойобластивиртуальнойпамяти,регистрследующегоокна.Aисп.прог.. Дляреализациимоделибазированияиспользуетсяспециальныйрегистрбазы, впрограммыможнотрактовать,какотступотфизическойячейкисадресомKнавеличинукотораязагружаетсявнепрерывныйфрагментфизическойпамяти.ПоэтомудлярешенияПри обращениииз текущейпрограммыв другуюпрограммуавтоматическипрог.которыйв реализациимомент загрузкипроцессав оперативнуюпамятьоперационнаясистемаA.Длямоделибазированияиспользуетсяспециальныйрегистрвисп.происходитсменаокна, т.е.текущейпрограмместановитсядоступнодругоебазы,окно,записываетначальныйадресзагрузки(т.е.K).Тогдареальныйфизическийадрескоторый в тожемоментпроцессав оперативнуюпамять66физ.состоящееиз загрузкиLрегистров.Структурарегистровогоокнаоперационнаяпредставима системав видеполучается,начальныйисходяиз формулыAисп.= (т.е.Aисп.прог.+<Rбазы>. реальный физический адресзаписываетадресзагрузкиK).Тогдаследующей последовательности регистров(Рис.50).Перваягруппарегистров–регистрыполучается, исходяиз формулыAисп.физ.= Aисп.прог.+<Rбазы>.вторая – регистры локальныхформальныхпараметров(включаяадресавозврата),параметров, третья – регистры фактических параметров.
Каждый из регистров окнаотображается на один из регистров базового регистрового файла. Далее, следующеепрерывания». С другой стороны, исполнительный адрес программы можнопроинтерпретироватьотносительный адрес,адрес, т.е.т.е. адрес,адрес, зависящийзависящий отот местаместапроинтерпретировать как относительныйдислокации(адрес относительноотносительно точкиточкизагрузкизагрузкипрограммы).программы).ИнымиИнымидислокации программыпрограммы в ОЗУ (адрессловами,память сс ячейкамиячейками сс номераминомерамиотот00додонекоторогонекоторогоL–1,L–1,и,и,словами, имеетсяимеется оперативная памятьпрог.прог.начинаярасположена программа.программа.
ТогдаТогда адресадресAAвнутриначиная сс некоторогонекоторого адреса K, расположенавнутриисп.исп.программыкак отступотступ отот физическойфизическойячейкиячейкиссадресомадресомKKнанавеличинувеличинупрограммы можноможно трактовать, какпрог.прог.AAисп... Длябазирования используетсяиспользуетсяспециальныйспециальныйрегистррегистрбазы,базы,в вДля реализацииреализации модели базированияисп.который вв моментмомент загрузки процессакоторыйпроцесса вв оперативнуюоперативную памятьпамять операционнаяоперационнаясистемасистемазаписывает начальныйначальный адрес загрузкизаписываетзагрузки (т.е.(т.е. K).K).
ТогдаТогда реальныйреальный физическийфизический адресадресфиз.прог.физ.прог.получается, исходяисходя из формулы Aисп.=A+<R>.получается,=A+<R>.исп.базыисп.исп.базыпроблемы фрагментации аппарата базирования недостаточно, и используются болееразвитые механизмы организации ОЗУ и виртуальной памяти.Развитиемвиртуальнойявляетсяаппарат и страничнойпроблемыаппаратафрагментацииаппарата памятибазированиянедостаточно,используются болееРис. 55.55.
БазированиеБазирование адресов–– решениепроблемыперемещаемостипрограммыРис.адресоврешениепроблемыперемещаемостипрограммыорганизациипамяти.НижемырассмотриммодельныйсильноупрощенныйпримерпопоразвитыемеханизмыорганизацииОЗУивиртуальнойпамяти.ОЗУ.ОЗУ.страничной памяти(наша цель– рассмотрениеосновныхконцепций).Развитиемаппаратавиртуальнойпамятиявляется Даннаяаппаратмодельстраничной представляетвсе Такимадресноепространствооперативнойпамятиввидепоследовательностиорганизациипамяти.Нижемырассмотриммодельныйсильноупрощенныйпримеробразом, базированиебазирование адресовТаким образом,адресов –– этоэто средствосредство отображенияотображениявиртуальноговиртуальногостраничнойпамяти(нашацель – рассмотрениеконцепций).Данная модельблоков фиксированногоразмера,называемыхстраницами.основныхСтраница— это областьадресного пространствапространствапрограммыадресногопрограммы вв физическуюфизическую памятьпамять «один«один в в один».один».
АппаратАппаратпредставляетадресноеразрешитьпространствооперативнойпамяти страницыв видепоследовательностибазированияпозволяетпроблемуперемещаемостипрограммпо ОЗУ,адресного базированияпространствавсефиксированногоразмера:обычноразмеркратенпозволяет разрешить проблему перемещаемостипрограмм по ОЗУ,блоковназываемыхстраницами.—необходимоэто областьпосколькупроцесс можноразмера,загрузитьв любуюобластьНопри этомадресастепени двойки–фиксированногобудемчто размерстраницы2k. памяти.Тогда Страницаструктурапосколькупроцесссчитать,можно загрузитьв любуюобластьпамяти.Но при этомнеобходимопомнить,чтопрограммапредставляетсянепрерывнойобластивиртуальнойадресногопространствафиксированногоразмера:обычноразмерстраницыкратенпредставимав видечтодвухполей (Рис.56): правыеввkвидеразрядовпредставляютадресвнутрипамяти,помнить,программапредставляетсявиденепрерывнойобластивиртуальнойпамяти,kкотораязагружаетсявнепрерывныйфрагментфизическойпамяти.Поэтомудлярешениястепенидвойки–будемсчитать,чторазмерстраницы2.Тогдаструктураадресастраницы, котораяа оставшиесяразрядыотвечают фрагментза номерстраницы.памяти.ТогдаПоэтомуколичествозагружаетсяв непрерывныйфизическойдля решенияпредставимадвухограниченополей (Рис.разрядностью56): правые k разрядовпредставляютадрес внутри виртуальныхстраниц в видесистемеполя «Номервиртуальной66проблемыфрагментацииаппаратабазированиянедостаточно,ииспользуютсяболеестраницы,аоставшиесяразрядыотвечаютзаномерстраницы.Тогдаколичествостраницы» в адресе.66развитыемеханизмыорганизацииОЗУивиртуальнойпамяти.виртуальныхстраницвсистемеограниченоразрядностьюполя«НомервиртуальнойИтак, виртуальное адресное пространство — это множество виртуальных Развитиемаппаратавиртуальнойпамятиявляетсяаппаратстраничнойстраницы»вадресе.
страниц, доступных для использования в программе. Физическое адресноеорганизациипамяти.Нижемы рассмотриммодельныйсильноупрощенныйпримерИтак,адресноепространствоэтомножествовиртуальныхпространство—это виртуальноеоперативнаяпамять,подключеннаяк—данномукомпьютеру.страничнойпамяти(нашацель–рассмотрениеосновныхконцепций).Даннаямодельстраниц,использованияв попрограмме.ФизическоеФизическаяпамять доступныхможет иметьдляпроизвольныйразмеротношениюк размеру адресноепредставляетвсе—физическихадресноепространствооперативнойпамятибольшев квидепоследовательностипространствоэто оперативнаяподключеннаяданномукомпьютеру.виртуальнойпамяти (числостраниц память,можетбытьменьше,или равноблоков фиксированногоразмера,называемыхстраницами.Страница— этообластьФизическаяпамятьможетиметьпроизвольныйразмерпоотношениюк размеручислу виртуальных страниц).адресногопространствафиксированногоразмера:обычноразмерстраницывиртуальной памяти (число физических страниц может быть меньше, больше иликратенравноk0ая страницастепенидвойки Структура–страниц).будем считать,чторазмерстраницы2.Тогдаструктураадресачислувиртуальныхадреса:представимав виде двух полей (Рис.
56): правые k разрядов представляют адрес внутри0ая страницаk k-10Структураадреса: за номер страницы.страницы, а оставшиеся разрядыотвечаютТогда количество1ая страницаНомерстраницыНомервстраницевиртуальных страниц в системе ограничено разрядностьюполя «Номервиртуальнойk k-10страницы»в адресе.1ая страницаНомер страницыНомер в страницеИтак, виртуальное адресное пространство — это множество виртуальных…Количество страницстраниц, доступныхограниченодля использованияв программе. Физическое адресноеразмером…Количествостраницпространство— поляэто «Номероперативнаяпамять,подключенная к данному компьютеру.страницы»ограниченоразмеромФизическая память может иметьпроизвольныйразмер по отношению к размеруполя«Номерстраницы»виртуальной памяти (число физических страниц может быть меньше, больше или равно числу виртуальных страниц).Рис.