А.Н. Томилин - Вычислительные системы (2006), страница 25
Описание файла
PDF-файл из архива "А.Н. Томилин - Вычислительные системы (2006)", который расположен в категории "". Всё это находится в предмете "вычислительные сети и системы" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 25 страницы из PDF
Т.е. это для развития программного комплекса (причём как одназадача), там могут защищать одни части от других. Туда же идут все операционные системы— достраивание операционной системы, развитие — тоже могут быть защищены отдельныечасти. Скажем, у машины фирмы Digital Equipment Corporation (DEC) существовала такаяхитрая вещь: там было 4 уровня, было ядро (kernel), затем шёл supervisor или superuser (илинаоборот), а дальше шёл user.ядро (kernel)Возникает необходимость иметь защищённые подсистемы. Как это реализуется? Этореализуется следующим образом.
Что значит «необходимо иметь защиту», обращаться-товсё равно надо к программе и попросить выполнить функцию, которая находится вот здесь.Это должно осуществляться. Обратится просто так или по считыванию — это будет запрещено. А на определённые зафиксированные точки входа, вы должны иметь возможность.Таким образом, у вас существует уровень защиты (1, 2, 3, 4).77подготовленныеданные1234А1Рис. 14Когда вы обращаетесь куда-то, у вас имеются некоторые описатели входа (находятсяна регистрах или ещё где-то, пока не будем говорить). И вот здесь (в описателе входа) будетуказан диапазон уровней, из которых возможно обращение.А1(3 − 4)Скажем, здесь будет 3-4.
Значит, и отсюда и отсюда можно обращаться. А как знать гдевы находитесь (на каком уровне)? Это уж совсем просто. Имеется вот этот самый регистрPSW (мы говорили о нём тогда, когда исследовали решение с разделением памяти на участки постоянной длины и наличие специальной памяти ключей защиты). А сейчас будемчитать текущий уровень защиты (на нашем рисунке он 3):PSW(3)текущий уровень защитыТеперь, поскольку память мы посмотрели, нам особенно хорошо понятно, почему этоможно посчитать. Мы обращаемся в какую-то ячейку (допустим, что это страничная организация), и в описателе этой страницы есть сведения про уровень защиты. Какой у нас? 2. Еслия вдруг, работая здесь, взял и полез сюда: 2, ага, а ты кто? — ах, ты 3-й! (см.
Рис. 14) И естественно, возникнет событие. Нельзя работать, возникнет прерывание и все действия, которые с этим могут быть связаны. Т.е. это всё очень просто решается вопрос, и уже вам никуданельзя будет обратиться. Конечно, при этой системе на внешний уровень вроде как можно.Но можно усложнить систему и это тоже не разрешить (только свой уровень). А можно так,что эти уровни могут обращаться сюда, например, уровни ОС могут обращаться к уровнюпользователя и что-то там изменить, потому что ОС работает для пользователя, и если пользователю что-то понадобилось, то это можно сделать с изменением чего-то у пользователя, иэто должна уметь делать операционная система.
Можно сделать и такой и такой подход, чтоможно менять только у себя или можно менять на более низких уровнях, на более высоких— будет всё запрещено, а обращения на разрешённые точки входа будут.Ещё один момент: вот мы вошли в этот модуль А1 и начинаем в нём работать. Всякоеобращение — указываются какие-то параметры по значению или по ссылке.
Допустим поссылке, значит вы указываете, где находятся параметры, которые этот модуль будет обрабатывать. Допустим, что вы эти данные подготовили вот здесь (3-й уровень — см. Рис. 14). Аесли вы ошиблись и указываете данные вот здесь (2-й уровень). Вы уже работаете в этоммодуле, и у вас уже стоит 2, и когда вы обращаетесь к указанному месту, где находится параметр, и здесь будет возможно. А на самом деле — это ошибка. Значит, тут будет предшествующий уровень защиты:PSW(2) (3)текущийуровень защитыпредшествующийуровень защитыИ здесь будет работать специальная команда — обращение к предшествующемууровню защиты.
И тогда эта команда прочтёт: здесь будет 2-ка, а предшествующий уровень— 3-ка — нельзя. Вот такие вещи. С помощью таких решений обеспечивается создание78ка — нельзя. Вот такие вещи. С помощью таких решений обеспечивается создание защищённых систем и их использование в жизни задачи и работы операционной системы.Аппаратная поддержка взаимодействия программныхмодулейАппаратная поддержка взаимодействия программных модулей — вот что это такое?Вот у вас имеется программный модуль. Естественно, что в программных модулях есть какие-то обращения к другим модулям.
Если модулей тысячи и в каждом из них очень многообращений, то, вообще говоря, возьмём некий предшествующий период, вы редактируетевнешние связи. Допустим, помните нашу сегментную организацию? Этот модуль находитсяв сегменте 1, этот модуль находится в сегменте 2:(модуль 1) сегмент 1(модуль 2) сегмент 2сегм.Х, адр.Другие модули в своих сегментах.
И всё это редактирование внешних связей будетпроизведено, и здесь будет написано: сегмент такой-то, адрес в сегменте и т.д. Значит, выпроведёте огромное количество редактирования внешних связей. Ясное дело, что если у вастысяча модулей, то они все у вас будут сидеть на внешней памяти, когда он понадобится, выего будете оттуда подкачивать, там уже указаны связи с другими модулями. Вы обратитесь,подкачаете следующий модуль, пусть это делает операционная система. Вроде как всё хорошо, всё нормально.Вы отредактировали десятки тысяч внешних связей.
Вы запустили вашу программу —никаких этих десятков тысяч не произошло, потому что такие входные данные. Проявилосьвторое глобальное свойство программы. Первое — это свойство локальности. Об этом мы свами говорили, когда про кэши говорили, про таблицы адресной трансляции. Здесь второесвойство — программа зависит от исходных данных. Программа может работать 2 часа, и вней сработают десятки тысяч связей, а может вылететь через несколько миллисекунд, и сработает одна-две связи. Спрашивается: зачем тогда мучаться? Естественно, что просто такничего не даётся, поэтому делается это так.
Вот берётся модуль и рядом помещается сегмент связей (пусть сегмент 1001 — сегмент связей сегмента 1). Здесь будет некое имя модуля, к которому будет обращение.(модуль 1) сегмент 1сегм.1001,1(модуль 2) сегмент 2сегмент 1001 (сегмент связейсегмента 1)1 0 имя модуля231 БП сегм.2,1Усилиями транслятора и операционной системы созданы вот эти 2 сегмента: сегмент 1вот с такими обращениями в сегмент 1001, и сегмент 1001 — сегмент связей модуля 1. Аппаратура учитывает специально диапазон сегментов с 1000. Запаяно в аппаратуру, что еслисегмент начинается с 1000, то надо проверить старший разряд.
Например, в нём «0». О, работать надо: возникает прерывание — с этим сегментом (с этим модулем) не было связи ещё,79поскольку там «0». Всё, прервались. Обратились к операционной системе, операционнаясистема выкачивает сегмент 2, создаёт ему, естественно, сегмент связей (1002), и заменяетпереход безусловный (БП) на точку входа, а здесь ставит «1». Если в следующий раз произойдёт обращение, то тут «1» — прекрасно, переход сюда (по БП).
А сюда не произошлообращение — ничего и не трогалось. А понадобится — всё точно так же будет. Т.е. за счётнекоторого усложнения (а именно сегментов связей для каждого смыслового сегмента, исоздание соответствующей аппаратуры ощупывания разряда той ячейки сегмента связи, накоторый происходит передача управления из смыслового сегмента), то значит здесь произошло знакомство (аппаратная поддержка взаимодействий).
Вот так. Т.е. конечно, если увас действительно будет происходить 10000 связей, то это у вас будет слишком много дополнительных (накладных) расходов. А если у вас есть разные варианты, то этой аппаратурой можно воспользоваться, если она в машине предусмотрена. Сейчас в некоторых есть, внекоторых нет. Вот такая вот ситуация. Всякая вещь несёт в себе всякий «плюс», вызываетещё и какой-то «минус».Типы устройств внешней памяти и ввода-выводаКонечно, нужно представлять себе, как работает терминал, какие-то такие моментынужно себе представлять. Интересное понятие старт-стопности работы устройств.
Довольнонебольшой будет обзорчик этого дела. В основном-то вы всё это знаёте. Ну а затем, практически есть 2 подхода: один подход фирмы IBM, которая на длительное время предложила,осуществила, и многие это используют — это идеология каналов (селекторных и мультиплексных), где управление ведётся централизованно.контроллерОПпроцессоргруппа ВУавтомат(драйвер)Процессор работает с ОП туда-сюда (принимает команды, операнды, записывает результаты — выполняет решение задачи), и независимо от этого с внешними устройствами(ВУ), как-то объединёнными в группы, осуществляется обмен данными параллельно другдругу и параллельно с выполнением программы на процессоре.
За счёт распараллеливанияпамяти всё это происходит. Так вот, если здесь находится некоторое устройство, которое является автоматом управления обмена с этими устройствами, естественно, под управлениемданных, которые доступны этому автомату (которые подготовила ОС). Операционная система (драйвер) подготовит информацию для этого автомата, который дальше будет выполнятьавтоматически загрузку, централизовано управляя работой либо одного выбранного устройства (селекторный канал), либо по небольшой порции информации группы устройств (мультиплексный канал). Именно этими терминами (селекторный и мультиплексный канал) именуются эти автоматы. Конечно, сразу возникает некий протест против названия. Позвольте,канал-то — вот он. Он идёт туда, по семи комнатам — это есть канал.
А это что такое? Этокакая-то промежуточная вещь, которая управляет созданием, т.е. интерфейс. Вот в IBM всёнаоборот: это называется каналом, а то, что протянуто на 30 метров, называется интерфейсом! Что хочешь с ними, то и делай.Ладно, Бог с ними. Это вот подход фирмы IBM, где у нас централизованное управление.80Теперь другой подход — фирмы DEC. Второй подход такой. Вот есть процессор, вотоперативная память, вот группа внешних устройств (ВУ), или одиночное внешнее устройство (ВУ). Здесь всё не так. Здесь имеется некая общая «шина», где все имеют доступ к этойобщей шине.процессоргруппаВУОПВУконтроллер“шина”арбитршиныКто-то захватывает эту шину (устройство в этом случае называется master), а тот, комуоно передаёт информацию, называется slave (т.е. «слуга»).