14_Понятие о мультипрограммном режиме работы (В.Г. Баула - Введение в архитектуру ЭВМ и системы программирования), страница 2
Описание файла
Файл "14_Понятие о мультипрограммном режиме работы" внутри архива находится в папке "В.Г. Баула - Введение в архитектуру ЭВМ и системы программирования". PDF-файл из архива "В.Г. Баула - Введение в архитектуру ЭВМ и системы программирования", который расположен в категории "". Всё это находится в предмете "практика расчётов на пэвм" из 1 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 2 страницы из PDF
Как уже говорилось, на первых ЭВМ этого режима работы не было. Сейчас мы сформулируем необходимые требования, которые предъявляются к аппаратуре компьютера, чтобы на этом компьютере было возможно реализовать мультипрограммный режим работы.Сначала заметим, что требование параллельной работы центрального процессора и периферийных устройств не является совершенно необходимым для режима разделения времени, который, какмы уже говорили, является частным случаем мультипрограммного режима работы.
Поэтому мы небудем включать это требование в перечень обязательных свойств аппаратуры ЭВМ для обеспечения работы в мультипрограммном режиме. Скажем, однако, что параллельная работа периферийныхустройств и центрального процессора сильно повышает производительность компьютера и реализована практически на всех современных ЭВМ и на всех больших и супер-ЭВМ.14.1. Требования к аппаратуре для обеспечения возможности работы вмультипрограммном режимеИтак, сформулируем необходимые требования к аппаратуре ЭВМ для обеспечения возможностимультипрограммной работы. Особо подчеркнём, что это требования именно к аппаратуре ЭВМ, а нек программному обеспечению.14.1.1.
Система прерыванийСистема прерываний необходима как для режима разделения времени, так и для обеспечения параллельной работы центрального процессора и периферийных устройств, так как она обеспечиваетсаму возможность реакции на события и автоматического переключения с одной программы на другую.414.1.2. Механизм защиты памятиЭтот механизм обеспечивает безопасность одновременного нахождения в оперативной памятинескольких независимых программ. Защита памяти гарантирует, что одна программа не сможет случайно или же предумышленно обратиться в память другой программы (по записи или даже по чтению данных). Очевидно, что без такого механизма мультипрограммный режим просто невозможен.Даже если не принимать во внимание "вредных" программистов, которые специально захотят испортить или незаконно прочитать данные других программ, всегда существуют большая вероятность таких действий из-за семантических ошибок в программах даже у "добропорядочных" программистов(например, при выходе индекса за границу массива).
Незаконное обращение к чужым ресурсам (вчастности, к чужой оперативной памяти) "по научному" называется несанкционированным доступом.Механизм защиты оперативной памяти на современных ЭВМ устроен весьма сложно, и частосвязан с механизмом так называемой виртуальной памяти, который в полном объёме изучается в курсе, посвящённом операционным системам.
Сейчас мы рассмотрим одну из простейших реализациймеханизма защиты памяти, так эта защита была сделана на некоторых первых ЭВМ 3-го поколения,способных работать в мультипрограммном режиме.В центральный процессор добавляются два новых регистра защиты памяти, обозначим ихАнач и Акон. На каждый из этих регистров можно загрузить любой адрес оперативной памяти (или адрес начала и конца любого сегмента при сегментной организации памяти). Предположим теперь, чтопосле загрузки некоторой программы в оперативную память она занимает сплошной участок памятис адресами от 20000010 до 50000010 включительно.
Тогда загрузчик, перед передачей управленияна первую команду программы (у нас это часто была команда с меткой Start), присваивал регистрам защиты памяти соответственно значенияАнач:=20000010 и Акон:=50000010Далее, в центральный процессор добавлена способность, перед каждым обращением в оперативную память по физическому адресу Афиз автоматически проверять условиеАнач ≤ Афиз ≤ АконЕсли условие истинно, т.е. программа обращается в свою область памяти, выполняется требуемое обращение к памяти по записи или чтению данных.
В противном случае доступ в оперативнуюпамять не производится, и центральный процессор вырабатывает сигнал прерывания по событию"попытка нарушения защиты памяти".Описанный механизм защиты памяти очень легко реализовать, однако он обладает существенным недостатком: каждая программа может занимать только один сплошной участок в оперативнойпамяти. В то же время, как мы знаем, архитектура нашего компьютера допускает, чтобы каждый сегмент программы мог быть размещён на любом свободном месте оперативной памяти. В современныхЭВМ это ограничение несущественно, так как на них реализован уже упоминавшейся механизм виртуальной памяти, который позволяет выделять для каждой программы любые участки адресов памяти, независимо от того, заняты ли эти, как говорят, логические адреса другими программами или нет.С другой стороны, если реализован механизм виртуальной памяти, то на его базе легко сделать идругой, более совершенный механизм защиты памяти.114.1.3.
Аппарат привилегированных командСейчас мы рассмотрим ещё одно необходимое свойство аппаратуры, без которого невозможнореализовать мультипрограммный режим работы ЭВМ. Это свойство иногда называется аппаратомпривилегированных команд, а иногда – защищённым режимом работы центрального процессора, изаключается оно в следующем: все команды, которые может выполнять центральный процессор, разбиваются на два класса. Команды из одного класса называются обычными командами или командами пользователя, а команды из другого класса – привилегированными или запрещённымикомандами.Далее, в центральном процессоре располагается специальный одноразрядный регистр режимаработы, который может, естественно, принимать только два значения: 0 и 1.
Значение этого регист1На факультете Вычислительной математики и кибернетики МГУ это изучается в курсе под названием"Системное программное обеспечение", он читается в третьем семестре.5ра и определяют тот режим, в котором в данный момент работает центральный процессор: обычныйрежим (или режим пользователя) или привилегированный режим.1 В привилегированном режимецентральному процессору разрешается выполнять все команды языка машины, а в режиме пользователя – только обычные (не привилегированные) команды.
При попытке выполнить привилегированную команду в пользовательском режиме центральным процессором вырабатывается сигнал прерывания, а сама команда, естественно, не выполняется. Из этого правила выполнения команд легко понять и другое название для привилегированных команд – запрещённые команды, так как их выполнение запрещено в режиме пользователя. Объясним теперь, почему без аппарата привилегированныхкоманд невозможно реализовать мультипрограммный режим работы ЭВМ.Легко понять, что, например, команды, которые для рассмотренного выше механизма защитыпамяти заносят на регистры защиты Анач и Акон новые значения, должны быть привилегированными.Действительно, если бы это было не так, то любая программа могла бы занести на эти регистры адреса начала и конца всей оперативной памяти, после чего получила бы возможность записывать данныев любые области памяти. Ясно, что при этом и описанный выше механизм защиты памяти становитсясовершенно бесполезным.Привилегированными должны быть и все команды, которые обращаются к внешним (периферийным) устройствам.
Например, нельзя разрешать запись на диск в режиме пользователя, так какдиск – это тоже общая память для всех программ, только внешняя, и одна программа может испортить на диске данные (файлы), принадлежащие другим программам. То же самое относится и к печатающему устройству: если разрешить всем программам бесконтрольно выводить свои данные на печать, то, конечно, разобраться в том, что же получится на бумаге, будет чаще всего невозможно. Поэтому, если работающие в мультипрограммном режиме программы Васи и Пети производят вывод наединственный общий принтер, то на самом деле данные, которые печатает каждая программа пользователя, не выводятся сразу на печать, а записываются в специальный файл, который будет выводиться на печать только после полного завершения этой программы. Таким образом, выводимые на печать данные Васи и Пети не перепутаются.Итак, в мультипрограммном режиме программе пользователя запрещается выполнять многие"опасные" команды, в частности команды, работающие с внешними устройствами (дисками, принтерами, линиями связи и т.д.).
Как же тогда быть, если программе необходимо, например, считать данные из своего файла на диске в оперативную память? Выход один – программа пользователя должнаобратиться к определённым служебным процедурам, с просьбой выполнить для неё ту работу, которую сама программа пользователя сделать не в состоянии. Эти служебные процедуры, естественно,должны работать в привилегированном режиме. Перед выполнением запроса из программы пользователя, такая служебная процедура проверяет, имеет ли эта программа пользователя право на запрашиваемое действие, например, что эта программа имеет необходимые полномочия на чтение из указанного файла.2Переключение из привилегированного режима в режим пользователя обычно производится понекоторой (не привилегированной) машинной команде. Значительно сложнее обстоит дело с такойопасной операцией, как переключение центрального процессора из обычного режима работы в привилегированный режим.
Это переключение невозможно выполнить по какой-либо машинной команде (чтобы это понять, достаточно задаться вопросом, должна ли сама эта команда переключения бытьпривилегированной, или нет). Обычно переключение в привилегированный режим производится автоматически при обработке центральным процессором сигнала прерывания, в этом случае процедураобработчик прерывания уже начинает свою работу в привилегированном режиме. Иногда переключение в привилегированный режим производится центральным процессором при вызове специальных системных процедур, которые имеют полномочия для работы в привилегированном режиме.1В архитектуре нашего компьютера регистр режима работы содержит два разряда и может приниматьзначения 0, 1, 2 и 3.
Практически всегда, однако, для указанных выше целей реализации защищённого режимаработы используются только два из этих четырёх значений (0 и 3).2Способы задания таких полномочий студенты факультета Вычислительной математики и кибернетикиМГУ изучают в третьем семестре на примере операционной системы Unix.614.1.4. ТаймерВстроенные в компьютер электронные часы (таймер) появились ещё до возникновения мультипрограммного режима работы.