Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 3. Процессы и потоки.doc
Скачиваний:
11
Добавлен:
18.11.2019
Размер:
441.86 Кб
Скачать

176 Глава 4. Процессы и потоки

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

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

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

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

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

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

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

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

  • В зависимости от источника прерывания делятся на три больших класса:

  • внешние прерывания, связанные с сигналами от внешних устройств;

Задачи и упражнения 177

  • внутренние прерывания, возникающие в результате ошибок вычислений;

  • программные прерывания, представляющие собой удобный способ вызо­ва процедур операционной системы.

  • Механизм прерываний поддерживается аппаратными средствами компьюте­ра и программными средствами операционной системы.

  • Существует два основных способа выполнения прерывания: векторный (vec­tored), когда в процессор передается номер вызываемой процедуры обработ­ки прерывания, и опрашиваемый (polled), когда процессор вынужден после­довательно опрашивать потенциальные источники запроса прерывания.

  • Для упорядочивания процедур обработки прерываний все источники пре­рываний распределяются по нескольким приоритетным уровням, а роль ар­битра выполняет диспетчер прерываний ОС.

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

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

Задачи и упражнения

  1. Поясните употребление терминов «программа», «процесс», «задача», «по­ток», «нить».

  2. В чем состоит принципиальное отличие состояний ожидания и готовности потока, ведь и в том и в другом он ожидает некоторого события?

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

  4. В какой очереди (ожидающих или готовых) скапливается большее число процессов:

  1. в интерактивных системах разделения времени;

  2. в системах пакетной обработки, решающих «счетные» задачи.

  1. Известно, что программа А выполняется в монопольном режиме за 10 ми­нут, а программа В — за 20 минут, то есть при последовательном рыполне-