Понятие и структура ос. Эволюция вычислительных и ос. Основные функции ос - davaiknam.ru o_O
Главная
Поиск по ключевым словам:
Похожие работы
Название работы Кол-во страниц Размер
1. Понятие и структура ос. Эволюция вычислительных и ос. Основные... 2 743kb.
Контрольная работа по дисциплине: политология на тему: политическая... 1 181.08kb.
Вопросы к экзамену Понятие мировоззрения, его структура, основные... 1 47.84kb.
Экзаменационные вопросы по дисциплине «Структуры и алгоритмы обработки... 1 18.13kb.
Журнал экономической теории, №4, 2005 Аннотации статей Дози Дж. 1 58.99kb.
«Логарифмы, логарифмическая функция, её свойства и график» 1 66.62kb.
Программа вступительного экзамена по дисциплине «Социология» для... 1 113.87kb.
Культура: понятие, структура и функции 29 4535.21kb.
Законодательство о предпринимательской деятельности: понятие, структура... 14 2911.54kb.
Архитектура и структура ЭВМ 1 74.09kb.
Вычислительные машины, комплексы и компьютерные сети Архитектура... 1 76kb.
Курсовая работа включает следующие разделы 1 286.56kb.
Направления изучения представлений о справедливости 1 202.17kb.

Понятие и структура ос. Эволюция вычислительных и ос. Основные функции ос - страница №1/5


  1. Понятие и структура ОС. Эволюция вычислительных и ОС. Основные

функции ОС.

  1. Классификация ОС. Архитектурные особенности ОС.

  2. Мультипрограммирование. Особенности реализации

мультипрограммирования в системах пакетной обработки, разделения

времени, реального времени, с мультипроцессорной обработкой.



  1. Роль прерываний при мультипрограммировании.

  2. Понятие процесса и потока. Создание процессов и потоков.

Управляющие структуры процессов и потоков.

  1. Контекст процесса и его состояния.

  2. Планирование процессов и потоков: критерии, виды, алгоритмы

планирования.

  1. Параллельные процессы, синхронизация процессов, пример необходимости синхронизации, критическая секция.

  2. Механизмы синхронизации: блокирующие переменные, семафоры,

мониторы.

  1. Проблемы синхронизации(тупики) и способы их разрешения.

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

  3. Управление памятью: задачи управления, типы адресации.

  4. Распределение памяти: общие принципы управления памятью в однопрограммных ОС, распределение памяти фиксированными,

динамическими, перемещаемыми разделами.

  1. Сегментное распределение памяти.

  2. Страничное распределение памяти.

  3. Особенности эффективного использования таблицы страниц:

многоуровневые таблицы страниц, ассоциативная память, инвертированная таблица страниц, хеширование.

  1. Сегментно - страничное распределение памяти.

  2. Физическая организация жёсткого диска.

  3. Принципы построения файловой системы: интерфейс,

функциональная схема, типовая структура файловой системы.

  1. Способы выделения дискового пространства. Управление

дисковым пространством. Размер логического блока.

  1. Особенности организации некоторых файловых систем.



  1. Понятие и структура ОС. Эволюция вычислительных и ОС. Основные

функции ОС.

  1. Классификация ОС. Архитектурные особенности ОС.

  2. Мультипрограммирование. Особенности реализации

мультипрограммирования в системах пакетной обработки, разделения

времени, реального времени, с мультипроцессорной обработкой.



  1. Роль прерываний при мультипрограммировании.

  2. Понятие процесса и потока. Создание процессов и потоков.

Управляющие структуры процессов и потоков.

  1. Контекст процесса и его состояния.

  2. Планирование процессов и потоков: критерии, виды, алгоритмы

планирования.

  1. Параллельные процессы, синхронизация процессов, пример необходимости синхронизации, критическая секция.

  2. Механизмы синхронизации: блокирующие переменные, семафоры,

мониторы.

  1. Проблемы синхронизации(тупики) и способы их разрешения.

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

  3. Управление памятью: задачи управления, типы адресации.

  4. Распределение памяти: общие принципы управления памятью в однопрограммных ОС, распределение памяти фиксированными,

динамическими, перемещаемыми разделами.

  1. Сегментное распределение памяти.

  2. Страничное распределение памяти.

  3. Особенности эффективного использования таблицы страниц:

многоуровневые таблицы страниц, ассоциативная память, инвертированная таблица страниц, хеширование.

  1. Сегментно - страничное распределение памяти.

  2. Физическая организация жёсткого диска.

  3. Принципы построения файловой системы: интерфейс,

функциональная схема, типовая структура файловой системы.

  1. Способы выделения дискового пространства. Управление

дисковым пространством. Размер логического блока.

  1. Особенности организации некоторых файловых систем.

1. Понятие и структура ОС. Эволюция вычислительных и ОС. Основные функции ОС

Операционная система (ОС) – это программа, которая обеспечивает возможность рационального использования оборудования компьютера удобным для пользователя образом.

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

Понятия ОС. Существуют различные точки зрения:

ОС как виртуальная машина

ОС как менеджер ресурсов

ОС как защитник пользователей и программ

ОС как постоянно функционирующее ядро

Эволюция вычислительных систем

Первый период (1945–1955 гг.)

Ламповые машины. Операционных систем нет.

Созданы первые ламповые вычислительные устройства и появился принцип программы, хранящейся в памяти машины (1945 г.).



Характеризуется тем, что:

  • В проектировании, эксплуатации и программировании вычислительной машины участвует одна и та же группа людей.

  • Компьютеры в качестве инструмента решения практических прикладных задач используются не регулярно.

  • Программирование осуществляется исключительно на машинном языке.

  • Задачи организации вычислительного процесса решаются вручную, строго последовательно, с пульта управления с использованием перфокарт

  • Вычислительная система выполняет одновременно только одну операцию.

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

В конце периода появляется первое системное ПО.



Второй период (1955 г.– нач. 60-х)

Компьютеры на основе транзисторов. Пакетные ОС

Появляется новая техническая база – полупроводниковые элементы, что привело к:



  • повышению надежности

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

  • снижению потребления электроэнергии, совершенствованию системы охлаждения

  • уменьшению размеров

  • снижению стоимости эксплуатации и обслуживания

Все это способствовало:

  • бурному развитию алгоритмических языков (COBOL, PL-1 и т.д.).

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

  • упрощению процесса программирования

  • существенное изменение процесса отладки программ.

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

Минусы:

  • Использование части машинного времени на выполнение системной управляющей программы

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

Третий период (нач. 60-х – 1970 г.)

Компьютеры на основе интегральных микросхем. Первые многозадачные ОС

В технической базе произошел переход от отдельных полупроводниковых элементов типа транзисторов к интегральным микросхемам, что привело к еще большему:



  • повышению надежности;

  • уменьшению стоимости;

  • повышению производительности;

Повышению эффективности использования процессорного времени мешает низкая скорость работы механических устройств ввода-вывода (1200 перфокарт/мин.)

В пакетные системы вводится прием «spooling» или «подкачки-откачки» данных, что позволило совместить реальные операции ввода-вывода одного задания с выполнением другого задания.

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

В пакетных системах начинается развитие функций планирования.

Дальнейшее повышение эффективности использования процессора достигается за счет идеи мультипрограммирования - пока одна программа выполняет операцию ввода-вывода, процессор не простаивает, а выполняет другую программу. После окончании операции ввода-вывода, процессор возвращается к выполнению предыдущей программы.

Четвертый период (с 1970 – 80 гг.)

Персональные компьютеры.

Следующий период в эволюции вычислительных систем связан с появлением больших интегральных схем (БИС).

Компьютер с достаточно развитой архитектурой стал доступен отдельному человеку.

Период характеризуется тем, что:



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

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

Появляется:

  • вытесняющая многозадачность

  • использование концепции баз данных для хранения и распределенной обработки больших объемов информации

  • приоритетное планирование

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

  • системы разделения времени: процессор переключается между задачами через определенные интервалы времени

Пятый период (с 1980 г. по н.в.)

Уменьшается стоимость компьютеров и увеличивается стоимость труда программиста.

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

В середине 80-х стали бурно развиваться сети компьютеров работающих под управлением сетевых и распределенных ОС.

Сетевые (классические) ОС характеризуются:


  • возможностью доступа к ресурсам другого сетевого компьютера

  • каждый ПК в сетевой ОС работает под управлением ОС, отличающейся от ОС автономного компьютера наличием дополнительных средств (программной поддержкой для сетевых интерфейсных устройств и доступа к удаленным ресурсам), которые, однако, не меняют структуру ОС

Распределенные ОС:

  • «внешне» выглядят как обычные автономные системы (пользователь может не знать где хранятся файлы – на локальной или удаленной машине – и где выполняются программы)

  • «внутреннее» строение распределенной ОС имеет существенные отличия от автономных систем

Функции ОС

Все функции ОС можно условно разделить на две различные группы – интерфейсные и внутренние.



Интерфейсные функции ОС:

  • управление аппаратными средствами

  • управление устройствами ввода-вывода

  • управление файловой системой

  • поддержка многозадачности

  • планирование доступа пользователей к общим ресурсам;

  • интерфейс пользователя

  • поддержка работы в локальных и глобальных сетях

Внутренние функции ОС:

  • обработки прерываний

  • управления виртуальной памятью

  • планирования использования процессора

  • обслуживания драйверов устройств


2. Классификация ОС. Архитектурные особенности ОС

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



Архитектурные особенности ОС

Монолитное ядро

Характеризуется тем, что:

каждая процедура может вызвать каждую

все процедуры работают в привилегированном режиме

все части монолитного ядра работают в одном адресном пространстве

ядро «совпадает» со всей ОС

сборка ядра осуществляется отдельно для каждого компьютера при установке

при добавлении, исключении отдельных компонент требуется перекомпиляция

старейший способ организации ОС

Пример систем с монолитным ядром - большинство Unix-подобных систем.



Многоуровневые системы.
Всю вычислительную систему можно разбить на ряд более мелких уровней с хорошо определенными связями между ними, так чтобы объекты уровня N могли вызывать только объекты уровня N-1.

Виртуальные машины

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



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

Микроядерная архитектура

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



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

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

Характеризуется(+):

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

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

возможностью отладки компонентов ядра с помощью обычных программных средств

повышенной надежностью системы

Характеризуется: (-)

дополнительными накладными расходами, связанными с передачей сообщений

усложнение процесса проектирования при попытке снижения возможных накладных расходов

Смешанные системы

В большинстве случаев современные ОС используют различные комбинации рассмотренных подходов.

Например, ядро ОС Linux представляет собой монолитную систему с элементами микроядерной архитектуры.

Совместно элементы микроядерной архитектуры и элементы монолитного ядра используются в ядре Windows NT:



Классификация ОС.
Особенности алгоритмов управления ресурсами

В зависимости от особенностей использованного алгоритма управления процессором, ОС делят на:

многозадачные и однозадачные

многопользовательские и однопользовательские

поддерживающие многонитевую обработку / не поддерживающие

на многопроцессорные и однопроцессорные



Поддержка многозадачности

Однозадачные ОС (MS-DOS, MSX):

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

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

Многозадачные ОС (OC EC, OS/2, UNIX, Windows 95), кроме вышеперечисленных функций, управляют разделением совместно используемых ресурсов, таких как процессор, оперативная память, файлы и внешние устройства.

Поддержка многопользовательского режима

Однопользовательские: MS-DOS, Windows 3.x, ранние версии OS/2;

Многопользовательские: UNIX, Windows NT.

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

(!) Не всякая многозадачная система является многопользовательской, и не всякая однопользовательская - однозадачной.

Вытесняющая и невытесняющая многозадачность

Среди множества существующих вариантов реализации многозадачности можно выделить две группы алгоритмов:



невытесняющая многозадачность (NetWare, Windows 3.x) - механизм планирования процессов целиком сосредоточен в ОС;

вытесняющая многозадачность (Windows NT, OS/2, UNIX) - механизм планирования процессов распределен между системой и прикладными программами.

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

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

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



Мультипрограммирование, или многозадачность – это способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются сразу несколько программ. Эти программы совместно используют не только процессор, но и другие ресурсы компьютера, оперативную и внешнюю память, устройства ввода-вывода, данные.

Мультипрограммирование требует революции в строении вычислительной системы:



1) Реализация защитных механизмов.

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



2) Наличие прерываний.

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



3) Развитие параллелизма в архитектуре.

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

Не менее важна в организации мультипрограммирования роль ОС, реализующей:

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

организацию очереди из заданий в памяти и планирование выделение процессора одному из заданий

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

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

организация хранения информации на внешних носителях в виде файлов и обеспечение доступа к конкретному файлу только определенным категориям пользователей

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

Мультипрограммирование призвано повысить эффективность использования вычислительной системы, однако эффективность может пониматься по-разному. Наиболее характерными критериями эффективности вычислительных систем являются:

пропускная способность – количество задач, выполняемых вычислительной системой в единицу времени;

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

реактивность системы – способность системы выдерживать заранее заданные (возможно, очень короткие) интервалы времени между запуском программы и получением результата.

В зависимости от выбранного критерия эффективности ОС делятся на системы пакетной обработки, системы разделения времени и системы реального времени.



Мультипрограммирование в системах пакетной обработки.

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

Критерий эффективности систем пакетной обработки – максимальная пропускная способность, то есть решение максимального числа задач в единицу времени.

Для достижения этой цели в системах пакетной обработки используется следующая схема функционирования: в начале работы формируется пакет заданий, каждое задание содержит требование к системным ресурсам; из этого пакета заданий формируется мультипрограммная смесь, то есть множество одновременно выполняемых задач. Для одновременного выполнения выбираются задачи, предъявляющие разные требования к ресурсам, так, чтобы обеспечивалась сбалансированная загрузка всех устройств вычислительной машины. Например, в мультипрограммной смеси желательно одновременное присутствие вычислительных задач и задач с интенсивным вводом-выводом. Таким образом, выбор нового задания из пакета заданий зависит от внутренней ситуации, складывающейся в системе, то есть выбирается «выгодное» задание. Следовательно, в вычислительных системах, работающих под управлением пакетных ОС, невозможно гарантировать выполнение того или иного задания в течение определенного периода времени.

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

Мультипрограммирование в системах разделения времени.

Повышение удобства и эффективности работы пользователя является целью систем разделения времени. Пользователям (или одному пользователю) предоставляется возможность интерактивной работы сразу с несколькими приложениями.

Для этого каждое приложение должно регулярно получать возможность «общения» с пользователем. Эта проблема решается так, что ОС принудительно периодически приостанавливает приложения, не дожидаясь, когда они добровольно освободят процессор. Всем приложениям попеременно выделяется квант процессорного времени, таким образом пользователи, получают возможность поддерживать с ними диалог.

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

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

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

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

Мультипрограммирование в системах реального времени.

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

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

В системах реального времени мультипрограммная смесь (множество одновременно выполняемых задач) представляет собой фиксированный набор заранее разработанных программ, а выбор программы на выполнение осуществляется по прерываниям (исходя из текущего состояния объекта) или в соответствии с расписанием плановых работ.

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

При проектировании программ под системы реального времени закладывается некоторый «запас» вычислительной мощности на случай пиковой нагрузки.

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



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

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



Недостатки такой организации системы:

– усложнение всех алгоритмов управления ресурсами (например, планирование процессов не для одного, а для нескольких процессоров)

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

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



Примеры ОС с мультипроцессорной – Sun Solaris 2.x, IBM OS/2, Microsoft Windows NT и т.д.

Различают симметричную и ассиметричную архитектуру таких систем.

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

Черты: возможность наращивания числа процессоров ограничена, т.к. все они пользуются одной и той же оперативной памятью и, следовательно, должны располагаться в одном корпусе – масштабируемость по вертикали до 4 или 8 процессоров; процессоры очень быстро обмениваются данными.

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

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



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

Асимметричное мультипроцессирование наиболее простой способ организации вычислительного процесса в системах с несколькими процессорами, его называют также «ведущий-ведомый».

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

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

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

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

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

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



Большой плюс: в случае отказа одного из процессоров симметричные системы, как правило, сравнительно просто реконфигурируются.

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



4. Роль прерываний при мультипрограммировании.

Мультипрограммирование, или многозадачность (multitasking), — это способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются сразу несколько программ.

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

Различают следующие типы прерываний:

внешние (аппаратные),

внутренние (исключения -exception),

программные

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

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

При мультипрограммировании, аппарат прерываний крайне важен. Поскольку мультипрограммирование задумывалось как увеличение производительности компьютера при тех же аппаратных затратах. Где пока один процесс простаивает в ожидании какой-либо операции, другой выполняет свои действия. То единственным способом информировать процессор о каких-либо произошедших событиях – оказывается аппарат прерываний, который, в принципе, и придумывался для этих целей. Когда процессор был освобождён от рутинных операций ввода-вывода, тогда и появилась возможность выполнять другую программу, во время ввода информации первой. Этот эволюционный момент потребовал развития железа и софта.



5. Понятие процесса и потока. Создание процессов и потоков. Управляющие структуры процессов и потоков

Понятие процесса

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

Понятие потока

Потоки – последовательности команд.

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

Существует две основных категории реализации потоков:

Пользовательские потоки – потоки, реализуемые через специальные библиотеки потоков.

Потоки уровня ядра – потоки, реализуемые через системные вызовы.

Каждый процесс имеет как минимум один поток, при этом самый первый поток, создаваемый при рождении нового процесса, принято называть начальным или главным потоком этого процесса.

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

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

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



Управляющие структуры процессов

Для управления процессами ОС должна располагать всей необходимой для этого информацией, для чего каждому процессу необходим дескриптор, содержащий:



  • идентификатор процесса (PID);

  • тип (или класс) процесса, который определяет для супервизора некоторые правила предоставления ресурсов;

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

  • переменную состояния, которая определяет, в каком состоянии находится процесс (готов к работе, исполняется, ожидает устройства ввода-вывода и т.д.);

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

  • информацию о ресурсах, которыми процесс владеет и/или имеет право пользоваться (указатели на открытые файлы, информация о незавершённых операциях ввода-вывода и др.);

  • место (или его адрес) для организации общения с другими процессами;

  • параметры времени запуска (момент времени, когда процесс должен активизироваться, и периодичность этой процедуры);

  • адрес задачи на диске (в случае отсутствия системы управления файлами) в её исходном состоянии и адрес на диске, куда она выгружается из ОП, если её вытесняет другая задача.

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

Изменением состояния процессов занимается ОС, совершая операции над ними.Основные операции над процессами удобно объединить в три пары:



  • создание процесса – завершение процесса (одноразовые);

  • приостановка процесса (перевод из состояния исполнение в состояние готовность) – запуск процесса (перевод из состояния готовность в состояние исполнение);

  • блокирование процесса (перевод из состояния исполнение в состояние ожидание) – разблокирование процесса (перевод из состояния ожидание в состояние готовность).

Необходимо помнить, что существует еще одна (непарная) операция: изменение приоритета процесса.


6. Контекст процесса и его состояния

Контекст процесса.

Информация, для хранения которой предназначен блок управления процессом состоит из:



регистрового контекста (содержимое всех регистров процессора);

системного (запись в таблице процессов, управляющая информация о процессе и т.д.);

пользовательского (код и данные).

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



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

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

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

Состояния процесса

простейшая диаграмма состояний процесса

Простейшая диаграмма состояний процесса

Процесс, выбранный для исполнения, может всё ещё ждать события, из-за которого он был приостановлен, и реально к выполнению не готов. Для того чтобы избежать такой ситуации, разобьём состояние «процесс не исполняется» на два новых состояния: готовность и ожидание.



более подробная диаграмма состояний процесса

В состоянии исполнение происходит непосредственное выполнение программного кода процесса. Выйти из этого состояния процесс может по трем причинам:



  • завершает свою деятельность;

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

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

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

диаграмма состояний процесса, принятая в курсе

Более детальная схема



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

Готовность-> исполнение: осуществляется выбор процесса для исполнения в соответствии с установленной дисциплиной обслуживания.

Исполнение->готовность: обычно происходит в результате окончания выделенного кванта времени не работы или в результате появления процесса с более высоким приоритетом.

Ожидание->готовность: блокированный процесс переходит в состояние готовности к выполнению в момент появления некоторого ожидаемого события

Исполнение->ожидание: перевод процесса в заблокированное состояние осуществляется в случае, если для продолжения его работы требуется наступление некоторого события.

Исполнение-> завершение: если процесс сигнализирует об окончании своей работы или происходит его аварийное завершение, ОС прекращает его выполнение.

Дополнительное состояние приостановлен->готов может в некоторых случаях существовать в OCPB:



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

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

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

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

  • в ОС Windows NT – 7 состояний

  • в ОС UNIX – 9 состояний

7. Планирование процессов и потоков: критерии, виды, алгоритмы планирования

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

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



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

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

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

Диспетчеризация – реализация решения, найденного в результате планирования.

Задачи диспетчеризации:



  • сохранение контекста текущего потока

  • загрузка контекста нового потока

  • запуск нового потока на выполнение

Выделяют следующие уровни планирования:

  • долгосрочное

  • краткосрочное

  • среднесрочное

Долгосрочное планирование

  • отвечает за порождение новых процессов в системе, определяя ее степень мультипрограммирования

  • осуществляется достаточно редко

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

  • в некоторых ОС сведено к минимуму или отсутствует вовсе

Краткосрочное планирование

  • осуществляется, как правило, не реже одного раза в 100 миллисекунд.

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

  • при планировании использования процессора

Среднесрочное планирование

Применяется в вычислительных системах для повышения производительности при «swapping»: временное удаление какого-либо частично выполнившегося процесса из оперативной памяти на диск, а позже – его возвращение для дальнейшего выполнения.



Критерии планирования и требования к алгоритмам

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



Цели планирования

Справедливость

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



Эффективность

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

В реальных вычислительных системах загрузка процессора: 40% - 90%

Сокращение полного времени выполнения (turnaround time)

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



Сокращение времени ожидания (waiting time)

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



Сокращение времени отклика (response time)

Минимизировать время, которое требуется процессу в интерактивных системах для ответа на запрос пользователя



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

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

Свойства алгоритмов планирования

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



  • Предсказуемость.

Одно и то же задание должно выполняться приблизительно за одно и то же время.

  • Минимальные накладные расходы.

tисполнения процесса>>tвыбора процесса Если на каждые 100 миллисекунд, выделенные процессу для использования процессора, будет приходиться 200 миллисекунд на определение того, какой именно процесс получит процессор в свое распоряжение, и на переключение контекста, то такой алгоритм, очевидно, применять не стоит. Независимо от целей планирования алгоритмы должны обладать следующими свойствами:

Алгоритмы планирования

First-Come, First-Served (FCFS)

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



(+) : простота реализации

(-): среднее время ожидания и среднее полное время выполнения для этого алгоритма существенно зависят от порядка расположения процессов в очереди.

 Выполнение процессов при порядке p0,p1,p2:



выполнение процессов при порядке p0,p1,p2

t1=13, t2=4, t3=1 => среднее время ожидания: (0+13+17)/3=10 единиц времени

среднее полное время выполнения: (13+17+18)/3=16 единиц времени

Выполнение процессов при порядке p2, p1, p0:



выполнение процессов при порядке p2, p1, p0

Среднее время ожидания: (5+1+0)/3=2 (в 5 раз <)

Среднее полное время выполнения: (18+5+1)/3=8 (в 2 раза <)

Round Robin (RR)

По сути дела, это тот же самый алгоритм, только реализованный в режиме вытесняющего планирования (очередной процесс передаётся на исполнение по таймеру по истечении определённого кванта времени)



процессы на карусели
Процессы на карусели

На производительность алгоритма RR сильно влияет величина кванта времени:

при очень больших величинах кванта алгоритм RR вырождается в алгоритм FCFS

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

~ 1/n от производительности реального процессора.

Shortest-Job-First (SJF)

Если выбирать процесс не по порядку (как в FCFS и RR), а основываясь на его минимальном времени непрерывного использования процессора, то это позволит повысить производительность алгоритма планирования использования процесса. Описанный алгоритм получил название «кратчайшая работа первой».

Основную сложность при реализации алгоритма SJF представляет невозможность точного значения времени выполнения очередного процесса.

8. Параллельные процессы, синхронизация процессов, пример необходимости синхронизации, критическая секция.

Параллельные процессы

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

Выделяют:

1. Независимые

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

2. Взаимодействующие

Используют совместно некоторые (общие) переменные, и влияют на результаты выполнения друг друга.

Синхронизация процессов

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

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

Для синхронизации процессов прикладных программ программист может использовать:

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

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



Пример необходимости синхронизации

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

Переменная NEXT, доступная всем процессам-клиентам, содержит номер первой свободной для записи имени файла позиции файла “Заказов”.

Процессы-клиенты считывают эту переменную, записывают в соответствующую позицию файла “заказов” имя своего файла и наращивают значение NEXT на единицу.

При передаче управления процессу R, он, в соответствии со считанным ранее значением текущей свободной позиции запишет имя файла для печати в файл “заказов” в позицию поверх имени файла процесса S и файл процесса S напечатан не будет.

Критическая секция

Критическая секция – часть программы, результат выполнения которой может непредсказуемо меняться, если переменные, относящиеся к ней, изменяются другими потоками в то время, когда выполнение этой части еще не завершено. В примере критическая секция – файл “заказов”, являющийся разделяемым ресурсом для процессов R и S.



9. Механизмы синхронизации: блокирующие переменные, семафоры, мониторы.

следующая страница >>



Ни один классик не сдал бы экзамена по собственным произведениям. Болеслав Пашковский
ещё >>