2. Введение
Операционная система (ОС) – системная программа, обеспечивающая управление всеми устройствами ЭВМ (процессор, память, диски и т. д.), а также реализующая интерфейс с пользователем. Первая ОС (operating system) появилась в 1957 г. Структурограмма развития ОС показана на рис. 1.

Рис. 1
3. УПРАВЛЕНИЕ ПРОЦЕССАМИ В ОПЕРАЦИОННЫХ СИСТЕМАХ
Основные понятия операционных систем: процесс, задача, работа, программа, ресурс, дисциплина распределения ресурса.
Процесс – минимальный программный объект, обладающий собственными системными ресурсами (запущенная программа).
Программа – последовательность команд процессору.
Задача – одна или несколько программ, связанных общим назначением, ресурсами.
Поток (минизадача, шаг, цепь, thread) – это последовательности команд процесса, которые выполняются независимо одна от другой и используют общие ресурсы одного процесса.
Работа – объединение процессов (задач), рассматриваемых как единое целое в операционной системе (проект).
Процесс, как любая деятельность по исполнению программы на процессоре, нуждается в управлении, которое заключается в переводе его из одного состояния в другое (рис.2):
1. Порождение – создание условий для реализации программы.
2. Готовность – имеются все ресурсы кроме процессора.
3. Активизация системы – реализация процесса.

4. Ожидание – ожидание всех ресурсов для развития процесса.
5. Окончание – высвобождение всех ресурсов.
Рис. 2
Процессор – любое устройство в составе ЭВМ, способное автоматически выполнять допустимые для него действия (процессоры, каналы и устройства, работающие с каналами, операторы). Реализация системы управления процессами в составе ОС предъявляет определенные требования к свойствам процессоров и их классификации.
3.1.1 Классификация процессов
1. По временным характеристикам различают интерактивные, пакетные процессы и процессы реального времени. Время существования интерактивного процесса определяется реакцией ЭВМ на запрос обслуживания. Процессы реального времени имеют гарантированное время окончания работы. Пакетные процессы запускаются один вслед за другим.
2. По генеалогическому признаку различают порождающие и порожденные процессы.
3. По результативности различают эквивалентные, тождественные и равные процессы. Все они имеют одинаковый конечный результат, но эквивалентные процессы могут реализовываться как на одном, так и на многих процессорах по одному или разным алгоритмам, то есть они имеют разные трассы, которые определяют порядок и длительность пребывания процесса в разных состояниях. Тождественные процессы реализуются по одной и той же программе, но имеют разные трассы. Одинаковые процессы реализуются по одной программе и имеют одинаковые трассы.
4. По времени развития процессы делятся на последовательные, параллельные и комбинированные (если есть точки, в которых существуют оба процесса, и точки, в которых существует только один процесс).
5. По месту развития - внутренние (реализуются на центральном процессоре) и внешние (реализуются на внешних процессорах).
6. По принадлежности к операционной системе - системные (исполняют программу из состава операционной системы) и пользовательские.
7. По связности различают процессы:
а) взаимосвязанные имеют какую–то связь (пространственно–временную, управляющую, информационную);
б) изолированные – слабо связанные;
в) информационно-независимые используют совместные ресурсы, но имеют собственные информационные базы;
г) взаимодействующие - имеют информационные связи и разделяют общие структуры данных;
д) взаимосвязанные по ресурсам;
е) конкурирующие.
8. Порядок взаимосвязи процессов определяется синхронизирующими правилами. Процессы могут находиться в отношении:
а) предшествования - один всегда находится в активном состоянии раньше, чем другой;
б) приоритетности - когда процесс может быть переведен в активное состояние только в том случае, если в состоянии готовности нет процессов с более высоким приоритетом, или процессор свободен, или на нем реализуется процесс с меньшим приоритетом;
в) взаимного исключения - в процессе используется общий критический ресурс, и процессы не могут развиваться одновременно: если один из них использует критический ресурс, то другой находится в состоянии ожидания.
3.1.2 Классификация операционных систем
1. По количеству пользователей: однопользовательские ОС (MS-DOS, Windows) и многопользовательские ОС (VM, UNIX).
2. По доступу: пакетные (MS-DOS), интерактивные (Windows, UNIX), системы реального времени (QNX, Neutrino).
3. По количеству решаемых задач: однозадачные ОС (MS-DOS) и многозадачные ОС (Windows, UNIX).
Ресурс – любой потребляемый (расходуемый) объект. По запасам ресурсы подразделяются на исчерпаемые и неисчерпаемые. Потребители – процессоры. Ресурс – средство вычислительной системы, которое может быть выделено процессу на определенный интервал времени.
3.1.3 Классификация ресурсов
1. По реальности: физические и виртуальные (только в отдельных свойствах схожие с физическими ресурсами).
2. По возможности расширения свойств: эластичные и жесткие (не допускающие виртуализации).
3. По степени активности: пассивные и активные (могут выполнять действия по отношению к другим ресурсам).
4. По времени существования: постоянные (доступны во все время процесса: и до, и после его работы) и временные.
5. По степени важности: основные и второстепенные (допускают альтернативное развитие процесса при их отсутствии).
6. По функциональной избыточности при распределении: дорогой, но предоставляемый быстро, и дешевый, но предоставляемый с ожиданием.
7. По структуре: простой (не содержит составных элементов) и составной. Они различаются числом состояний: простой может быть только в двух состояниях - доступен или занят.
8. По характеру использования распределяемых ресурсов: потребляемые и воспроизводимые ресурсы (допускают многократное использование и освобождение).
9. По характеру использования: последовательно и параллельно используемые (используются несколькими процессами).
10. По форме реализации: твердые (в принципе не допускают копирования) и мягкие (допускают тиражирование и подразделяются на программные и информационные ресурсы).
3.1.4 Дисциплины распределения ресурсов, используемые в операционных системах
Дисциплина распределения ресурса определяет порядок использования многими процессами того или иного ресурса, который в каждый момент времени может обслуживать только один процесс.
Операционную систему можно представить в виде определенного набора планировщиков процессов и распределителей ресурсов (мониторов-распределителей ресурсов, обеспечивающих виртуализацию при распределении эластичного ресурса) для обслуживания очередей процессов:
1. Процессор мультипрограммной ЭВМ по очереди предоставляется процессам.
2. Очереди существуют при обращении к каналам, внешним устройствам, наборам данных, модулям операционной системы.
Использование многими процессами того или иного ресурса, который в каждый момент времени может обслуживать лишь один процесс, осуществляется с помощью дисциплины распределения ресурса, представляющей собой набор правил распределения ресурсов.
Дисциплины распределения ресурсов подразделяются:
1) дисциплины планирования очередей к ресурсам, содержащие правила помещения процессов в очередь;
2) дисциплины обслуживания очередей, содержащие правила извлечения одного из процессов очереди с последующим предоставлением выбранному процессу выбранного ресурса для использования.
Основным конструктивным, согласующим элементом при реализации той или иной дисциплины диспетчеризации (распределения ресурсов) является очередь, в которую по определенным правилам заносятся и извлекаются запросы. На дисциплину формирования очередей влияют следующие факторы:
1. Информация о классах и приоритетах заданий и шагов заданий.
2. Информация о необходимости обращения к тем или иным устройствам, массивам данных (зафиксированных в операторах языка управления заданиями).
3. Соглашение о приоритете уровней запросов прерывания и прерывающих программ.
4. Соглашения в ВУ.
5. Используемые дисциплины обслуживания очередей.
Дисциплины формирования очередей разделяются на два класса: статический (приоритеты назначаются до выполнения задания) и динамический (приоритеты определяются в процессе выполнения пакета).
3.1.5 Типовые дисциплины обслуживания очередей
1. В порядке поступления: первый пришел – первый обслуживается (FIFO – First In First Out). Все заявки на обслуживание поступают в конец очереди. Первыми обслуживаются заявки, находящиеся в начале очереди (рис. 3).

Рис. 3
2. В порядке, обратном порядку поступления: последний пришел - первый обслуживается (LIFO - Last In First Out). Является основой для построения стековой памяти (рис. 4).

Рис. 4
3. Круговой циклический алгоритм. Строится на основе FIFO, но время обслуживания каждого процесса ограничено и определяется квантом времени. Если запрос на использование ресурса из начала очереди обслуживается до конца за квант времени (время выполнения программы), то он покидает очередь. Если этот запрос не успевает обслужиться до конца, то его обслуживание прерывается и он поступает в конец очереди (рис.5).

Рис. 5
Используется для организации режима разделения времени. В такой дисциплине короткие запросы обслуживаются быстрее, то есть имеют меньшее среднее время ожидания в системе, чем длинные запросы. Степень благоприятствования коротким запросам тем больше, чем меньше длительность кванта мультиплексирования, чем ближе она к длительности интервала номинального использования ресурса процессом. Однако уменьшение длительности кванта ведет к увеличению накладных расходов, необходимых для обработки прерываний и перераспределения ресурса. Возрастание частоты прерываний может неблагоприятно сказаться на обработке длинных запросов.
4. Многоочередная дисциплина обслуживания. Здесь организуется N очередей. Все новые запросы поступают в конец первой очереди. Первый запрос из очереди i поступает на обслуживание лишь тогда, когда все очереди от 1 до
(i-1) пустые. На обслуживание выделяется квант времени tk. Если за это время обслуживание запроса завершается полностью, то он покидает систему. В противном случае недообслуженный запрос поступает в конец очереди (i+1)
(рис. 6).

Рис. 6.
После обслуживания из очереди i система выбирает для обслуживания запрос из непустой очереди с самым младшим номером. Таким запросом может быть следующий запрос из очереди i или из очереди i+1 (при условии, что после обслуживания запроса из очереди i последняя оказалась пустой). Новый запрос поступает в первую очередь (i=1). В такой ситуации после окончания времени tk, выделенного для обслуживания запроса из очереди i, будет начато обслуживание запроса первой очереди. Если система выходит на обслуживание заявок из очереди N, то они обслуживаются либо по дисциплине FIFO (каждая заявка обслуживается до конца), либо по циклическому алгоритму. Данная система наиболее быстро обслуживает все короткие по времени обслуживания запросы. Недостаток системы заключается в затратах времени на перемещение запросов из одной очереди в другую.
5. Приоритетная многоочередная дисциплина обслуживания. Вновь поступающие в систему запросы устанавливает не обязательно в первую очередь, а в очередь в соответствии с имеющимися приоритетами, которые определяются параметрами обслуживания процессов. Приоритетные многоочередные дисциплины обслуживания могут использовать обслуживание с абсолютным и относительным приоритетом. При обслуживании с абсолютным приоритетом приоритет определяется номером очереди, и первыми обслуживаются запросы, обладающие наивысшим приоритетом (из очереди с меньшим номером - запрос из очереди i-1 будет прерывать обработку запроса из очереди i) (рис. 7).

Рис. 7
В данной дисциплине еще более увеличивается степень дискриминации по среднему времени ожидания в очереди между высоко - и низкоприоритетными запросами. Время ожидания высокоприоритетных заявок сокращается, но за счет большей задержки в обслуживании низкоприоритетных заявок. Достигается это за счет усложнения логики системы, дополнительной обработки запросов и выбора правила дообслуживания прерываемых процессов. Обслуживание с относительным приоритетом не вызывает прерывания обслуживаемой заявки до ее завершения, даже если она менее приоритетная.
Принята двухуровневая схема управления процессами: долгосрочное и краткосрочное планирование использования центрального процессора для развития в нем процесса. Например, в OS/360 долговременный планировщик называется планировщиком заданий, а краткосрочный – супервизором задач.
На уровень долгосрочного планирования выносятся редкие системные действия, требующие больших затрат системных ресурсов, на уровень краткосрочного планирования – частые и более короткие процессы. На каждом уровне существует свой объект и собственные средства управления им.
На уровне долгосрочного планирования объектом является не отдельный процесс, а некоторое объединение процессов по функциональному назначению, которое называется работой (приложением). Каждая работа рассматривается как независимая от других работ деятельность, связанная с использованием одной или многих программ и характеризующаяся конечностью и определенностью. По мере порождения новых работ создается собственная виртуальная машина для их выполнения. Например, в ОС Windows 95 для каждого 32-разрядного приложения реализуется своя виртуальная машина. Распределение машин производится однократно в отличие от краткосрочного планирования, где процессор процессу может выделяться многократно.
На уровне краткосрочного планирования объектом управления являются процессы, которые выступают как потребители центрального процессора для внутренних процессов или внешнего процессора для внешних процессов.
Свойства краткосрочного планирования.
1. Причинами порождения процесса могут быть процессы на том же уровне или сигналы, посылаемые от долгосрочного планировщика.
2. Выделение процессора процессу производится многократно, с целью достижения эффекта мультипрограммирования, и такой процесс называется диспетчеризацией.
3.2.1 Уровень долгосрочного планирования
Любая работа может рассматриваться как совокупность состояний по исполнению программы работ на выделенной ей виртуальной машине.
В состоянии порождения планировщик создает требуемую виртуальную машину. Требование выражается на используемом командном языке. Создание виртуальной машины заключается в следующем:
1. Резервируются все ресурсы, указанные в задании (объем памяти, доступ к данным и т. п.).
2. Резервируется память для размещения программы.
3. Заводится специальная структура данных, которая является дескриптором (описателем) работы.
Состояние готовность для исполнения работы характеризуется тем, что доступны все ресурсы, исключая виртуальный процессор. Механизмы виртуального процессора реализуются на уровне краткосрочного планирования.
Окончание реализуется под управлением верхнего планировщика и заключается в сумме системных затрат на реализацию, передачу результатов на указанные выходные устройства.
Основу долгосрочного планирования составляет языковой процессор, который осуществляет ввод программы работы, написанной на специальном языке. Существуют два принципа реализации языкового процессора: компилятивный - с преобразованием программы работ с входного языка во внутреннее представление и интерпретационный - с реализацией диалогового взаимодействия пользователя с системой.
3.2.2 Уровень краткосрочного планирования
Объектом управления являются процессы, а не их объединения. Причины порождения процессов определяются как внутренние, так и исходящие с уровня долгосрочного планирования. Распределение одного процессора для многих процессов называется диспетчеризацией. Процесс – совокупность отдельных состояний, следовательно, механизм диспетчера предусматривает перевод процесса из одного состояния в другое.
Порождение. Для реализации порожденного процесса выполняются следующие действия:
1. в результате интерпретации определяется имя процесса или программы;
2. обеспечивается доступ к необходимым ресурсам;
3. создается дескриптор процесса, который представляет собой специальную структуру данных, отражающую состояние процесса, по которой отслеживается переход процесса из одного состояния в другое;
4. программе передается список параметров, указатель диспетчерского приоритета, который будет присвоен процессу и информация о распределении памяти.
Окончание. Реализуется в ответ на требования нормального или аварийного завершения программы. При этом делаются обратные действия:
- результаты процесса передаются потребителю;
- освобождаются ресурсы;
- подсчитываются системные затраты;
- уничтожается дескриптор.
Переход процесса в другое состояние выполняется под управлением диспетчера. Во всех случаях процесс остается пассивным объектом, за исключением активного состояния. При переводе процесса из активного в другое состояние по инициативе диспетчера реализуется механизм, похожий на обработку прерываний. При этом сохраняется информация о программе и ресурсах, но вносятся изменения в дескриптор процесса, изменяется адрес ссылки, определяющий перемещение процесса из одной очереди в другую. Перевод процесса в активное состояние осуществляет диспетчер путем выбора из очереди процессов, находящихся в состоянии готовности. При этом модифицируется дескриптор процессов и осуществляется передача управления программе процесса. Общая схема управления процессом изображена на рис.8.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 |



