- •1. Введение. Классификация видов программного обеспечения.
- •2.Назначение и функции операционных систем.
- •3. Мультипрограммирование. Режим разделения времени.
- •4. Многопользовательский режим работы. Режимы реального времени.
- •4. Содержание лекции:
- •1.Универсальные операционные системы и ос специального назначения.
- •2. Классификация операционных систем.
- •3. Модульная структура построения ос и их переносимость.
- •4. Управление процессором.
- •Раздел 2. Организация и управление процессами
- •4. Содержание лекции:
- •1. Понятие процесса и ядра. Сегментация виртуального адресного пространства процесса.
- •2.Структура контекста процесса. Идентификатор и дескриптор процесса.
- •3.Диспетчеризация и синхронизация процессов.
- •4. Иерархия процессов. Понятие приоритета и очереди процессов.
- •5.Планы проведения семинарских, лабораторных занятий
- •Тема 1 Структура операционной системы. Схема работы и взаимодействие элементов ос. Типы управляющих структур. Многозадачность.
- •1.Ознакомление со структурой операционной системы на примерах современных ос.
- •2. Рассмотрение схемы работы и взаимодействие элементов ос на примере WindowsXp.
- •3. Знакомство типами управляющих структур ос Minix, Linux WindowsNt.
- •Тема 2 Работа ядра при управлении процессом. Атрибуты процесса. Обработка прерываний. Порождение дочерних процессов в среде ос. Синхронизация процессов.
- •1. Работа ядра при управлении процессом.
- •2. Атрибуты процесса.
- •3. Обработка прерываний.
- •4. Порождение дочерних процессов в среде ос. Синхронизация процессов.
- •Тема 3 Функции, структура, алгоритм работы менеджера ввода-вывода. Организация защиты ввода-вывода.
- •1. Функции, структура, алгоритм работы менеджера ввода-вывода.
- •2. Организация защиты ввода-вывода.
- •Тема 4 Структура и свойства файловой системы. Права доступа. Способы защиты файлов. Кэширование.
- •1. Структура и свойства файловой системы.
- •2. Права доступа.
- •3. Способы защиты файлов.
- •4. Кэширование.
- •Тема 5 Управление памятью. Совместное использование памяти. Защита памяти. Механизм реализации виртуальной памяти. Стратегии подкачки страниц.
- •1. Управление памятью. Совместное использование памяти
- •2. Защита памяти.
- •3. Механизм реализации виртуальной памяти.
- •4. Стратегии подкачки страниц.
- •Тема 6 Состав и работа стандартных команд ос по управлению устройствами, файлами, процессами, диагностикой.
- •1. Состав команд ос по управлению устройствами, файлами, процессами, диагностикой.
- •2. Работа стандартных команд ос по управлению устройствами, файлами, процессами, диагностикой.
2.Структура контекста процесса. Идентификатор и дескриптор процесса.
Для того чтобы операционная система могла управлять процессами, она должна располагать всей необходимой для этого информацией. С этой целью на каждый процесс заводится специальная информационная структура, называемая дескриптором процесса (описателем задачи, блоком управления задачей). В общем случае дескриптор процесса содержит следующую информацию:
идентификатор процесса (так называемый PID — process identificator);
тип (или класс) процесса, который определяет для супервизора некоторые правила предоставления ресурсов;
приоритет процесса, в соответствии с которым супервизор предоставляет ресурсы. В рамках одного класса процессов в первую очередь обслуживаются более приоритетные процессы;
переменную состояния, которая определяет, в каком состоянии находится процесс (готов к работе, в состоянии выполнения, ожидание устройства ввода/вывода и т. д.);
защищенную область памяти (или адрес такой зоны), в которой хранятся текущие значения регистров процессора, если процесс прерывается, не закончив работы. Эта информация называется контекстом задачи;
информацию о ресурсах, которыми процесс владеет и/или имеет право пользоваться (указатели на открытые файлы, информация о незавершенных операциях ввода/вывода и т. а.);
место (или его адрес) для организации общения с другими процессами;
параметры времени запуска (момент времени, когда процесс должен активизироваться, и периодичность этой процедуры);
в случае отсутствия системы управления файлами — адрес задачи на диске в ее исходном состоянии и адрес на диске, куда она выгружается из оперативной памяти, если ее вытесняет другая (для диск-резидентных задач, которые постоянно находятся во внешней памяти па системном магнитном диске и загружаются в оперативную память только на время выполнения).
Описатели задач, как правило, постоянно располагаются в оперативной памяти с целью ускорить работу супервизора, который организует их в списки (очереди) и отображает изменение состояния процесса перемещением соответствующего описателя из одного списка в другой. Для каждого состояния (за исключением состояния выполнения для однопроцессорной системы) операционная система ведет соответствующий список задач, находящихся в этом состоянии. Однако для состояния ожидания может быть не один список, а столько, сколько различных видов ресурсов могут вызывать состояние ожидания. Например, состояний ожидания завершения операции ввода/вывода может быть столько, сколько устройств ввода/вывода имеется в системе.
Контекст процесса или треда содержит программный счетчик и стек, рабочие регистры процессора, потоки-потомки, состояние. При разделении процессорного времени, в соответствии с различными вариантами диспетчеризации происходит полное переключение дескрипторов процессов, если управление процессором передается полновесному процессу и переключение только контекста потока(треда) при наличии в полновесном процессе внутреннего паралеллизма. Это происходит потому, что все треды имеют одно и то же виртуальное адресное пространство своего процесса. Это означает, что они разделяют одни и те же глобальные переменные. Поскольку каждый тред может иметь доступ к каждому виртуальному адресу, один тред может использовать стек другого треда. Между потоками нет полной защиты, так как это, во-первых, невозможно, а во-вторых, не нужно. Все потоки одного процесса всегда решают общую задачу одного пользователя, и механизм потоков используется здесь для более быстрого решения задачи путем ее распараллеливания. При этом программисту очень важно получить в свое распоряжение удобные средства организации взаимодействия частей одной программы. Кроме разделения адресного пространства, все треды разделяют также набор открытых файлов, используют общие устройства, выделенные процессу, имеют одни и те же наборы сигналов, семафоры и т. п..
