Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Шпаргалка По Операционным Системам К Экзамену Для Дневников (Иванько А. Ф

.).doc
Скачиваний:
137
Добавлен:
07.10.2014
Размер:
252.93 Кб
Скачать

Определение ОС. Место ОС в иерархческой архитектуре вычислит. системы.

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

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

GUI – графический интерфейс.

Процессы. Определение процесса. Логическая и физическая модели процесса. Графы состояний процесса для логической и физической модели.

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

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

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

P1

S1 S2 S3

P2

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

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

Графы состояний:

Логическая: выполняется – не выполняется.

Физическая: блокирован – готов к выполнению (нет процессора) – выполняется

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

Классификация процессов операционных систем.

по времени существования

а) пакетные – нет ограничений на время существования

б) интерактивные – время существования не более интервала времени допустимой реакции ОС на запросы пользователя

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

по отношению к ОС

а) системные

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

по генеалогическому признаку

а) порождающие

б) порожденные

по связанности

а) изолированные (нет связей)

б) информационно-независимые (не обмениваются между собой информацией)

в) взаимодействующие (информационные связи; явные – обмениваются сообщениями, неявные – обмениваются информацией через общую часть памяти)

г) конкурирующие (конкурируют за использование какого-либо ресурса)

по динамике развития

а) последовательные (интервалы времени не пересекаются)

б) параллельные на некотором интервале (существуют одновременно на нем)

в) комбинированные (существует 1ый – не существует 2ой, сущ. 2ой – не сущ. 1ый, сущ. оба)

Ресурсы операционных систем. Определение ресурса. Классификация ресурсов.

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

Классификация:

по реальности существования

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

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

- по возможности расширения

а) эластичные ресурсы (допускают виртуализацию)

б) жесткий ресурс (не допускает)

- по степени активности:

а) активные ресурсы (способны выполнять действия по отношению к другим ресурсам)

б) пассивные ресурсы (над ними совершается действие)

по времени существования

а) постоянный (существует до и после существования процесса)

б) временный (появился во время выполнения процесса; может быть порожден и уничтожен)

по важности

а) главный (без него нет процесса)

б) второстепенный

по структуре

а) простой (как единое целое; занят\свободен)

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

по восстанавливаемости

а) воспроизводимый (допускается многократное использование; запрос-использование-освобождение)

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

по характеру использования

а) последовательно-используемый (строго последовательное во времени выполнение цепочки действий: «запрос-использование-освобождение» каждым процессом)

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

по форме реализации

а) твердые (подверженные сбоям и отказам; аппаратные)

б) мягкие

Управление процессами. Таблицы управления процессами. Дескриптор процесса. Операции над процессами. Прерывания процессов.

Для управления процессами ОС должна содержать некоторую информационную структуру – информацию о процессах. Любая ОС содержит таблицу управления процессами (TCB – task control blog): для каждого процесса отведена строка. Информация о процессе в таблице называется дескриптором.

Стандартный набор дескрипторных данных: имя процесса, информация о ресурсах, статус процесса, указание на потомков.

Дескрипторная информация может храниться либо целиком в таблице, либо может быть разделена на 2 составляющих: оперативная информация (собственный дескриптор) неоперативная, которая может храниться не в таблице управления процессами, а вместе с процессами (контекст процесса).

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

1) Создание процесса (инф. о процессе заносится в список процессов)

2) Уничтожение процесса (удал. дескриптор)

3) Изменение состояния процесса

Прерывание процессов:

– синхронные (внутренние – связаны с выполнением данного процесса)

– асинхронные (внешние – не связаны с выполнением процесса)

Механизм обработки прерываний:

– восприятие запроса на прерывание (аппаратно)

– запоминание состояния процесса(аппаратно)

– передача управления программе обеспечения процесса(аппаратно)

– обработка прерывания (операционной системой)

– передача управления программе дескриптора (планировщика) (операционной системой)

Синхронизация параллельных процессов. Механизмы синхронизации. Аппаратная и программная реализация взаимоисключений. Семафорные примитивы Дейкстры.

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

Синхронизация обеспечивает:

- упорядоченное развитие процесса во времени

- взаимодействие между процессами

5 видов отношений между процессами синхр.:

- отношение предшествий

- отношение приоритетности

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

- отношение производитель-потребитель

Типичные задачи синхронизации:

- необходимо согласовать развитие паралл. процессов т.о., чтобы удовлетв. требованиям: 1) одновременно внутри критичного интервала должно находиться не более одного процесса. 2) освобождение критич. ресурса и выход из критич. интервала должно быть произведено за конечное время.

Задача "поставщики — потребители". Имеется ограниченный буфер на несколько порций информации. Он является критическим ресурсом для процессов двух типов:

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

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

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

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

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

Семафор – это переменная специального типа, доступная параллельным процессам для проведения над ней только двух операций – «закрытия» и «открытия», названных соответственно Р-операцией (P – от голландского Proberen – проверить) и V-операцией (V – от голландского Verhogen – увеличить). Основное достоинство использования семафорных операций – отсутствие состояния активного ожидания.

Дедлок (тупиковая ситуация). Условия возникновения.

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

Условия возникновения дедлоков:

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

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

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

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

Для тупика необходимо выполнение всех четырех условий!

Стратегии предотвращения и обхода дедлоков.

Стратегия предотвращения:

1 – каждому процессу неограниченно выделить ресурсы, но это дорого, не передаётся информация.

2 – предварительное распределение ресурсов, но процессу необходимо знать все ресурсы, простой ресурсов.

3 – отъем ресурсов (неэффективен, не будут выполняться или обмен).

4 – иерархическое выделение ресурсов (все ресурсы образуют иерархию уровней и выделение ресурса при освобождении уровня).

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

Если система в неопасном состоянии, то есть хотя бы одно неопасное сост., в кот. система может перейти.

Алгоритм банкира. У банкира множество клиентов, для каждого определено, сколько он может взять денег у банкира. Деньги берутся частично. Тупик у банкира станет в том случае, если у него нет денег для выдачи след. кредита. Когда приходит клиент с запросом, банкир анализирует, сможет ли он выдать деньги другим клиентам.  ОС имеет определен. ресурс. Число процессов, кот. нужен этот ресурс – ограничен.

Предположим, что у системы в наличии n ресурсов. Суть алгоритма состоит в следующем.

•ОС принимает запрос от пользовательского процесса, если его максимальная потребность не превышает n.

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

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

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

Методы восстановления после дедлока:

– подождать

– завершение процессов в дедлоке

–завершение процессов по одному

–завершение вообще всех процессов

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

Создание  Запрос  Использование.

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

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

*Планирование ресурса (какому процессу, когда и в каком количестве выделить)

*Удовлетворение запросов на ресурсы

*Отслеживание состояния и учёт использования ресурса (занят или свободен ресурс)

*Разрешение конфликтов между процессами

Для описания ресурсов создается дескриптор(имя ресурса, тип, максимальный объем для сост.ресурса, сколько единиц занято/свободно, указатель на процесс, распределяющий данный ресурс(монитор ресурса),указатель на список процессов, который заблокирован на данном ресурсе).

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

Дисциплины распределения ресурсов. Дисциплины формирования и обслуживания очередей. Централизованная и децентрализованная схемы распределения ресурсов.

Управление ресурсами осуществл. на основе формирования очередей:

1) Дисциплины формирования очередей.

- статическая (приоритеты назначают до форм. очереди)

- динамическая (в процессе)

2) Дисциплины обслуживания очередей

- бесприоритетная

- в порядке поступления

- в порядке обратного поступления

- случайный выбор

- циклические (процессы обслуживаются циклически)

Централизованная схема распределения ресурса: существует распределитель ресурсов или монитор.

Децентр. схема – на основе соглаш. ресурса между схемами.

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

МУЛЬТИПРОГРАММИРОВАНИЕ - это способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются сразу несколько программ

  1. состояние планирования связано с тем, что процессу выделяется ресурс;

  2. владения ресурсом;

  3. состояние выполнения - выделение процессора;

Планирование и владение относятся к процессу. Выполнение относится к потоку. Планировщик выделяет процессу необходимые ресурсы. За выполнение отвечает диспетчер. Трек или поток – единица выполнения процесса.

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

Задание – объект управления. Это множество процессов.

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

Диспетчеризация – выделение центр. проц. под процесс.

  1. Бесприоритетные дисциплины (невытесняющая многозадачность):

  • Первый пришел – первый обслужился (First Come – First Served);

  • Shortest Job Next – следующим выполняется самое короткое задание. Требует оценки машинного времени.

  • Shortest Remaining Time – выполняется задание, кот. осталось меньше всего выполняться.

  1. Для невытесняющая многозадачность:

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

  • многоуровневый циклический алгоритм. Может быть несколько очередей (чем больше времени на выполнение, тем ниже в очереди; самый низкий – фоновый режим).

3. Многоуровневая приоритетная очередь. Все процессы делятся на классы. Каждый класс обслуживается в своей очереди.

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

МУЛЬТИПРОГРАММИРОВАНИЕ - это способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются сразу несколько программ

Дисциплины диспетчеризации процессов:

Невытесняющее – процесс отдает процессор добровольно.

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

Диспетчеризация – выделение центр. проц. под процесс.

  1. Бесприоритетные дисциплины (невытесняющая многозадачность):

  • Первый пришел – первый обслужился (First Come – First Served);

  • Shortest Job Next – следующим выполняется самое короткое задание. Требует оценки машинного времени.

  • Shortest Remaining Time – выполняется задание, кот. осталось меньше всего выполняться.

  1. Для невытесняющая многозадачность:

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

  • многоуровневый циклический алгоритм. Может быть несколько очередей (чем больше времени на выполнение, тем ниже в очереди; самый низкий – фоновый режим).

3. Многоуровневая приоритетная очередь. Все процессы делятся на классы. Каждый класс обслуживается в своей очереди.

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

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

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

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

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

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

процесс – набор потоков

задание – набор процессов.

Отображение программных модулей на оперативную память.

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

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

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

ОТОБРАЖЕНИЕ  ПРОГРАММ НА ОП:

Пространоство имен исходных программ – (СП) виртуальное пространство имен –ОП Физическая память.

СП – система программирования.

4гб в windows –максимальная адресная  строка(2гб-адресное пространство программы,2 гб адресное пространство системы)

Виртуальное адресное пространство отображается в ОП.

Управление оперативной памятью. Смежное и несмежное размещение процессов.

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

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

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

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

При свопинге из основной памяти во внешнюю и обратно перемещается вся программа а не ее отдельная часть.

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

Первый — метод смежного размещения, а второй — метод несмежного размещения.

1)Смежное размещение является простейшим и предполагает, что в памяти, начиная с некоторого начального адреса выделяется один непрерывный участок адресного пространства.

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

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

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

 

 

Управление оперативной памятью. Страничная, сегментная и сегментно-страничная организация оперативной памяти.

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

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

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

В ОП процесс загруженный по сегментам занимает несмежные ячейки памяти.Строится таблица сегментов с адресами начала сегментов. Логически обращение к элементам программы производится указанием имени сегмента и смещения относительно его начала. Физически имя (или порядковый номер) сегмента = некоторому адресу, с которого этот сегмент начинается при его размещении в памяти + смещение.

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

3)При сегментно-страничном способе организации поцесс  разбивается на логически законченные части – сегменты, а сегменты состоят из странниц.

Адрес состоит из трех компонентов:

- №сегмента;

- №страницы;

- смещение в страннице.

Технология виртуальной памяти. Алгоритмы замещения страниц.

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

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

Технология виртуальной памяти строится на основе страничной организации памяти со свопингом страниц.

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

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

Алгоритмы замещения страниц:

- алгоритм случайного выбора;

- алгоритм замещения по времени выбывания;

- FIFO (first in – first out). Простейший алгоритм. Каждой странице присваивается временная метка. Реализуется это просто созданием очереди страниц, в конец которой страницы попадают, когда загружаются в физическую память, а из начала берутся, когда требуется освободить память. Для замещения выбирается старейшая страница.

- LRU (least recently used) - замещать страницу, которая не использовалась в течение долгого времени. По длительности простоя.

-LFU (least frequently used). При каждом прерывании по времени (а не после каждой инструкции) операционная система сканирует все страницы в памяти и у каждой страницы с установленным флагом обращения увеличивает на единицу значение счетчика, а флаг обращения сбрасывает.

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

Из перифер. устройств в ОП –ввод. Для того, чтобы это осущ.

Задачи прогр. обеспеч:

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

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

  3. способ переноса данных:

  • синхронный(блокирующий)

При передаче данных после обращения к вводу-выводу процесс приостанавлив до получения этих данных.

  • асинхронный(управляющий прерываниями)

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

  1. задача буферизации (и запись, и считывание осущ. через спец. буфер).

Назначение буферизации:

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

  2. Опред. на какое устройство инф будет передаваться .

Технология ввода-вывода.

  1. Когда вв-в осущ. с помощью ЦП.

  2. Когда вв-в осущ. специализирован. процессор-канал прямого доступа(DMA)

1* Процессор участв. во всем процессе. Выполн. все операции. Управление вв-в может быть с прерываниями и без. И синхр и ассинхрон вв-в.

2*В этом случае при прямом доступе к памяти, ЦП, встетив DMA, организ. доступ к DMA-каналу, он выполн. всю операцию по организ вв-в. И после оконч опер. этот канал формир. прерывание для ЦП.

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

УРОВНИ УПРАВЛЕНИЯ ВВОДОМ/ВЫВОДОМ. БУФЕРИЗАЦИЯ И СИНХРОНИЗАЦИЯ ДАННЫХ.

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

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

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

Принципы построения интерфейсов ОС. Интерфейс прикладного программирования (API). Варианты реализации API.

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

  1. Управление процессами со след функциями;

  2. управление памятью;

3) управление в/в;

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

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

  2. Реализация на уровне системы программирования (Функции предоставляются пользователю в виде библиотек функций соответствующего языка программирования)

  3. Реализация на уровне внешней библиотеки процедур и функций. (Функции предоставляются пользователю в виде библиотеки процедур и функций, созданной сторонним разработчиком. Система программирования ответственна лишь за то, чтобы подключить объектный код библиотеки к результирующей программе)

Основные структуры ОС

1) монолитная (простая) – ОС представляет собой набор процедур, взаимодействующие между собой (для простых аппаратных средств) – MS-DOS;

2) многоуровневая – модули разделены на уровни и организованно взаимодействуют между уровнями (W95, 98);

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

Р-м пользователя

Р-м ядра

Для того, чтобы ограничить кол-во проц. внутри ядра используют:

4) клиентсерверскую структуру – часть процесса ОС выполняется в режиме пользователя. Все процессы в такой архитектуре делятся на:

-

Выполняется в режиме пользователя

процессы – клиенты

- процессы – серверы

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

Логическая организация данных файла

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

Файл= атрибуты+данные(поле, запись, файл)+операции с файлами.

Данные файла

Поле(field) – основной элемент данных. Содержит единственное значение. Характеризуется длиной и типом данных. В зависимости от структуры файла поля м.б. либо фиксированной, либо переменной длины.

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

Файл(file) - набор данных, организованных в виде совокупности записей одинаковой структуры(однородных записей).

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

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

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

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

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

Физическая реализация хранения данных файла

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

Физическая организация файла (хранение атрибутов файла + хранение данных файла)описывает правила расположения файла на устройстве внешней памяти, в частности на диске.

Файл состоит из физических записей - блоков. Блок - наименьшая единица данных, которой внешнее устройство обменивается с оперативной памятью. Непрерывное размещение - простейший вариант физической организации, при котором файлу предоставляется последовательность блоков диска, образующих единый сплошной участок дисковой памяти. Для задания адреса файла в этом случае достаточно указать только номер начального блока. Следующий способ физической организации - размещение в виде связанного списка блоков дисковой памяти. При таком способе в начале каждого блока содержится указатель на следующий блок. В этом случае адрес файла также может быть задан одним числом - номером первого блока. Популярным способом, используемым, например, в файловой системе FAT операционной системы MS-DOS, является использование связанного списка индексов. С каждым блоком связывается некоторый элемент - индекс. Индексы располагаются в отдельной области диска (в MS-DOS это таблица FAT). Если некоторый блок распределен некоторому файлу, то индекс этого блока содержит номер следующего блока данного файла. В заключение рассмотрим задание физического расположения файла путем простого перечисления номеров блоков, занимаемых этим файлом. ОС UNIX использует вариант данного способа, позволяющий обеспечить фиксированную длину адреса, независимо от размера файла. Для хранения адреса файла выделено 13 полей.

Структура логического диска с файловой системой FAT

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

В файловой системе FAT любого логического диска делится на две области:

1)системная область – создается и инициализируется при форматировании и обновляется при манипулировании файловой структурой.

Системная область состоит из:

загрузочной записи(boot record, BR),

зарезервированных секторов(reserved sector, ResSecs),

таблицы размещения файлов(file allocation table, FAT),

корневого каталога(root directory, Rdir)

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

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

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

Отличия FAT12, FAT16, FAT32:

Основное отличие файловой системы FAT32 от FAT16 и FAT32, заключается в том, что в самой таблице размещения файлов на номер кластера отводится не 2 байта как раньше (или 1.5 байта в FAT12), а четыре (надо отметить, что старшие 4 бита не входят в номер кластера, а зарезервированы для системных нужд).

Структура тома файловой системы NTFS

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

  • Надежность. Введен механизм транзакций, при котором осуществляется «журналирование» файловых операций( незавершенные операции отменяются).

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

  • Поддержка POSIX.

  • Гибкость. Размер кластера от 512 б. до 64 Кб. Длинные имена файлов. Поддержка имен 8.3(для совместимости с FAT).

Реализация файловой системы NTFS.

Структура файловой системы

Каждый том NTFS (дисковый раздел) содержит файлы, каталоги, битовые массивы и другие структуры данных. Каждый том организован как линейная последовательность блоков (кластеров по терминологии Microsoft). Размер блока фиксирован для каждого тома и варьируется в пределах от 512 байт до 64 Кбайт в зависимости от размера тома. Для большинства дисков NTFS используются блоки размером в 4 Кбайт, как компромисс между большими блоками (для эффективности операций чтения/записи) и маленькими блоками (для уменьшения потерь дискового пространства на внутреннюю фрагментацию). Обращение к блокам осуществляется по их смещению от начала тома, для которого используются 64-разрядные числа. Главной структурой данных в каждом томе является главная файловая таблица MFT (Master File Table), представляющая собой линейную последовательность записей фиксированного (1 Кбайт) размера.

Главный служебный метафайл

(master file table , MFT)

Зона MFT

Зона для размещения файлов и каталогов

Копия первых 16 записей MFT

Зона для размещения файлов и каталогов

Структура записи MFT файловой системы NTFS

Каждая запись MFT описывает один файл или один каталог.

В ней содержатся

  • атрибуты файла, такие как его имя, временные штампы, а также

  • список дисковых адресов, указывающих на расположение блоков файла.

Первые 16 записей MFT зарезервированы для описания файлов метаданных NTFS.

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

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

Заголовок записи содержит :

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

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

  • счетчик обращений к файлу;

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

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

  • а также другие различные поля.

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

В файловой системе NTFS определено 13 атрибутов, которые могут появляться в записях MFT

Логическая организация файловой системы UNIX

Файловая система UNIX характеризуется:

  • иерархической структурой

  • защитой информации в файлах

  • трактовкой периферийных устройств как файлов

  • существованием “жестких ссылок” (hard link) и “символических ссылок” (soft link)

Файловая система организована в виде дерева с одной исходной вершиной, которая называется корнем (записывается: "/");

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

Структура файловой системы

Имени файла предшествует указание пути поиска, который описывает место расположения файла в иерархической структуре файловой системы.

Имя пути поиска состоит из компонент, разделенных между собой наклонной чертой (/); каждая компонента представляет собой набор символов, составляющих имя вершины, которое является уникальным для каталога (предыдущей компоненты), в котором оно содержится. В имя могут включаться практически любые символы (даже перевод строки “\n” (Enter)!).

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

Каталоги похожи на обычные файлы - система представляет информацию в каталоге набором байтов, но эта информация включает в себя имена файлов в каталоге в объявленном формате для того, чтобы операционная система и программы, такие как ls (выводит список имен и атрибутов файлов), могли их обнаружить.

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

Пользователи могут создавать файлы, если разрешен доступ на запись к каталогу, в котором создается файл. Вновь созданные файлы становятся листьями в древовидной структуре файловой системы.

Физическая реализация файловой системы UNIX

Физическая организация файловых систем s5 и usf

Вместо термина «кластер» используется термин «блок», как это принято в файловых системах UNIX.

Блоки хранения данных – размер блока кратен 512 байт.

Раздел ФС делится на 4 области:

  • загрузочный блок;

  • суперблок(superblock) содержит самую общую информацию о файловой системе

  • Массив индексных дескрипторов(inode list)

  • Блоки хранения данных файла

Запись о файле в каталоге состоит из двух полей: символьного имени и номера индексного дескриптора.

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

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

Одной из важнейших структур данных каждой файловой системы является таблица метаданных, которая хранится на диске и кэшируется в основной памяти.

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

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

Физические адреса блоков хранятся в виде массива из 13 элементов.

Выделение дисковых блоков

Диск можно рассматривать как массив блоков.

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

Организация дискового пространства в UNIX такова.

Блок 0 является загрузочным и не используется файловой системой.

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

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

Группа блоков 2-N содержит таблицу i-узлов.

Блоки, начиная с блока N+ 1, либо выделены для файлов, либо свободны.

Структуры данных в основной памяти

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

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

Архитектура Windows 2000\XP

Ядро осуществляет управление процессами, памятью, диспетчеризацию прерываний и исключений, реализует базовые синхронизационные примитивы, необходимые исполнительной системе. Интерфейс ядра используется только исполнительной системой и программам пользовательского режима недоступен. Между ядром и аппаратной частью компьютера располагается слой программного обеспечения, называемый слоем абстрагирования от оборудования или уровнем аппаратных абстракций (Hardware Abstraction Layer, HAL).

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

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

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

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

  • либо по принципу клиент-сервер,

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

На практике часто используется сочетание этих двух механизмов.

Благодаря такой организации Windows 2000 соединяет в себе достоинства микроядерной и расширяемой библиотечной архитектур.

Компоненты исполнительной системы.

Менеджер объектов.

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

Дескрипторы объектов исполнительной системы Windows 2000 универсальные: с их помощью можно идентифицировать процессы, потоки и другие объекты.

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

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

Средство локального вызова процедур.(Local Procedure Call, LPC). Поддерживает взаимодействие между процессами-клиентами и процессами-серверами.

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

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

Объектная модель Windows 2000/XP и менеджер объектов.

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

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

В Windows 2000 используется следующая объектная терминология:

  • Объект -экземпляр объектного типа

  • Атрибуты объекта - элементы данных состояния объекта.

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

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

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

  • Менеджер объектов создает и удаляет объекты, а также отслеживает их использование.

Использование объектов в операционной системе Windows 2000 осуществляется согласно общим принципам: открытие, работа с объектом, закрытие.

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

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

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

Дескрипторами открытых объектов процессов могут пользоваться все его потоки.

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

Управление процессами и потоками в Windows 2000

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

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

Процессы. Процессы представляют собой контейнеры для ресурсов. У процесса есть :

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

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

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

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

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

Помимо состояния, идентификатора и двух стеков, у каждого потока есть

  • контекст (в котором сохраняются его регистры, когда он не работает),

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

  • а также может быть свой собственный маркер доступа.

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

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

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

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

Операционная система не знает о смене волокон, так как все тот же поток продолжает работу.

Состояние потока в Windows 2000/XP

Поток, созданный в операционной системе Windows 2000, может находиться в одном из шести состояний:

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

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

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

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

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

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

Общая архитектура системы UNIX. Модули ядра

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

Ядро UNIX отвечает за:

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

  • планирование доступа к ресурсам,

  • обеспечение защиты процессов друг от друга.

Процессы.

    • Системные процессы ( init и swapper ).

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

Основные модули ядра:

  • интерфейс системного вызова - позволяет процессам обращаться к сервисам операционной системы;

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

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

  • файловая подсистема - управляет иерархическим пространством имен файлов, каталогов и устройств ввода-вывода, именование которых унифицировано ;

  • модуль управления памятью - поддерживает виртуальную память UNIX ;

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

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

Процессом в системе UNIX называется единица исполнения программного кода (классическая UNIX не поддерживает потоки).

В основе UNIX лежит концепция процесса - единицы управления и единицы потребления ресурсов.

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

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

Основные структуры данных процесса. При управлении процессами операционная система использует два основных типа информационных структур:

  • дескриптор процесса (структура proc)

  • и контекст процесса (структура user).

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

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

На основании информации, содержащейся в таблице процессов, операционная система осуществляет планирование и синхронизацию процессов.

В дескрипторе прямо или косвенно (через указатели на связанные с ним структуры) содержится информация о

  • состоянии процесса,

  • расположении образа процесса в оперативной памяти и на диске,

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

  • идентификатор пользователя, создавшего процесс,

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

  • некоторая другая информация.

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

  • содержимое регистров процессора,

  • коды ошибок выполняемых процессором системных вызовов,

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

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

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

Распределение памяти процессов ОС UNIX

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

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

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

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

  • текст (программный код),

  • данные

  • и стек.

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

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

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

Режимы выполнения процесса.

В UNIX для процессов предусмотрены два режима выполнения: привилегированный режим - "система" и обычный режим - "пользователь".

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

В режиме "система" выполняются программы ядра, а в режиме "пользователь" - оболочка и прикладные программы.

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

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

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