Chapter_14 (1110566)
Текст из файла
Глава 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. Вот здесь нам и пригодится способность программыдиспетчера переключаться на выполнение других программ пользователей, тоже расположенных воперативной памяти.
Теперь, пока одна программа пользователя выполняет свои команды на центральном процессоре, другая может выводить свои данные на принтер, третья – читать массив с диска в оперативную память, четвёртая – ждать ввода символа с клавиатуры и т.д. Правда, для того, чтобы обеспечить такую возможность, мало наличия на компьютере одной системы прерываний. Прежде всего, необходимо научить периферийные устройства компьютера работать параллельно и относительно независимо от центрального процессора. Действительно, вспомните, что в машине ФонНеймана всеми операциями с внешними устройствами управлял именно центральный процессор покомандам ввода/вывода, посылая им особые управляющие сигналы, которые мы изображали на схемеодинарными стрелками, и, естественно, занимаясь этой работой, у центрального процессора уже небыло возможности выполнять ещё и другие команды программы.Итак, мы обосновали полезность режима мультипрограммирования.
Как уже говорилось, на первых ЭВМ этого режима работы не было. Сейчас мы сформулируем необходимые требования, которые предъявляются к аппаратуре компьютера, чтобы на этом компьютере было возможно реализовать мультипрограммный режим работы.Сначала заметим, что требование параллельной работы центрального процессора и периферийных устройств не является совершенно необходимым для режима разделения времени, который, какмы уже говорили, является частным случаем мультипрограммного режима работы. Поэтому мы небудем включать это требование в перечень обязательных свойств аппаратуры ЭВМ для обеспечения работы в мультипрограммном режиме. Скажем, однако, что параллельная работа периферийныхустройств и центрального процессора сильно повышает производительность компьютера и реализована практически на всех современных ЭВМ и на всех больших и супер-ЭВМ.14.1.
Требования к аппаратуре для обеспечения возможности работы вмультипрограммном режимеИтак, сформулируем необходимые требования к аппаратуре ЭВМ для обеспечения возможностимультипрограммной работы. Особо подчеркнём, что это требования именно к аппаратуре ЭВМ, а нек программному обеспечению.14.1.1. Система прерыванийСистема прерываний необходима как для режима разделения времени, так и для обеспечения параллельной работы центрального процессора и периферийных устройств, так как она обеспечиваетсаму возможность реакции на события и автоматического переключения с одной программы на другую.414.1.2.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.