14_Понятие о мультипрограммном режиме работы (В.Г. Баула - Введение в архитектуру ЭВМ и системы программирования)
Описание файла
Файл "14_Понятие о мультипрограммном режиме работы" внутри архива находится в папке "В.Г. Баула - Введение в архитектуру ЭВМ и системы программирования". PDF-файл из архива "В.Г. Баула - Введение в архитектуру ЭВМ и системы программирования", который расположен в категории "". Всё это находится в предмете "практика расчётов на пэвм" из 1 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
Глава 14. Понятие о мультипрограммном режиме работыНадо отметить, что самые первые программисты работали непосредственно за пультом ЭВМ (т.е.в так называемом диалоговом режиме). Затем из экономических соображений это стало нерациональным, так как программисты слишком долго искали и исправляли ошибки в своих программах илианализировали результаты расчётов, и в это время ЭВМ простаивала.
Тогда и появился новый, пакетный режим работы, и программистов перестали пускать в машинный зал за пульт ЭВМ. Это название подразумевает, что подлежащие счёту программы собираются в некоторый "пакет" (для ЭВМпервых поколений это был деревянный или металлический ящик, наполненный программами, каждаяпрограмма была в отдельной пачке перфокарт, скреплённой резинками).Одним из принципов Фон Неймана, как мы знаем, является принцип последовательного выполнения команд программы.
Более того, архитектура машин Фон Неймана предполагает, что последовательно выполняются не только команды текущей программы, но также и сами эти программы.Другими словами, пока одна программа полностью не заканчивается, следующая программа не загружается в память и не начинает выполняться. Именно так и работали первые ЭВМ (вспомним, какработала наша учебная трёхадресная ЭВМ УМ-3).Сейчас мы познакомимся с новым и весьма важным понятием – мультипрограммным (иногда говорят, многопрограммным) режимом работы ЭВМ.
Мультипрограммный режим работы означает, чтов оперативной памяти компьютера одновременно находятся несколько независимых друг от друга иготовых к счёту программ пользователей, времена выполнения которых перекрываются.1 Заметимтакже, что при мультипрограммном режиме работы в памяти ЭВМ одновременно могут находитьсяне только программы разных пользователей, но и несколько независимых программ одногопользователя.
Независимость программ означает, что они автоматически не обмениваются междусобой данными в процессе счёта.Как Вы уже наверно знаете, компьютеры принято делить на поколения. Мультипрограммныйрежим работы появился только на ЭВМ, начиная с 3-го поколения, на первых компьютерах его небыло [3]. Сейчас нам сначала предстоит разобраться, а для чего вообще может потребоваться, чтобыв памяти одновременно находилось несколько программ пользователей.
Этот вопрос вполне естественный, так как раньше у большинства компьютеров был только один центральный процессор, такчто одновременно могли выполняться команды только одной программы, а остальные программы вэто время будут просто занимать место в оперативной памяти.Частично мы уже обосновали необходимость присутствия в оперативной памяти несколькихпрограмм, когда изучали систему прерываний. Как правило, при возникновении прерывания центральный процессор производит автоматическое переключение на некоторую другую программу,которая тоже, конечно, должна при этом находиться в оперативной памяти.
Здесь, однако, можновозразить, что все программы, на которые производится автоматическое переключение при прерывании, являются системными программами (входят в операционную систему),2 а при определениимультипрограммного режима работы мы особо подчёркивали, что в оперативной памяти могут одновременно находиться несколько разных программ обычных пользователей.Следует указать две основные причины, по которым может понадобиться мультипрограммныйрежим работы. Во-первых, может потребоваться одновременно выполнять несколько программ.
Например, это могут быть программы, которые в диалоговом режиме работают с разными пользователями (программисты Вася и Петя одновременно с разных терминалов, подключённых к одной ЭВМ,отлаживают свои программы, см. рис. 14.1).Правда, здесь имеет место уже упомянутая ранее трудность: так как центральный процессор накомпьютере может быть только один, то в каждый момент времени может выполняться или програм1Эти программы, вообще говоря, могут присутствовать в оперативной памяти не целиком. Во-первых, онимогут использовать знакомую нам схему динамической загрузки, и, во-вторых, работать на так называемойвиртуальной памяти, при этом некоторые части программы могут временно отсутствовать в оперативной памяти, находясь в так называемом файле подкачки (swap file) на внешней памяти.2На ЭВМ первых поколений "обычным" пользователям разрешалось писать свои собственные процедурыобработчики прерываний, однако в операционных системах современных ЭВМ это, как правило, запрещено.Причина такого запрета будет понятна из нашего дальнейшего изложения мультипрограммного режима работыЭВМ.2ма Васи, или программа Пети (ну, или служебная программа операционной системы при обработкепрерывания).
Эта трудность преодолевается введением специального режима работы ЭВМ – режимаразделения времени, который является частным случаем мультипрограммного режима. В режимеразделения времени, используя сигналы прерывания от встроенных в компьютер часов (таймера),служебная процедура-диспетчер переключает центральный процессор с одной задачи пользователяна другую по истечении определённого кванта времени (обычно порядка единиц или десятков миллисекунд). В таком режиме разделения времени (в русскоязычной литературе этот режим иногдаметко называли коммунальным использованием ЭВМ) и у Васи, и у Пети создаётся иллюзия, чтотолько его программа всё время считается на компьютере (правда, почему-то медленно ☺).Оперативная памятьПрограмма ВасиПрограмма Пети...Программы операционной системыРис.
14.1. Одновременное нахождение в памятинескольких программ пользователей.На рис. 14.2 показана временная диаграмма переключения времени работы центрального процессора ЭВМ между находящимися в памяти программами.Программа ВасиПрограмма ПетиПрограмма ОСРис. 14.2. Диаграмма загрузки центрального процессора ЭВМЕсли отвлечься от несколько шутливого примера с Васей и Петей, то можно заметить, что потребность в таком псевдо-одновременном счёте нескольких программ на компьютере с одним центральным процессором весьма распространена. Пусть, например, наш компьютер предназначен дляуправления несколькими различными химическими реакторами на каком-нибудь заводе, или обслуживает запросы сразу многих абонентов в библиотеке и т.д.
Заметим, что даже если центральныхпроцессоров на компьютере несколько (наиболее широко сейчас распространены так называемыемногоядерные процессоры), но одновременно находящихся в памяти задач может быть много больше, чем процессоров, поэтому этот вопрос по-прежнему актуален.Другая причина широкого распространения мультипрограммного режима заключается в следующем. Наряду с главной частью – центральным процессором и оперативной памятью – в компьютере существует и большое количество так называемых периферийных (внешних) устройств, это диски, клавиатура, мышь, печатающие устройства, сетевые карты для работы с линиями связи и т.д.
(см.рис. 14.3). Все эти периферийные устройства предназначены для связи центральной части машины с"внешним миром", и работают значительно более медленно, чем центральный процессор и оперативная память. Имеется в виду, что все они значительно медленнее манипулируют данными. Например,за то время, за которое лазерный принтер напечатает на бумаге всего один символ, оперативная па-3мять способна выдать центральному процессору порядка нескольких миллионов байт, а сам центральный процессор способен за это время выполнить около одного миллиона команд.ОперативнаяПамятьЦентральныйпроцессорПечатьДискиДисплейКлавиатураМышьСетьРис. 14.3. Центральная и периферийная части компьютера.Из этих соображений, очевидно, что в то время, когда по запросу некоторой программы производится обмен данными с медленными внешними устройствами, центральный процессор, как правило,не сможет выполнять команды этой программы, т.е.
будет простаивать. Например, рассмотрим случай, когда в программе Васи, написанной на Паскале, выполняются операторы:Read(MyFile,X); Y:=X+1Очевидно, что оператор присваивания Y:=X+1 не сможет начать выполняться, пока из файла небудет прочитано значение переменной X. Вот здесь нам и пригодится способность программыдиспетчера переключаться на выполнение других программ пользователей, тоже расположенных воперативной памяти.
Теперь, пока одна программа пользователя выполняет свои команды на центральном процессоре, другая может выводить свои данные на принтер, третья – читать массив с диска в оперативную память, четвёртая – ждать ввода символа с клавиатуры и т.д. Правда, для того, чтобы обеспечить такую возможность, мало наличия на компьютере одной системы прерываний. Прежде всего, необходимо научить периферийные устройства компьютера работать параллельно и относительно независимо от центрального процессора. Действительно, вспомните, что в машине ФонНеймана всеми операциями с внешними устройствами управлял именно центральный процессор покомандам ввода/вывода, посылая им особые управляющие сигналы, которые мы изображали на схемеодинарными стрелками, и, естественно, занимаясь этой работой, у центрального процессора уже небыло возможности выполнять ещё и другие команды программы.Итак, мы обосновали полезность режима мультипрограммирования.