Научная литература
booksshare.net -> Добавить материал -> Математика -> Боглаев Ю.П. -> "Вычислительная математика и программирование " -> 47

Вычислительная математика и программирование - Боглаев Ю.П.

Боглаев Ю.П. Вычислительная математика и программирование — Высшая школа, 1990. — 546 c.
ISBN 5-06-00623-9
Скачать (прямая ссылка): vychmatiprog1990.djvu
Предыдущая << 1 .. 41 42 43 44 45 46 < 47 > 48 49 50 51 52 53 .. 168 >> Следующая

Изложение ведется на уровне общих понятий, для изучения деталей можно обратиться к специальной литературе [12, 14].
4.2.2. Управление памятью. Оперативная память—это тот ресурс ЭВМ, без которого нельзя выполнить программу. В любой момент времени, за исключением нескольких, все ячейки не используются. Они служат для хранения данных и программ одного или нескольких пользователей. Программы, которые ожидают выделения оперативной памяти, расположены во внешней памяти (например, на дисках). Часть оперативной памяти занята ядром ОС. Ядро ОС—набор управляющих программ, постоянно расположенных в оперативной памяти и обеспечивающих функционирование ОС.
Существует несколько стратегий распределения памяти, являющихся важной характеристикой ОС. Мы рассмотрим одну из наиболее простых стратегий, а именно распределение разделами с фиксированными границами.
Пусть вся оперативная память содержит 256 К байт, ядро ОС занимает 32 К. Тогда можно оставшуюся часть памяти разбить, например, на четыре раздела (рис. 4.4), которые содержат: 1 раздел— 32 К, 2—4 раздела — 64 К. С каждым разделом связывается очередь задач, которые соответствуют по размеру памяти раздела. Затем специальная программа—загрузчик—считывает программу задачи, программы библиотеки, необходимые для нее, и настраивает (устанавливает физические адреса) на раздел выполнения.
Программа, подлежащая загрузке и настройке, как раз и есть программа в объектном коде, которая получается в результате работы транслятора.
Режим работы, при котором в оперативной памяти может находиться несколько программ, называется мулыпипрограммирова-
137
ЯДРО ОС РАЗДЕЛ 1
РАЗДЕЛ 2 РАЗДЕЛ 3 РАЗДЕЛ 4
БИБЛИОТЕКА » ПОДПРОГРАММ
Рис. 4.4
тем. Основная цель мультипрограммирования—максимально загрузить процессор. Действительно, если некоторая программа перейдет в неактивное состояние (например, ждет ввода), то в памяти всегда есть программа, готовая к выполнению, а следовательно, процессор будет хорошо загружен.
Важной проблемой мультипрограммирования является защита системных программ, а также программ пользователей в своих разделах от возможных обращений к ним из соседних разделов, что приводит к щорче программ и данных. Некоторые виды защиты реализуются аппаратно, некоторые выполняет ОС. Например, если из программы произойдет обращение к элементу массива, который при расчете его адреса оказывается в соседнем разделе, то ОС аварийно прерывает вычисления и выдает соответствующее сообщение.
4.2.3. Управление процессором. Процессор—ресурс ЭВМ, без которого нельзя выполнить программу. Выполнение программы называется процессом. Мультипрограммное использование одного процессора может создать иллюзию, что каждый процесс использует процессор независимо от остальных. Эту иллюзию создают программы управления процессором ОС, а именно: планировщик задач; диспетчер.
Планировщик выбирает из очереди задач программу и создает процесс, готовый к выполнению: выделяется оперативная память, внешняя память, файлы. Затем диспетчер управляет очередями готовых к выполнению процессов, выполняющегося процесса (только один) и заблокированных процессов, которые находятся в ожидании некоторого события (например, ввода или вывода). Наконец, планировщик завершает процесс после его полного выполнения.
Существуют различные процедуры организации работы диспетчера. Рассмотрим сравнительно простую и популярную цикличес-
138
кую процедуру. В ней каждому процессу по очереди выделяется одинаковый квант времени А г (0,1 — 1с), в конце которого, если процесс не завершился и не заблокирован, он снимается с процессора и ставится в конец очереди. В конец очереди ставятся появившиеся готовые и разблокированные процессы. Существенно влияет на управление очередью квант времени А г и смесь процессов (короткие или длинные по времени выполнения).
Для совместного функционирования диспетчера, выполняющегося процесса и ввода — вывода в ОС организуются прерывания. Прерывание—это передача управления из выполняемого процесса на процесс обработки прерываний. Прерывание происходит по сигналу от таймера, когда истек квант времени А/ или по сигналу, что ввод—вывод завершен; это внешние прерывания. Прерывание может происходить из-за переполнения, деления на нуль, обращения к запрещенным ячейкам памяти т. п.
В момент прерывания аппаратура ЭВМ выполняет следующие действия:
1) в некоторую ячейку памяти заносится характеристика прерывания;
2) запоминается состояние прерванного процесса;
3) в счетчик команд заносится адрес, характерный для типа прерывания.
Затем выполняется программа обработки прерываний ОС, а также действия, соответствующие конкретному прерыванию, и возобновляется нормальная работа. В зависимости от типа прерываний процесс может быть продолжен, либо заблокирован, либо поставлен в конец очереди.
4.2.4. Управление устройствами. Управление работой устройств ЭВМ (алфавитно-цифровой дисплей, графический дисплей, магнитофон, АЦПУ и т. п.) осуществляется путем передачи им управляющих сигналов. Многие из устройств—электромеханические, не электронные и поэтому работают значительно медленнее, чем процессор, и, кроме того, асинхронно с ним. Эта несогласованность приводит к тому, что некоторое время процессор и устройство могут не быть в состоянии готовности обмениваться информацией. Операционная система должна сохранить в оперативной памяти данные, переданные процессором или устройством, но еще не полученные устройством или процессором. Такие области памяти называются буферами.
Предыдущая << 1 .. 41 42 43 44 45 46 < 47 > 48 49 50 51 52 53 .. 168 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed