Файл: операционные системы для заочного отделения.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 17.06.2021

Просмотров: 1083

Скачиваний: 5

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Тема 1. История развития операционных систем. Типы операционных систем.

1.1 Определение операционной системы

1. 2 История развития операционных систем

Тема 2. Основные характеристики и принципы построения операционных систем.

Основные характеристики ОС

Принципы построения ОС

Тема 3. Общая структура программного  обеспечения и операционных систем ЭВМ

Структура ОС.

Управление процессами

Управление основной памятью

Управление внешней памятью

Подсистема управления устройствами ввода/вывода

Подсистема управления файлами

Защита системы

Сетевое обеспечение

Командный интерфейс системы

Сервисы операционных систем

Особенности методов построения

Тема 4. Диаграмма перехода процесса

Основные состояния процесса:

Дополнительные состояния процесса:

Операции над процессами

Основная концепция обработки прерываний

Тема 5. Контекст процесса и переключение контекста

Переключения контекста в EC ЭВМ

Тема 6. Синхронизация и кооперация процессов

Тема 7. Тупики: условия возникновения тупиков, предотвращения тупиков

Тема 8. Управление реальной  памятью

Тема 9. Понятие виртуальной памяти

Тема 10. Страничная организация. Сегментная организация. Странично-сегментная организация. Двухуровневая страничная организация

Тема 11. Управление процессорами и заданиями в однопроцессорном вычислительном комплексе. Алгоритмы планирования процессов

Тема 12. Управление процессорами и заданиями в мультипроцессорном вычислительном комплексе

Тема 13. Управление периферийными устройствами. Эволюция систем ввода-вывода, каналы ввода вывода. Регистры и команды ввода вывода.

Тема 15. Способы доступа и организации файлов. Распределение файлов на диске

Тема 16. Требования и тенденции построения ОС

Тема 17. UNIX и MS Windows NT

Модуль 3. Управление процессами

Тема 4. Диаграмма перехода процесса

Основные состояния процесса

Дополнительные состояния процесса

Операции над процессами

Основная концепция обработки прерываний

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

  1. представление процессов в ОС посредством блоков управления процессами;

  2. создание и уничтожение процессов;

  3. обработка прерываний и переключение процессов из состояния в состояние;

  4. синхронизация и организация взаимодействия между асинхронными и параллельными процессами.

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

Основные состояния процесса:

  1. Состояние активности, когда процесс обладает всеми необходимыми ресурсами и непосредственно выполняется процессором.

  2. Состояние готовности, когда процесс имеет все требуемые для него ресурсы, он готов выполняться, однако процессор занят выполнением другого процесса.

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

Дополнительные состояния процесса:

  1. Приостановка готовности, когда процесс готов, но задержан и не конкурирует за ЦП.

  2. Приостановка блокировки, когда процесс блокирован и задержан. То есть также не будет конкурировать за ЦП.

Дополнительные состояния процессов кратковременны и обычно используются в ОС РВ (реального времени при перегрузках ЦП.

В однопроцессорных ЭВМ в каждый момент времени может выполняться только один процесс и поэтому, когда один процесс активен, то несколько процессов могут находиться в других состояниях, т.е. находятся в соответствующих очередях (готовности, блокировки и др.).

 

Рисунок 1.  Диаграмма переходов процесса

Очередью называется упорядоченный по приоритетам список процессов, ожидающих доступ к некоторому вычислительному ресурсу.

В ходе жизненного цикла каждый процесс переходит из одного состояния в другое в соответствии с алгоритмом планирования процессов, реализуемым в данной операционной системе. Диаграмма переходов процесса представлена на рисунке 1.


  1. Когда в ОС поступает задание на обслуживание, создается процесс, который устанавливается в очередь готовых процессов.

  2. Процесс постепенно продвигается в очереди и, когда очередь подходит при освобождении ЦП, процесс переходит в состояние активности. Предоставление ЦП процесса называется запуском или выбором процесса для выполнения. Эту функцию выполняет системная программа, называющаяся диспетчером.

  3. Процесс, получивший ЦП, выполняется. Для предотвращения случайного, либо умышленного монопольного захвата ресурсов ЭВМ каким-либо процессом устанавливается временной интервал, называющийся квантом времени, в течение которого процессу разрешено занимать ЦП. Этот интервал устанавливается аппаратным таймером прерываний. По истечении кванта времени диспетчер возвращает процесс в состояние готовности и выбирает следующий готовый процесс.

  4. Если выполняемый процесс до истечения кванта запрашивает какое-либо внешнее событие (обычно ввод/вывод), то добровольно освобождает ЦП, переводится в очередь блокировки до наступления события, безвозвратно теряет остаток кванта.

  5. При наступлении события (завершении операции ввода/вывода) процесс переводится в состояние готовности.

Операции приостановки и возобновления играют важную роль в ОС РВ и используются в следующих случаях:

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

  • при ненадежной работе системы и возможном ее отказе;

  • когда промежуточные результаты работы процесса вызывают сомнение в правильности работы программы.

При приостановке процесс обязательно освобождает ОП, его копия сбрасывается на диск, в специальный свопинг файл (swaping). Также могут быть освобождены и другие ресурсы.

  1. В активном состоянии инициатором приостановки в однопроцессорной системе может быть сам процесс, а в мультипроцессорной – и другие процессы. В остальных состояниях – другие процессы (внешние события).

  2. Возобновление (или активизация) процесса это операция подготовки процесса к повторному запуску с точки приостановки.

  1. По завершении выполнения задания процесс уничтожается.

Все смены состояний происходят по прерываниям.

Прерывание – это событие/сигнал, привлекающий внимание ЦП и заставляющий его изменить текущий порядок исполнения команд процесса. Существуют аппаратные и программные прерывания.

Аппаратные прерывания инициируются аппаратурой (например, сигнал микросхемы таймера в IBM PC вырабатывается 18.2 раза в секунду), сигналом принтера, нажатием клавиш клавиатуры и многими другими причинами.

Программные прерывания инициируются процессом и на самом деле ничего не прерывают. Это обычные процедуры, которые используются программами для выполнения стандартной рутиной работы. Однако, эти программы содержатся в ОС, и механизм прерываний дает возможность обратиться к ним из программ пользователей. Программные прерывания могут выдаваться внутри друг друга (быть вложенными). Например, аппаратные прерывания могут возникнуть при выполнении программных прерываний. Когда разрешенное прерывание вызывается, то ЦП оставляет свою работу, выполняет прерывание, а затем возвращается в место прерывания. Управляет прерываниями обработчик прерываний (Interrupt Handler).


Операции над процессами

В соответствии с жизненным циклом процесса его выполнение может быть многократно прервано и продолжено. Для того, чтобы возобновить выполнение процесса, необходимо восстановить состояние его операционной среды. Состояние операционной среды отображается состоянием регистров и программного счетчика, режимом работы процессора, указателями на открытые файлы, информацией о незавершенных операциях ввода-вывода, кодами ошибок выполняемых данным процессом системных вызовов и т.д. Эта информация называется контекстом процесса.

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

Дескриптор процесса по сравнению с контекстом содержит более оперативную информацию, которая должна быть легко доступна подсистеме планирования процессов. Контекст процесса содержит менее актуальную информацию и используется операционной системой только после того, как принято решение о возобновлении прерванного процесса.

Очереди процессов представляют собой дескрипторы отдельных процессов, объединенные в списки. Таким образом, каждый дескриптор, кроме всего прочего, содержит, по крайней мере, один указатель на другой дескриптор, соседствующий с ним в очереди. Такая организация очередей позволяет легко их переупорядочивать, включать и исключать процессы, переводить процессы из одного состояния в другое.

В этой связи подсистема Управление процессом должна выполнять следующие операции над процессами:

  1. Создание.

  2. .Уничтожение.

  3. Запуск.

  4. Блокировка.

  5. Приостановка.

  6. Возобновление, а также

  7. Изменение диспетчерского приоритета процесса (работа с очередями).

Создание состоит из многих этапов:

  • присвоение идентификатора процессу;

  • включение его в список активных процессов, известных системе;

  • формирование блока управления процессом;

  • выделение процессу начальных ресурсов.

В общем случае существующий процесс может породить новый процесс и имеет место иерархическая структура процессов. Задача может порождать подзадачу в мультипрограммном режиме, и, в этом смысле, мы имеем родительский и дочерний процессы.

Уничтожение процесса означает удаление его из системы. Ресурсы возвращаются системе, имя процесса удаляется из списка, блок управления процессом освобождается.

Блок управления процессом (Program Control Block – PCB) является центральным объектом в ОС, который определяет процесс и содержит всю необходимую информацию о процессе.


PCB содержит определенные сведения.

  1. Текущее состояние процесса (Program Status Word - PSW).(Всего 5 состояний)

  2. Уникальный идентификатор процесса.

  3. Приоритет.

  4. Указатели памяти процесса.

  5. Указатели выданных процессу ресурсов.

  6. Область сохранения регистров.

Когда ОС переключает ЦП с процесса на процесс, используется область сохранения регистров в PSB, чтобы запомнить информацию, необходимую для возобновления процесса, когда он снова получит ЦП.

Обработка прерываний состоит в следующем:

  1. При возникновении прерывания, управление передается в ОС.

  2. ОС запоминает состояние прерванного процесса, обычно в PCB прерванного процесса.

  3. ОС анализирует тип прерывания и передает управление соответствующему обработчику прерываний.

  4. После обработки прерывания ОС либо продолжает выполнять прерванный процесс, либо запускает готовый процесс с наивысшим приоритетом.

Основная концепция обработки прерываний

В различных ЭВМ существует различный набор типов прерываний, которые можно разделить на 6 классов.

  1. Программы-прерывания по системной директиве. Инициатор – активный процесс, выполнивший команду SVC (обращение к супервизору), то есть запрос на предоставление ОС какой-либо системной вычислительной услуги.

  2. Прерывания ввода-вывода. Инициируются устройством ввода/вывода (УВВ) и сигнализируют ЦП о том, что произошло изменение состояния канала ввода-вывода (КВВ) или УВВ (например: завершение операции, ошибка, переход устройства в состояние готовности).

  3. Внешние прерывания. Причинами их является нажатие операторами клавиш на панели ЭВМ или прием сигнала прерывания от другого ЦП в мультипроцессорной системе, сигнала от модема.

  4. Прерывание по рестарту. Нажатие оператором на панели управления кнопки рестарта или Reset.

  5. Логические прерывания по контролю программы вызываются программными ошибками, обнаруженными при выполнении программы (деление на ноль, попытка выполнить привилегированную команду в пользовательском режиме, неверный код операции, защита памяти и т.д.).

  6. Прерывания по контролю машины вызываются аппаратными ошибками.

Планирование процессов включает в себя решение следующих задач:

  1. определение момента времени для смены выполняемого процесса;

  2. выбор процесса на выполнение из очереди готовых процессов;

  3. переключение контекстов "старого" и "нового" процессов.

Первые две задачи решаются программными средствами и будут рассмотрены в следующих разделах, а последняя выполняется, как правило, аппаратно.


Модуль 3. Управление процессами

Тема 5. Контекст процесса и переключение контекста

Переключения контекста в EC ЭВМ

В основе процедуры переключения контекста лежит использование Program Status Word (PSW) или Слова Состояния Процесса (CCП) - это аппаратный регистр ЭВМ, который управляет работой активного процесса и содержит следующие данные:

  • текущее состояние ЦП (счет, ожидание);

  • ключ защиты памяти процесса;

  • адрес следующей команды процесса;

  • код прерывания процесса;

  • маска прерываний (код возможных прерываний);

  • признак результата выполненной команды.

Маска прерываний используется для запрещения определенных видов прерываний, когда осуществляется обработка текущего прерывания. Типы прерываний упорядочены по приоритетам. Определенный тип прерываний запрещает свой тип и младшие и разрешает старшие. ЦП реагирует только на разрешенные прерывания, обработка запрещенных прерываний либо задерживается, либо, в некоторых случаях, игнорируется.

В ЭВМ типа ЕС для работы с прерываниями используются 3 типа ССП, размещенных в фиксированных ячейках ОП.

  1. Текущее ССП.

  2. Шесть новых ССП.

  3. Шесть старых ССП.

Новое ССП для данного типа прерываний содержит постоянный адрес, по которому размещается обработчик прерываний данного типа.

Когда происходит разрешенное прерывание, происходит автоматическое переключение ССП следующим образом:

  1. Текущее ССП становится старым для прерывания соответствующего типа.

  2. Новое ССП становится текущим. Таким образом, управление передается обработчику прерываний, который выполняет обработку.

  3. Восстанавливается текущее ССП прерванного процесса

Рисунок 1. Переключение контекста.

Аналогичная процедура происходит в MS DOS. С нулевого адреса ОП располагается таблица векторов прерываний.

Область векторных прерываний охватывает адреса от 0 до 3FFh в шестнадцатеричном исчислении. Каждый 4-х байтный участок этой области содержит адрес первой команды подпрограммы обработки прерываний (вектор прерываний), которая должна вызываться при возникновении прерывания конкретного типа.

Объем памяти векторов прерываний 256*4=1024 байт.

При возникновении прерываний ОС выполняет следующую последовательность операций:

  1. Запоминает адрес текущей команды из регистров CS:IP в стеке вместе с регистром флагов (состояний).

  2. Загружает в CS:IP адрес обработчика прерываний.

  3. Обработчик прерываний завершается командой IRET (возврат управления), которая восстанавливает из стека содержимое СS:IP и регистр флагов состояния, структура которого приведена на рисунке 2.

Рисунок 2. Таблица вектора прерываний

Для работы с прерываниями используются следующие команды микропроцессора:

Sti - set interrupt (I=1, разрешить прерывание)

Cli - clear interrupt (I=0, запретить прерывание)

Если за командой CLI не следует STI, то машина “зависает”, так как клавиатура не реагирует на нажатие клавиш. Для программирования прерываний используется IMR - регистр маски прерываний.