Спонсор: Microsoft
Опубликован: 13.11.2010 | Уровень: для всех | Доступ: платный | ВУЗ: Санкт-Петербургский государственный университет
Лекция 5:

Архитектура ОС. Управление процессами: Основные понятия. Семафоры и мониторы

< Лекция 4 || Лекция 5: 12 || Лекция 6 >

Ключевые термины

Race condition - несогласованный доступ из параллельных процессов к общим данным.

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

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

Взаимное исключение (mutual exclusion) – режим выполнения критической секции, в котором в каждый момент времени ее может выполнять не более чем один из параллельных процессов.

Двоичный семафор (binary semaphore) системная переменная, над которой определены операции открытия и закрытия, обеспечивающая в закрытом состоянии прерывание процесса, пытающегося ее закрыть, и добавление его к очереди к закрытому семафору; используется для синхронизации процессов по общим ресурсам.

Конвейер (pipe) – конструкция командных языков (shell) системы UNIX, позволяющая использовать стандартный вывод процесса – первого аргумента как стандартный ввод процесса – второго аргумента.

Критическая секция - код, который может выполняться несколькими процессами параллельно и осуществляет доступ к некоторому общему для всех процессов ресурсу – например, глобальной области памяти или общему файлу.

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

Облегченный процесс (lightweight process) – процесс, выполняемый в том же пространстве виртуальной памяти, что и процесс-родитель.

Процесс (process) - пользовательская программа при ее исполнении в компьютерной системе.

Cкрипт (script) – командный файл, содержащий часто используемые последовательности команд ОС.

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

Тупик (взаимная блокировка, deadlock ) – ситуация, при которой образуется циклическая цепочка блокированных процессов, бесконечно ждущих друг друга.

Краткие итоги

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

Основные компоненты ОС следующие: управление процессами; управление основной памятью; управление файлами; управление системой ввода-вывода; управление внешней памятью; поддержка сетей; система защиты; система поддержки командного интерпретатора; графическая оболочка.

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

Классические средства синхронизации процессов – семафоры и мониторы. Семафор может находиться в открытом и закрытом состояниях и в закрытом состоянии блокирует все, кроме одного, процессы, которым требуется доступ к общему ресурсу. Монитор содержит описание общих для процессов данных и операций над ними, таких, что в каждый момент не более чем один параллельный процесс может выполнять какую-либо операцию монитора.

Набор для практики

Вопросы

  1. Назовите компоненты операционной системы.
  2. Какие действия по управлению процессами выполняет ОС?
  3. Какие действия по управлению основной памятью выполняет ОС?
  4. Какие действия по управлению файлами выполняет ОС?
  5. Какие действия по управлению системой ввода-вывода выполняет ОС?
  6. Какие действия по управлению внешней памятью выполняет ОС?
  7. Какие действия по поддержке сетей выполняет ОС?
  8. В чем заключается система защиты ОС?
  9. Что такое система поддержки командного интерпретатора ОС?
  10. Что такое скрипт?
  11. Назовите командные процессоры системы UNIX.
  12. Что такое графическая оболочка ОС?
  13. Что такое процесс?
  14. Что такое стек процесса?
  15. Что такое облегченный процесс?
  16. Что такое семафор и какие операции над ним определены?
  17. Что такое критическая секция?
  18. В чем суть принципа взаимного исключения критических секций?
  19. Что такое атомарная операция?
  20. Что такое взаимная блокировка процессов (deadlock)?
  21. Что такое монитор?
  22. Какое условие для выполнения своих операций обеспечивает монитор?

Упражнения

  1. Сформулируйте, в чем разница между файлами и системами ввода-вывода.
  2. По аналогии с рассмотренным примером команды UNIX, использующей конвейер, напишите команду, которая выводит в стандартный вывод список файлов текущей директории, имена которых содержат последовательность data.
  3. Пусть в системе имеется список свободных участков памяти с указанием их длин. Предложите оптимальный, с Вашей точки зрения, алгоритм выделения смежного участка памяти длины n. Дайте обоснование предложенного Вами алгоритма и оцените его сложность.
  4. Пусть имеется два общих ресурса, работа с которыми реализована в виде критических секций C1 и C2. Введите семафоры S1 и S2 для работы с ними и запрограммируйте код обращения к каждому из ресурсов, синхронизация по которым выполняется с помощью этих семафоров.
  5. Спроектируйте монитор для представления стека, являющегося общим ресурсом нескольких процессов, с операциями push и pop.
  6. Почему, с Вашей точки зрения, стек процесса – это резидентный массив основной памяти?
  7. Почему стандартный способ реализации команд ОС UNIX неэффективен?
  8. На основе Вашего личного опыта, сформулируйте основные возможности, предоставляемые пользователю графической оболочкой операционной системы.
  9. Почему семафоры как способ синхронизации процессов не вполне надежны? Назовите типичные возможные ошибки при использовании семафоров.

Темы для курсовых работ, рефератов, эссе

  1. Обзор архитектуры ОС (реферат).
  2. Обзор основных компонент ОС (реферат).
  3. Семафоры как средство синхронизации процессов (реферат).
  4. Мониторы как средство синхронизации процессов (реферат).
  5. Реализация семафоров и операций над ними на известном Вам языке программирования (курсовая работа).
  6. Реализация мониторов на известном Вам языке программирования (курсовая работа).
< Лекция 4 || Лекция 5: 12 || Лекция 6 >
Василий Четвертаков
Василий Четвертаков
Владислав Нагорный
Владислав Нагорный

Подскажите, пожалуйста, планируете ли вы возобновление программ высшего образования? Если да, есть ли какие-то примерные сроки?

Спасибо!

Константин Леденев
Константин Леденев
Россия
Олег Равков
Олег Равков
Россия