Преподаватель
Спонсор: Microsoft
Опубликован: 13.11.2010 | Уровень: для всех | Доступ: свободно
Лекция 2:

История ОС. Отечественные ОС. Диалекты UNIX. Режимы пакетной обработки, мультипрограммирования, разделения времени

< Лекция 1 || Лекция 2: 1234 || Лекция 3 >

ОС пакетной обработки с поддержкой мультипрограммирования

Более развитые операционные системы поддерживают режим мультипрограммирования – одновременной обработки и размещении в памяти сразу нескольких пользовательских заданий. Распределение памяти в такой системе изображено на рис. 2.2.

Распределение памяти в системе пакетной обработки с поддержкой мультипрограммирования

Рис. 2.2. Распределение памяти в системе пакетной обработки с поддержкой мультипрограммирования

В такой системе ОС занимает по-прежнему смежную область памяти по меньшим адресам, однако вслед за областью ОС размещаются несколько смежных областей памяти, занимаемых пользовательскими программами. Их число и размеры могут меняться.

Особенности ОС с поддержкой мультипрограммирования следующие.

Использование программ ввода-вывода, поддерживаемых операционной системой. При однозадачном режиме (см. предыдущий параграф) подобной необходимости не возникало: каждое очередное задание получало в полное распоряжение все ресурсы компьютера, в том числе – устройства ввода-вывода. При выполнении последнего процессор простаивал. В мультипрограммном режиме уже возникает потребность в реализации специальных подпрограмм для ввода-вывода, которые могли бы вызываться пользователем или операционной системой в необходимых случаях. Вызов в одной из пользовательских программ подпрограммы ввода-вывода означает для ОС возможность во время его выполнения предоставить процессор другому пользовательскому заданию.

Управление памятью. Поскольку заданий в памяти может быть несколько, причем число и размеры их областей могут меняться, перед операционной системой возникает задача распределения памяти для пользовательских заданий – выделения памяти для загружаемого пользовательского задания и ее освобождения после завершения каждого задания. При решении этой классической задачи возникает целый ряд проблем: хранение списков свободной и занятой памяти, реализация оптимального алгоритма поиска и выделения свободной области памяти, реализация освобождения памяти, фрагментация - дробление свободной памяти на мелкие участки, вследствие неточного совпадения размеров свободных и требуемых участков памяти и др. Все эти проблемы и общепринятые алгоритмы их решения подробно описаны в классической монографии Д. Кнута [ 15 ] и будут рассмотрены подробно в курсе.

Планирование загрузки процессора (CPU scheduling) – реализация в ОС алгоритмов выбора очередного задания из набора загруженных в память заданий и выделения кванта времени центрального процессора очередному выбранному заданию. В отличие от однозадачного режима, в режиме мультипрограммирования операционная система, таким образом, в определенные моменты времени должна сделать выбор, какое из нескольких загруженных в память заданий запустить. Алгоритмы планирования и диспетчеризации процессов подробно рассмотрены ниже в данном курсе.

Управление внешними устройствами и буферизация ввода-вывода. В однозадачном режиме загруженная в память пользовательская программа для вывода на печать могла выполнить специальную машинную команду, которая выводила на устройство печати очередную строчку, что не вызывало проблем и не приводило к какой-либо путанице, вследствие монопольности "владения" компьютером очередным заданием. Однако в мультипрограммном режиме ситуация иная. Если сохранить тот же режим вывода на печать, то на печатающее устройство могут быть выведены фрагменты, принадлежащие разным заданиям, что недопустимо. Для группировки и отделения выводимой информации различных заданий друг от друга в мультипрограммной ОС используется буферизация вывода (spooling) – хранение для каждого задания буфера его вывода (в виде области памяти или файла), накопление в буфере выводимой заданием информации и ее вывод полностью на устройство (принтер) при завершении задания.

Режим разделения времени и особенности ОС с режимом разделения времени

Когда в составе компьютерных систем появились терминалы (вначале телетайпы, затем дисплеи), возникла необходимость реализации в ОС режима разделения времени ( time sharing ) – возможности одновременной работы пользователей со своими заданиями с терминалов, ввода заданий в систему, их запуска (при наличии свободного процессора), управления заданиями с терминала, их приостановки, отладки, визуализации на терминале их результатов. Рассмотрим особенности ОС с режимом разделения времени.

Хранение заданий в памяти или на диске.Ресурсы процессора в ОС с разделением времени распределены между несколькими заданиями, находящимися в памяти или на диске. Задание загружается в память (при наличии свободной памяти), если оно является пакетным и выбрано операционной системой для выполнения, либо если оно активируется пользователем с терминала. Процессор выделяется только тем заданиям, которые находятся в памяти.

Откачка и подкачка (swapping) - загрузка заданий с диска в память и их выгрузка из памяти на диск. В системе с разделением времени возможна ситуация, когда какое-либо задание, управляемое с терминала, неактивно (например, выполняет ввод-вывод, либо система ожидает ответа от пользователя, у которого в данный момент перерыв в работе). В этом случае ОС может принять решение о временной выгрузке (swap out) образа памяти задания из оперативной памяти на диск, с целью освобождения памяти для других заданий. При повторной активизации задания оно (при возможности) вновь загружается в память ( swapped in ). Подобная стратегия называется откачкой и подкачкой.

Поддержка диалогового взаимодействия между пользователем и системой. Когда ОС завершает исполнение пользовательской команды, она выполняет поиск следующего управляющего оператора (control statement),введенного с пользовательской клавиатуры.

Предоставление диалогового доступа к данным и коду пользовательской программы. В ОС с разделением времени обеспечивается возможность для пользователя ввода, запуска, редактирования, отладки своей программы с терминала, управления своим заданием (приостановки, с последующим возобновлением), просмотра его промежуточных результатов, состояния памяти и регистров, просмотра окончательных результатов на терминале при завершении задания.

Следует учитывать, что в ОС с разделением времени обрабатываются как пакетные, так и интерактивные (диалоговые) задания, поэтому система должна обеспечивать их диспетчеризацию – переключение в нужный момент с диалогового задания на пакетное, либо с одного диалогового (пакетного) задания на другое.

Режим разделения времени, наряду с пакетным режимом, был основным в операционных системах 1960-х – 1970х- гг.

< Лекция 1 || Лекция 2: 1234 || Лекция 3 >
Гульжан Мурсакимова
Гульжан Мурсакимова
На каком этапе графического конвейера происходит отсечение невидимых объектов?
Василий Четвертаков
Василий Четвертаков
Почему следует исключить race condition?
Айрат Хисматуллин
Айрат Хисматуллин
Россия
Дмитрий Карпов
Дмитрий Карпов
Россия, Нижний Новгород