Архитектура ОС. Управление процессами: Основные понятия. Семафоры и мониторы
Ключевые термины
Race condition - несогласованный доступ из параллельных процессов к общим данным.
Атомарная (atomic) операция – операция, такая, что, если один из параллельных процессов начал ее выполнять, никакой другой процесс до ее завершения не может также начать выполнять эту же операцию над теми же данными.
Графическая оболочка – подсистема ОС, реализующая графический пользовательский интерфейс пользователей и системных администраторов с операционной системой.
Взаимное исключение (mutual exclusion) – режим выполнения критической секции, в котором в каждый момент времени ее может выполнять не более чем один из параллельных процессов.
Двоичный семафор (binary semaphore) – системная переменная, над которой определены операции открытия и закрытия, обеспечивающая в закрытом состоянии прерывание процесса, пытающегося ее закрыть, и добавление его к очереди к закрытому семафору; используется для синхронизации процессов по общим ресурсам.
Конвейер (pipe) – конструкция командных языков (shell) системы UNIX, позволяющая использовать стандартный вывод процесса – первого аргумента как стандартный ввод процесса – второго аргумента.
Критическая секция - код, который может выполняться несколькими процессами параллельно и осуществляет доступ к некоторому общему для всех процессов ресурсу – например, глобальной области памяти или общему файлу.
Монитор (как средство синхронизации) – многовходовый модуль в котором определены общие для параллельных процесов данные и набор операций (в виде процедур) над ними, таких, что в каждый момент времени не более чем один из параллельных процессов может выполнять какую-либо операцию монитора.
Облегченный процесс (lightweight process) – процесс, выполняемый в том же пространстве виртуальной памяти, что и процесс-родитель.
Процесс (process) - пользовательская программа при ее исполнении в компьютерной системе.
Cкрипт (script) – командный файл, содержащий часто используемые последовательности команд ОС.
Стек – системный резидентный массив в памяти, создаваемый операционной системой для поддержки выполнения процедур некоторого процесса и хранящий их локальные данные и связующую информацию между ними.
Тупик (взаимная блокировка, deadlock ) – ситуация, при которой образуется циклическая цепочка блокированных процессов, бесконечно ждущих друг друга.
Краткие итоги
В данной и следующей лекциях рассмотрена архитектура операционных систем, включая следующие вопросы: компоненты системы; cервисы (службы) системы; системные вызовы; системные программы; cтруктура системы; виртуальные машины; проектирование и реализация системы; генерация системы.
Основные компоненты ОС следующие: управление процессами; управление основной памятью; управление файлами; управление системой ввода-вывода; управление внешней памятью; поддержка сетей; система защиты; система поддержки командного интерпретатора; графическая оболочка.
Процесс – программа пользователя при ее исполнении. ОС поддерживает средства создания, удаления, синхронизации, приостановки и возобновления, взаимодействия процессов. Облегченный процесс исполняется в том же пространстве виртуальной памяти, что и процесс-родитель.
Классические средства синхронизации процессов – семафоры и мониторы. Семафор может находиться в открытом и закрытом состояниях и в закрытом состоянии блокирует все, кроме одного, процессы, которым требуется доступ к общему ресурсу. Монитор содержит описание общих для процессов данных и операций над ними, таких, что в каждый момент не более чем один параллельный процесс может выполнять какую-либо операцию монитора.
Набор для практики
Вопросы
- Назовите компоненты операционной системы.
- Какие действия по управлению процессами выполняет ОС?
- Какие действия по управлению основной памятью выполняет ОС?
- Какие действия по управлению файлами выполняет ОС?
- Какие действия по управлению системой ввода-вывода выполняет ОС?
- Какие действия по управлению внешней памятью выполняет ОС?
- Какие действия по поддержке сетей выполняет ОС?
- В чем заключается система защиты ОС?
- Что такое система поддержки командного интерпретатора ОС?
- Что такое скрипт?
- Назовите командные процессоры системы UNIX.
- Что такое графическая оболочка ОС?
- Что такое процесс?
- Что такое стек процесса?
- Что такое облегченный процесс?
- Что такое семафор и какие операции над ним определены?
- Что такое критическая секция?
- В чем суть принципа взаимного исключения критических секций?
- Что такое атомарная операция?
- Что такое взаимная блокировка процессов (deadlock)?
- Что такое монитор?
- Какое условие для выполнения своих операций обеспечивает монитор?
Упражнения
- Сформулируйте, в чем разница между файлами и системами ввода-вывода.
- По аналогии с рассмотренным примером команды UNIX, использующей конвейер, напишите команду, которая выводит в стандартный вывод список файлов текущей директории, имена которых содержат последовательность data.
- Пусть в системе имеется список свободных участков памяти с указанием их длин. Предложите оптимальный, с Вашей точки зрения, алгоритм выделения смежного участка памяти длины n. Дайте обоснование предложенного Вами алгоритма и оцените его сложность.
- Пусть имеется два общих ресурса, работа с которыми реализована в виде критических секций C1 и C2. Введите семафоры S1 и S2 для работы с ними и запрограммируйте код обращения к каждому из ресурсов, синхронизация по которым выполняется с помощью этих семафоров.
- Спроектируйте монитор для представления стека, являющегося общим ресурсом нескольких процессов, с операциями push и pop.
- Почему, с Вашей точки зрения, стек процесса – это резидентный массив основной памяти?
- Почему стандартный способ реализации команд ОС UNIX неэффективен?
- На основе Вашего личного опыта, сформулируйте основные возможности, предоставляемые пользователю графической оболочкой операционной системы.
- Почему семафоры как способ синхронизации процессов не вполне надежны? Назовите типичные возможные ошибки при использовании семафоров.
Темы для курсовых работ, рефератов, эссе
- Обзор архитектуры ОС (реферат).
- Обзор основных компонент ОС (реферат).
- Семафоры как средство синхронизации процессов (реферат).
- Мониторы как средство синхронизации процессов (реферат).
- Реализация семафоров и операций над ними на известном Вам языке программирования (курсовая работа).
- Реализация мониторов на известном Вам языке программирования (курсовая работа).