
- •Оглавление
- •1. Понятие программного обеспечения (ПО). Классификация программного обеспечения по выполняемым функциям, структура системного ПО. Основные свойства системного программного обеспечения.
- •Эти три компонента ОС тесно связаны и взаимодействуют друг с другом (например, при работе с данными компоненты файловой системы запрашивают процессы управления ресурсами для получения памяти под размещение буферов).
- •3 КЛАССИФИКАЦИЯ ОС
- •4 ВЫЧИСЛИТЕЛЬНЫЕ СЕТИ. ОПРЕДЕЛЕНИЕ И КЛАССИФИКАЦИЯ СЕТЕЙ. ПОНЯТИЯ ТОПОЛОГИИ СЕТЕЙ И МЕТОДОВ ДОСТУПА, ПРИМЕРЫ. ПОНЯТИЕ ПРОТОКОЛА И ЭТАЛОННАЯ СЕМИУРОВНЕВАЯ МОДЕЛЬ OSI ВЗАИМОДЕЙСТВИЯ ОТКРЫТЫХ СИСТЕМ (В СЕТИ). МЕТОДЫ КОММУТАЦИИ. ПОНЯТИЕ МАРШРУТИЗАЦИИ.
- •5 ОБЩИЕ ПРИНЦИПЫ ПОСТРОЕНИЯ ОС. ОСНОВНЫЕ ХАРАКТЕРИСТИКИ СОВРЕМЕННЫХ ОС. ПРИМЕРЫ РЕАЛИЗАЦИИ ОБЩИХ ПРИНЦИПОВ И ОСОБЕННОСТИ ОРГАНИЗАЦИИ И ФУНКЦИОНИРОВАНИЯ ОС.
- •6 ОПРЕДЕЛЕНИЕ И КЛАССИФИКАЦИЯ РЕСУРСОВ. ПРИМЕРЫ. ДЛЯ КАЖДОГО КЛАССА РЕСУРСОВ НУЖНО УКАЗАТЬ, КАКИМИ СВОЙСТВАМИ ОН ОБЛАДАЕТ, КАКИЕ ЗАДАЧИ ПО УПРАВЛЕНИЮ ИМ РЕШАЕТ ОС, КАКИЕ ПРОБЛЕМЫ МОГУТ БЫТЬ
- •7 ОПРЕДЕЛЕНИЕ И КЛАССИФИКАЦИЯ ПРОЦЕССОВ. ПРОЦЕССЫ И ПОТОКИ
- •8 СОСТОЯНИЯ ПРОЦЕССОВ И ФУНКЦИЯ ОС ПО УПРАВЛЕНИЮ ПРОЦЕССАМИ. ЗАДАЧИ, РЕШАЕМЫЕ ОС ПРИ РЕАЛИЗАЦИИ ФУНКЦИЙ УПРАВЛЕНИЯ ПРОЦЕССАМИ, ПРОБЛЕМЫ ДЛЯ РАЗЛИЧНЫХ КЛАССОВ ПРОЦЕССОВ. ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ УПРАВЛЕНИЯ, МЕХАНИЗМОВ РАЗРЕШЕНИЯ ПРОБЛЕМ
- •9 ПЛАНИРОВАНИЕ И ДИСПЕТЧЕРИЗАЦИЯ ПРОЦЕССОВ: ПОНЯТИЯ, ИХ СВЯЗЬ. УРОВНИ ПЛАНИРОВАНИЯ. ДИСЦИПЛИНЫ ПЛАНИРОВАНИЯ.
- •10 ПОНЯТИЕ МУЛЬТИЗАДАЧНОСТИ, КООПЕРАТИВНАЯ И ВЫТЕСНЯЮЩАЯ МУЛЬТИЗАДАЧНОСТЬ. МУЛЬТИПРОГРАММИРОВАНИЕ И МУЛЬТИЗАДАЧНОСТЬ – СВЯЗЬ ДВУХ ПОНЯТИЙ
- •11 СТРУКТУРЫ ДАННЫХ, ИСПОЛЬЗУЕМЫЕ ДЛЯ РЕАЛИЗАЦИИ ОСНОВНЫХ ФУНКЦИЙ ОС. ОБОБЩЁННЫЕ ДЕСКРИПТОРЫ. ОБЪЕКТЫ ЯДРА ОС WINDOWS NT, ИСПОЛЬЗУЕМЫЕ ДЛЯ РЕАЛИЗАЦИИ ФУНКЦИЙ УПРАВЛЕНИЯ, ДИСПЕТЧЕРИЗАЦИИ И СИНХРОНИЗАЦИИ ПРОЦЕССОВ
- •12, 13 ПРОБЛЕМА ВЗАИМНОГО ИСКЛЮЧЕНИЯ. ПОНЯТИЕ КРИТИЧЕСКОЙ СЕКЦИИ, ЕЁ СВОЙСТВА, УСЛОВИЯ РЕАЛИЗАЦИИ.
- •14 ПОНЯТИЕ СЕМАФОРА, СЕМАФОРНЫЕ ПРИМИТИВЫ, БИНАРНЫЕ И СЧИТАЮЩИЕ СЕМАФОРЫ. ПРИМЕРЫ ОБЪЕКТОВ ДИСПЕТЧЕРИЗАЦИИ В MS WINDOWS, КОТОРЫЕ МОГУТ ИСПОЛЬЗОВАТЬСЯ КАК «СЕМАФОРЫ».
- •15 ПРИМЕНЕНИЕ БИНАРНЫХ СЕМАФОРОВ ДЛЯ РЕАЛИЗАЦИИ ВЗАИМНОГО ИСКЛЮЧЕНИЯ И СИНХРОНИЗАЦИИ ПРОЦЕССОВ.
- •16 ОБЩИЕ СЕМАФОРЫ, РЕШЕНИЕ ЗАДАЧИ «ПИСАТЕЛЕЙ И ЧИТАТЕЛЕЙ» ПРИ РАБОТЕ С ЦИКЛИЧЕСКИМ БУФЕРОМ.
- •17 ПРОБЛЕМА ТУПИКА И ЗАДАЧИ, СВЯЗАННЫЕ С РЕШЕНИЕМ ПРОБЛЕМЫ ТУПИКА: ФОРМУЛИРОВКИ ЗАДАЧ И ПОДХОДЫ К РЕШЕНИЮ.
- •18 ЗАДАЧА ПРЕДОТВРАЩЕНИЯ ТУПИКА, ПОДХОДЫ К РЕШЕНИЮ
- •20 МОДЕЛЬ СИСТЕМЫ С ПОВТОРНО ИСПОЛЬЗУЕМЫМИ РЕСУРСАМИ (ГРАФ ПОВТОРНО ИСПОЛЬЗУЕМЫХ РЕСУРСОВ).
- •21. МОДЕЛЬ СИСТЕМЫ С ПОТРЕБЛЯЕМЫМИ РЕСУРСАМИ (ГРАФ ПОТРЕБЛЯЕМЫХ РЕСУРСОВ).
- •22 СИСТЕМА С ПОВТОРНО ИСПОЛЬЗУЕМЫМИ И ПОТРЕБЛЯЕМЫМИ РЕСУРСАМИ (ГРАФ ОБОБЩЁННЫХ РЕСУРСОВ). ПРИМЕРЫ.
- •23 РЕШЕНИЕ ЗАДАЧИ РАСПОЗНАВАНИЯ ТУПИКА ДЛЯ СИСТЕМ С ПОВТОРНО ИСПОЛЬЗУЕМЫМИ РЕСУРСАМИ: ОСНОВНАЯ ТЕОРЕМА О ТУПИКЕ. АЛГОРИТМ РЕДУКЦИИ. ПРИМЕРЫ РЕДУКЦИИ.
- •24 РЕШЕНИЕ ЗАДАЧИ РАСПОЗНАВАНИЯ ТУПИКА ДЛЯ СИСТЕМ С ПОВТОРНО ИСПОЛЬЗУЕМЫМИ РЕСУРСАМИ: ЧАСТНЫЕ СЛУЧАИ (СИСТЕМЫ С ЕДИНИЧНЫМИ РЕСУРСАМИ, СИСТЕМЫ С ОГРАНИЧЕНИЯМИ НА ЗАПРОСЫ, СИСТЕМЫ В ВЫГОДНОМ СОСТОЯНИИ).
- •26 РАСПОЗНАВАНИЕ ТУПИКОВ В СИСТЕМАХ С ПОВТОРНО ИСПОЛЬЗУЕМЫМИ РЕСУРСАМИ С ОГРАНИЧЕНИЯМИ НА ВЫПОЛНЕНИЕ ОПЕРАЦИЙ.
- •26 РАСПОЗНАВАНИЕ ТУПИКОВ В СИСТЕМАХ С ПОТРЕБЛЯЕМЫМИ РЕСУРСАМИ И В СИСТЕМАХ С ОБОБЩЁННЫМИ РЕСУРСАМИ: АЛГОРИТМ РЕДУКЦИИ. ПРИМЕРЫ.
- •30. ИЕРАРХИЯ ЗАПОМИНАЮЩИХ УСТРОЙСТВ ВС, ХАРАКТЕРИСТИКИ УСТРОЙСТВ И СВЯЗЬ, МЕХАНИЗМЫ СОЗДАНИЯ ИЕРАРХИИ. ПРИМЕРЫ.
- •35 СРЕДСТВА ЗАЩИТЫ ПАМЯТИ: ЗАЩИТА ПО УРОВНЯМ ПРИВИЛЕГИЙ, ПРИВИЛЕГИРОВАННЫЕ КОМАНДЫ И КОМАНДЫ, ЧУВСТВИТЕЛЬНЫЕ К УРОВНЯМ ПРИВИЛЕГИЙ). ПОДДЕРЖКА В INTEL.
Примером параллельно используемого ресурса является база данных, которая используется только для чтения информации, но та же база данных может оказаться используемой строго последовательно, если процессы не только читают информацию, но и модифицируют ее.
По степени активности различают активные и пассивные ресурсы. Активные ресурсы при использовании способны сами выполнять действия по отношению к другим ресурсам или процессам, вызывая их изменение. При использовании пассивных ресурсов операции выполняются над ними, допустимые для этих объектов операции приводят к изменению их состояния (то есть внутренних или внешних характеристик).
Активным ресурсом является, например, центральный процессор, а пассивным - оперативная память.
По степени важности различают главные и второстепенные ресурсы. Ресурс является главным по отношению к конкретному процессу, если без его выделения процесс принципиально не может развиваться. Ресурсы, которые допускают альтернативное развитие процесса, если они не будут выделены, называются второстепенными. Если второстепенные ресурсы недоступны, процесс может работать только с главными ресурсами, возможно, не достигая при этом всех запланированных целей.
Центральный процессор и оперативная память всегда являются главными ресурсами. По форме реализации различают “твердые” ресурсы (hardware - аппаратные компоненты ВС), а также “мягкие” (программные и информационные) ресурсы (software).
7 ОПРЕДЕЛЕНИЕ И КЛАССИФИКАЦИЯ ПРОЦЕССОВ. ПРОЦЕССЫ И ПОТОКИ
Понятия “процесс” и “процессор” неразрывно связаны друг с другом.
Термин “процесс” является базовым, но в то же время не имеет четкого определения. В самом общем случае можно считать, что процесс представляет собой всю совокупность действий, связанных с исполнением программы процессором. Существуют различные критерии классификации процессов в зависимости от их свойств, существенных с точки зрения реализации функций управления процессами операционной системы:
•по временным характеристикам;
•по принадлежности к центральному процессору;
•по принадлежности ОС;
•по связности.
Свойства процессов определяют отношения, в которые процессы могут вступать, и, следовательно, проблемы, возникающие при реализации этих отношений. Одно из свойств, существенно влияющих на организацию ОС, - возможность параллельного выполнения нескольких процессов в ВС в одно и то же время. Для многопрограммных ВС проблема управления процессами состоит в том, что в момент порождения процессов их трассы неизвестны. При этом необходимо учитывать, как соотносятся во времени интервалы существования различных процессов:
•процессы называются последовательными, если интервалы их существования не пересекаются во времени;
•параллельными являются процессы, интервалы существования которых пересекаются во времени.
Существует аппаратный параллелизм, когда обработка параллельно выполняется с помощью нескольких обрабатывающих устройств (процессоров). Но существует и логический параллелизм (концептуальный), разработанный для многопрограммных ОС,
15
когда логически операционная система представляется как набор последовательных процессов, которые действуют почти независимо друг от друга, кооперируются друг с другом путем пересылки сообщений и синхронизирующих сигналов и состязаются за использование ресурсов.
Временные характеристики процессов определяются также длительностями интервалов их существования и пребывания с различных состояниях. В зависимости от существующих ограничений различают
•процессы реального времени (требуют такого планирования, чтоб гарантировать окончание процесса за конкретное время или к конкретному моменту времени, то есть время центрального процессора является для них критическим ресурсом);
•интерактивные процессы (время их существования - не больше времени допустимой реакции ВС на запрос пользователя);
•пакетные процессы (время их существования с момента порождения и до окончания практически не ограничивается, они могут как угодно долго находиться в очередях, ожидая распределения ресурсов, выполняться “на фоне”).
Воперационных системах принято также различать процессы не только по времени, но и по обрабатывающему устройству, на котором они выполняются. По этому признаку различают
•внутренние (или программные) процессы, которые развиваются на центральных процессорах;
•внешние процессы, развитие которых происходит под контролем ОС на
устройствах, отличных от ЦП (например, процессы ввода/вывода при использовании прямого доступа к памяти).
Программные процессы в ВС принято делить на
*системные (соответствующие программам ОС) и
*пользовательские (порожденные прикладными программами, приложениями).
По наличию связей процессы также можно классифицировать. По связности различают два типа процессов:
*взаимосвязанные - это процессы, между которыми существует хотя бы один тип связи, поддерживаемой с помощью системы управления процессами операционной системы:
•функциональные связи,
•связи по управлению,
•информационные связи (связи по данным),
•пространственно-временные;
*изолированные - в противном случае (нет никаких связей или влияние может быть только косвенным).
Существующие типы процессов учитываются при реализации систем планирования: процессы реального времени обычно получают максимальный приоритет, а наименьшим приоритетом обладают пакетные процессы; требуемый режим выполнения программ определяет также и способ перераспределения времени центрального процессора.
Функциональная зависимость процессов порождает отношение предшествования:
для двух процессов, для которых существует зависимость функции второго процесса от успешного выполнения функции первого процесса.
16
При наличии между процессами управляющих связей устанавливается отношение вида “порождающий-порождаемый” (один процесс создается по требованию другого процесса). Окончание родительского процесса обычно должно привести к завершению всех его потомков либо процесс не может быть завершен до окончания всех порожденных им процессов.
При наличии информационных связей между процессами их называют взаимодействующими. Особенности реализации взаимодействия обуславливаются динамикой процессов (являются ли они параллельными или последовательными), а также выбранным способом связи (явным, с помощью прямого обмена сообщениями между процессами, или неявным - через разделяемые структуры данных).
Если процессы не связаны друг с другом по данным, то они называются информационно-независимыми. Между такими процессами может быть функциональная или пространственно-временная связь.
Если процессы имеют пространственно-временную связь (то есть выполняются на одной ВС и интервалы их существования пересекаются), то при развитии эти процессы используют общие ресурсы ВС, между ними устанавливается связь по ресурсам. Взаимосвязанные по ресурсам процессы вступают в отношение конкуренции, становятся
конкурирующими
Термин “многозадачность” в современных операционных системах не только включает в себя понятие мультипрограммирования, но и расширяет эту концепцию, предполагая возможность одновременного выполнения отдельных частей одной и той же программы, которые называют нитями или потоками (threads). Поток - это фрагмент контекста одного процесса, включающий только те данные (область рабочих переменных и текущего состояния), которые необходимы для реализации выполняемых потоком функций. Все потоки в рамках одного процесса-родителя разделяют единое адресное пространство. Последовательность выполнения кода внутри процесса описывается потоками. Всякий раз при инициализации процесса система создает его первичный поток (primary thread). Первичный поток отвечает за инициализацию процесса, обработку системных сигналов и событий. Этот поток “живет” до того момента, когда управление не будет возвращено операционной системе для завершения процесса. Во время своего выполнения потоки способны создавать дополнительные потоки. Таким образом, внутри одного процесса может быть создано несколько потоков. Многопотоковые приложения позволяют добиться минимальных простоев процессора, а значит, сделать выполнение приложений более эффективным.
8 СОСТОЯНИЯ ПРОЦЕССОВ И ФУНКЦИЯ ОС ПО УПРАВЛЕНИЮ ПРОЦЕССАМИ. ЗАДАЧИ, РЕШАЕМЫЕ ОС ПРИ РЕАЛИЗАЦИИ ФУНКЦИЙ УПРАВЛЕНИЯ ПРОЦЕССАМИ, ПРОБЛЕМЫ ДЛЯ РАЗЛИЧНЫХ КЛАССОВ ПРОЦЕССОВ. ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ УПРАВЛЕНИЯ, МЕХАНИЗМОВ РАЗРЕШЕНИЯ ПРОБЛЕМ
Функция ОС по управлению процессами состоит в создании процессов и обеспечении возможностей для их нормального развития через распределение ресурсов, запрашиваемых процессами, и организацию, если необходимо, их взаимодействия в ходе выполнения.
В системах, поддерживающих возможность создания потоков, реализуется набор функций как по управлению процессами, так и по управлению потоками, принадлежащими процессам.
17

Операционные системы, реализующие функцию управления процессами, должны иметь возможность выполнять определенные операции, изменяющие состояние системы:
–создание (порождение) процесса;
–уничтожение процесса (завершение);
–блокирование процесса (перевод в состояние ожидания);
–разблокирование процесса (перевод в состояние готовности);
–активизация процесса (переключение процессора на выполнение соответствующей программы, запуск процесса);
–прерывание процесса (приостановка выполнения программы в результате внешнего события, например, истечения кванта времени, выделенного процессору, - перевод процесса из состояния активности в состояние готовности).
Развитие процесса в ВС начинается с его порождения. Программа, хранящаяся во внешней памяти, не является процессом, но она порождает процесс при инициализации ее выполнения.
Процесс находится в состоянии порождения, когда ведется подготовка соответствующей программы к исполнению. При этом операционная система определяет все ресурсы, которые необходимы для начала выполнения данной программы. Если оказывается, что данные ресурсы не могут быть выделены, то процесс, соответствующий программе, не порождается и программа сразу переводится в состояние завершения (например, недостаточно оперативной памяти для загрузки программы). Если ресурсы, требующиеся для инициализации программы, существуют в системе, но в данный момент недоступны, то программа может быть поставлена в очередь для ожидания распределения ей запрашиваемых ресурсов. Если процессу предоставлены все необходимые для начала выполнения ресурсы (кроме центрального процессора), то говорят, что процессу выделен виртуальный процессор, то есть процесс создан и переходит в состояние готовности.
Порождение |
Готовность |
Активность |
Ожидание |
Окончание
Виртуальный процессор
Состояние готовности характеризуется наличием у процесса всех необходимых для начала или продолжения выполнения ресурсов, кроме реального центрального процессора (ЦП). В следующее состояние процесс может перейти после выделения ему времени центрального процессора, если программа не будет снята принудительно.
Активное состояние - это состояние выполнения последовательности команд программы процесса на процессоре. В этом состоянии процесс имеет все ресурсы и занимает центральный процессор.
18
Блокирование процесса происходит в результате выполнения им запроса к системе на выполнение какого-либо действия (например, ввода или вывода) или на предоставление какого-либо ресурса. Процесс, сделавший запрос, переходит в состояние ожидания, его дескриптор попадает в соответствующую очередь процессов, ожидающих удовлетворения своих запросов.
Операция уничтожения процесса является обратной операцией для создания процесса. При уничтожении процесса уничтожается его виртуальный процессор, все распределенные ему ресурсы возвращаются в систему. Если по какой-либо причине родительский процесс завершается раньше, чем порожденные им потомки, то его завершение может быть отложено до завершения порожденных процессов или они могут быть завершены принудительно. Окончание процесса ведет к уничтожению его дескриптора.
Кроме того ОС может выполнять дополнительно операции по управлению процессами:
•приостановки (задержки) процесса;
•возобновления задержанного процесса;
•изменения приоритета процесса;
•изменение полномочий процесса.
Приостановка процесса выводит его из списка процессов, конкурирующих за получение ресурсов в системе. Возобновление процесса возвращает его в состав списка, который он занимал до приостановки (если процесс был прерван и задержан в состоянии активности, то его дескриптор попадает в список процессов, находящихся в состоянии готовности и ожидающих выделения им времени центрального процессора; если задерживался процесс, сделавший запрос на какой-либо ресурс, то он остается в очереди процессов, ожидающих распределения этого ресурса). Приостановка/возобновление процесса реализуется через изменение значения соответствующего поля (текущее состояние процесса) в дескрипторе этого процесса.
Изменение приоритета процесса может вызвать изменение положения его дескриптора в занимаемой им очереди. Операция изменения приоритета процесса выполняется в соответствии с установленными в данной системе правилами.
Межпроцессорное взаимодействие реализуется операциями над общими ресурсами, используемыми процессами. Проблемы, возникающие в связи с необходимостью согласования выполнения программ в ВС, рассматриваются ниже (проблема взаимного исключения и реализации критических секций и проблема тупика). Если времена существования последовательных процессов при их исполнении хотя бы частично перекрываются, такие процессы становятся “параллельными” и возникает проблема синхронизации использования устройств ВС, доступа к данным со стороны этих процессов. В этом случае процессы могут конкурировать за использование общих ресурсов (как аппаратных, так и информационных), выполняемые ими функции могут зависеть друг от друга и требовать определенной последовательности исполнения для реализации общей работы. Эта проблема становится особенно острой, если процессы являются взаимодействующими.
Проблема реализации взаимного исключения возникает при разделении данных несколькими процессами. Чтобы предотвратить некорректное выполнение конкурирующих за доступ к общим данным процессов, реализуется взаимное исключение,
19