А.Н. Томилин - Вычислительные системы (2006), страница 22
Описание файла
PDF-файл из архива "А.Н. Томилин - Вычислительные системы (2006)", который расположен в категории "". Всё это находится в предмете "вычислительные сети и системы" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 22 страницы из PDF
Признак изменения. Всё. Что мы теряем? Теряем код защиты, потому что в физическую страницу может быть помещено несколько объектов программы (несколько модулей программы, несколько модулей данных). Так что мы потеряли это дело, за счёт того, чтомы полностью избавились от внешней фрагментации.
И даже называется такая память состраничной организацией в литературе — динамически распределяемая память.И здесь, конечно, нужно как-то замещать. Какой? Вот тут начинаются вопросы. Имеются на этот счёт и книги всевозможные, есть стратегии замещения. Стратегии — это всмысле либо вы ждёте, когда вас «ударит» (вы не найдёте здесь, увидите, что страницы нет вОП, она на внешней памяти, тогда надо её подкачивать) — это называется «замещение страниц» по научному или по жаргонному — «подкачка страницы» по запросу.
Есть с упреждением. А тактики — самые разные. Например, FIFO (первый пришёл и первый, к сожалению,на выход) либо по давности использования (Last Recently Use), опять же надо отмечать активность этой страницы, это вполне может сделать и аппаратура, счётчик активности ввестив этой же строчке этой же таблицы. Это тоже делается, и выталкивается самая плохо посещаемая страница. Есть много других, есть оптимальные алгоритмы, и графики на этот счётприведены. Это много расписывается в литературе, здесь много людей постаралось.В своё время вышла так называемая «Энциклопедия информатики».
Я не помню сейчас,может быть, лет 10 назад, может 8-7. В институт к нам попала рукопись (оригинал текста)этой энциклопедии по информатики. Мы взглянули на эту энциклопедию, и у нас возниклоочень беспокойное чувство, мы так хотели предпринять какие-то действия, но было ужепоздно. Пока мы просмотрели, сказали, что вот эти главы написаны просто блестяще. Этиглавы студентам можно давать, какие там школьники. Они написаны так хорошо, что ишкольники поймут, и студенты. Всё будет замечательно.
В частности и вот эта глава про замещение страниц. Картинка очень понравилась: комната, там сидят за столом игроки и играют в карты, есть две двери, в одну дверь встречают с улыбками, а в другую выкидываютстраницу из памяти. Это замечательная совершенно карикатура, очень образная. А другиеглавы — просто дикие ошибки (больше программистские, с рекурсиями и т.д.).
Выяснилось,что кое-кто решили подзаработать, поскольку тема современная, родители своих детей постараются обеспечить. Они устроили «пирамиду» через каких-то знакомых, те своих знакомых, и раздали кому-то написать. Кто-то написал блестяще, а кто-то похалтурил. Всё этовместе сложили и мгновенно издали. Издать сейчас как угодно можно — пойдите за угол итут же у вас тираж. Поздно уже — всё разошлось. Вот такие вещи бывают.На счёт поздно и у нас бывает. Вот книга Королёва последняя, которая вышла в издательстве Вычислительного центра, по структурам ЭВМ, была очень нужная.
Потом мы начали (он меня попросил), советуясь, её чистить — просто в написании есть дефекты, и эти дефекты могли приводить к двусмысленному пониманию, вообще случайно неправильно написанные фразы, не просмотренные и неверные. К сожалению, многое осталось. А это уже66всё — у него план, а мы не укладывались во время его плана. Так что вот такая получиласькартина.Иногда говорят, что здесь недостаток, кроме того, что мы теряем уникальную защитуобъектов программы, может быть в том, что у вас внутренняя фрагментация.
Конечно, память выделяется страницами под задачу. Если у вас задача помещается всего в одну страницу и содержит, в случае БЭСМ-6, 30, 40, ну 100 ячеек и всё, то да — попадает. Но, как правило, большие задачи и пропадание части последней страницы имеет мало значения.
Момент внутренней фрагментации имеет место, но не столь важный.Кстати, с БЭСМ-6 получилось очень интересно. Долго не было памяти достаточногообъёма, потом она появилась, но машины не были на неё рассчитаны. А виртуальный адресвсего 15 разрядов, и в нём№ страницы5 разрядов10 разрядовВ 10-ти разрядах можно указать любую из 1024 ячеек. А раз адрес 15-ти разрядный истраниц виртуальных таким образом появляется 32, то в машине существовало 32 регистра15-ти разрядных (т.е. вот эта табличка страниц).
Так вот такая табличка существовала сразуна все страницы данной задачи, т.е. фактически такая таблица страниц помещалась в аппаратуру полностью. Если у вас очень много виртуальных страниц, то понятно — здесь у вас 4, 8.Здесь было 32, причём левая часть была не нужна, потому что всегда нулевой виртуальнойстраницей был нулевой регистр.Сегментно-страничная организация памятиВсё то же самое, как вы понимаете, только что попытка ликвидировать оба эти недостатка. А именно, за счёт страничности обеспечить динамическое выделение памяти, а за счётсегментности обеспечить защиту объекта, который в этом случае располагается в нескольких виртуальных страницах. Таким образом, виртуальный адрес сегментно-страничной организации у нас будет: виртуальный номер сегмента, виртуальный номер страницы в сегменте и смещение в странице.22виртуальныйномер сегментавиртуальныйномер страницыв сегментесмещение в страницеТут надо сделать важное замечание: мы с вами рассматриваем некую каноническуюструктуру.
В реальных машинах (зарубежных) есть очень сложные организации. А мы с вами эту общую идею представляем в некотором общем варианте, которого в чистом виде нет,но зато понятно. У вас есть виртуальный сегмент, который содержит какое-то количествовиртуальных страниц. В сегменте они нумеруются, начиная с нуля.Дальше происходит следующее. У нас имеется таблица сегментов. Здесь теряется длина (некое количество страниц просто), и адреса начала сегмента памяти тоже не существует.Начала сегмента нет, поэтому здесь находится адрес таблицы страниц.Таблица страниц2-го сегментовТаблица сегментов01201234адрес таблицы страниц2-го сегмента......67Получается (n + 1) таблица страниц, где n — количество сегментов.
Двойное приходится делать обращение в ОП — 200% накладных расходов. В таблице адресной трансляциисуществует всё то же самое, только первое поле делится на 2 части:№ виртуальногосегмента№ виртуальнойстраницы в сегменте22. . . . . . .
. . . . . . . . . .В третью колонку из таблицы сегментов приходит код защиты, а из таблицы страниц— всё, что там есть: номер физической страницы, признак нахождения в памяти и модификация.Был ли у нас разговор о том, как организационно реализуется (в виде каких организационных структур) операционная система в памяти? Понятно, что задача есть задача, естественно, есть возможность защиты. А вот как операционная система сделана организационная?Наверно стоит об этом сказать. Здесь, как бы, кстати, об этом идёт речь, потому что сейчасмы рассмотрим такую интересную вещь, как определение физического адреса при нахождении таблицы сегментов и страниц в виртуальной памяти.Вот у нас есть задачи:ИПЗадресноепространство1-й задачипользователя1-я задачаОС50адресноепространство2-й задачипользователя2-я задачаОСИПЗ256ядроОСсохранениерегистровогоконтекстаЕстественно, задачи защищены друг от друга.
Есть какая-то информация о каждой изних, которая находится в специальном поле, которое называется по-разному. Может называться описателем задачи, может называться блоком состояния задачи, или, что в нашихоперационных системах (ОС) часто использовалось, информационное поле задачи (ИПЗ).Что здесь может находиться? Ведь задача может временно приостановиться по какой-топричине.
Причины могут быть разные, например, выполняется обмен какой-то страницы свнешней памятью, задача продолжает работать параллельно с обменом и налетает настраницу, с которой обмен ещё не закончен, надо подождать, когда он закончится. Значит,задача приостанавливается, пойдёт другая задача. Либо вам какой-то квант даётся (всемдаются одинаковые кванты).
Ваш квант кончился — задача приостановилась. На моментприостановки задачи, чтобы её потом можно было продолжить, надо сохранить регистровыйконтекст (например, индексные регистры, которые были на БЭСМ-6, в IBM были регистрыобщего назначения (РОН) — их тоже надо сохранить, в Cray — тоже надо сохранить),естественно, адрес возврата. Возьмём, например, БЭСМ-6. Регистров там не много. Сколькотам индексных регистров? 15. Какие-то ещё там служебные и т.д. В целом набегает порядка50. А дальше-то что? Всего — 256 ячеек. А всякие сведения об управлении этой задачи, обожидаемых событиях, о местах, на которые нужно передать управление в случае, если этиожидаемые события произойдут, о ресурсах внешней памяти и ещё Бог знает о чём.
Всякиеэти вещи, действительно надо много места, и вот такое информационное поле задачи (ИПЗ).Как же с операционной системой? У операционной системы есть какие-то функции.Функция один реализуется как такая же точно с такими же информационными полями зада68ча ОС (1-я задача ОС). Есть вторая задача ОС. Т.е. они имеют так же своё адресное пространство (у каждой своё адресное пространство) и работают точно так же, как задачи пользователя. Их можно так же отлаживать. Только они при выполнении имеют больший приоритет.
Естественно, они возникли из-за потребностей задач пользователя. Даже можно себепредставить вот такую шкалу готовности задач к решению:1 10 1 1 0задачи ОСзадачипользователяЭти все разряды указывают готовность задач (ОС и пользователя). И вдруг возниклообстоятельство: закончился обмен или сама задача подала обращение к ОС, значит должнавыполниться одна из задач ОС. Может быть, в процессе она активизирует ещё какую-то задачу. По этой шкале всегда можно смотреть, какую задачу (приоритет слева направо). Что-тоне входит в такую организацию, а именно, ядро ОС.Есть второй способ организации, а именно, вот какой.
Вот у вас есть адресное пространство (АП) первой задачи пользователя.адачи пользовйза1собственнозадача2-я зачадаN1лятеАП0виртуальныеадреса ОСN2N10Какая-то часть адресов — это собственно задача (с 0 до N1), а с N1 до N2 — это виртуальные адреса ОС. Т.е. операционная система (ОС) входит в эту задачу. При этом она должна от всяких безобразий и ошибок программы не пострадать. Т.е. она входит как защищённая подсистема. Итак, это защищённая подсистема в общем адресном пространстве задачиОС.