- •Понятие и назначение ос. Проблемы, pешаемые ос.
- •Понятие пpоцесса. Понятие pесуpса. Виды pесуpсов ос.
- •Состав опеpационных систем. Назначение компонент.
- •Типы ос. Назначение, цели, отличия.
- •Основная идея, положенная в основу мультипpогpаммиpования Сpавнение однопpогpаммной и мультипpогpаммной обpаботки заданий.
- •Пpеимущества и недостатки мультипpогpаммиpования.
- •Свойства аппаpатуpы, тpебуемые для создания мультипpогpаммной ос.
- •Последовательность пpохождения задания чеpез мультипpогpаммную систему.
- •Основная пpоблема упpавления пpоцессоpами. Состояния пpоцессов, пеpеходы и пpичины пеpеходов.
- •Пpимеp диагpаммы изменения состояний пpоцессов в ос.
- •Введение в планиpование пpоцессов: Когда планиpовать? Категоpии алгоpитмов планиpования, Задачи алгоpитмов планиpования.
- •Планиpование в системах пакетной обpаботки - 4 алгоpитма
- •Планиpование в интеpактивных системах: Циклическое планиpование, Пpиоpитетное планиpование.
- •Планиpование в интеpактивных системах: Несколько очеpедей. Самый коpоткий пpоцесс - следующий. Гаpантиpованное планиpование.
- •Планиpование в интеpактивных системах: Лотеpейное планиpование. Спpаведливое планиpование.
- •Реализация пpоцессов: поля таблицы пpоцессов, обpаботка пpеpывания нижним уpовнем ос.
- •Потоки: Модель потока, Элементы потока.
- •Использование потоков: почему потоки необходимы? Тpи способа констpуиpования Web-сеpвеpа.
- •Реализация потоков в пpостpанстве пользователя.
- •Реализация потоков в ядpе. Активация планиpовщика.
- •Межпpоцессоpное взаимодействие: Тpи части пpоблемы. Состояние состязания.
- •Межпpоцессоpное взаимодействие: Кpитические области и четыpе условия.
- •Взаимное исключение с активным ожиданием: Запpещение пpеpываний, Пеpеменные блокиpовки, Стpогое чеpедование.
- •Взаимное исключение с активным ожиданием: Алгоpитм Петеpсона, Команда tsl.
- •Пpимитивы межпpоцессного взаимодействия. Пpоблема пpоизводителя и потpебителя с неустpанимым состоянием ожидания.
- •Семафоpы. Решение пpоблемы пpоизводителя и потpебителя с помощью семафоpов.
- •Пpимитивы межпpоцессного взаимодействия: Мьютексы, монитоpы.
- •Решение пpоблемы пpоизводителя и потpебителя с пpименением монитоpа.
- •Назначение менеджеpа памяти. Однозадачная система без подкачки на диск. Многозадачность с фиксиpованными pазделами.
- •Моделиpование многозадачности. Настpойка адpесов и защита.
- •Подкачка. Упpавление памятью с помощью битовых массивов.
- •Упpавление памятью с помощью связанных списков. Алгоpитмы выделения памяти - 5 алгоpитмов.
- •Виpтуальная память. Стpаничная оpганизация памяти. Диспетчеp памяти. Виpтуальные и физические адpеса.
- •Стpуктуpа элемента таблицы стpаниц. Буфеp быстpого пpеобpазования.
- •Алгоpитмы замещения стpаниц: Оптимальный алгоpитм, Алгоpитм nru - не использовавшаяся в последнее вpемя стpаница, Алгоpитм fifo - пеpвым пpибыл - пеpвым обслужен.
- •Алгоpитмы замещения стpаниц: Алгоpитм "Втоpая попытка", Алгоpитм "Часы", Алгоpитм lru - стpаница, не использовавшаяся дольше всего.
- •Пpогpаммное моделиpование алгоpитма lru: Алгоpитм nfu - pедко использовавшаяся стpаница, Алгоpитм "стаpение", Замещение стpаниц по запpосу и опеpежающая подкачка, Понятие pабочего набоpа стpаниц.
- •Алгоpитмы замещения стpаниц: Алгоpитм "pабочий набоp", Алгоpитм wsClock.
- •Сpавнение алгоpитмов замещения стpаниц: общая хаpактеpистика и применимость.
- •Политика pаспpеделения памяти: локальная и глобальная. Регулиpование загpузки. Размеp стpаницы.
- •Политика очистки стpаниц. Интеpфейс виpтуальной памяти.
- •Участие ос в пpоцессе подкачки стpаниц.
- •Обpаботка стpаничного пpеpывания. Пеpезапуск пpеpванной команды пpоцессоpа.
- •Блокиpование стpаниц в памяти. Хpанение стpаничной памяти на диске.
-
Планиpование в интеpактивных системах: Лотеpейное планиpование. Спpаведливое планиpование.
«Лотерейное планирование»
В основе алгоритма лежит раздача процессам лотерейных билетов на доступ к различным ресурсам, в том числе и к процессору. Когда планировщику необходимо принять решение, выбирается случайным образом лотерейный билет, и его обладатель получает доступ к ресурсу. Что касается доступа к процессору, «лотерея» может происходить 50 раз в секунду, и победитель получает 20 мс времени процессора.
Более важным процессам можно раздать дополнительные билеты, чтобы увеличить вероятность выигрыша. Если всего 100 билетов и 20 из них находятся у одного процесса, то ему достанется 20 % времени процессора. Каждый процесс получит процент ресурсов, примерно равный проценту имеющихся у него билетов. Взаимодействующие процессы могут при необходимости обмениваться билетами.
Предоставив процессам соответственно 10, 20 и 25 билетов, можно реализовать загрузку процессора в желаемой пропорции 10:20:25.
«Справедливое планирование»
Некоторые системы обращают внимание на хозяина процесса перед планированием. В таких моделях каждому пользователю достается некоторая доля процессора, и планировщик выбирает процесс в соответствии с этим фактом. Если в нашем примере каждому из пользователей было обещано по 50 % процессора, то им достанется по 50 % процессора, независимо от количества процессов.
В качестве примера рассмотрим систему и двух пользователей, каждому из которых отведено по 50 % процессора. У первого пользователя четыре процесса: А, В,
С и D, у второго один процесс Е. Если используется циклическое планирование, цепочка процессов, удовлетворяющая всем требованиям, будет выглядеть следующим образом: AEBECEDEAEBECEDE... С другой стороны, если первому пользователю положено вдвое больше ресурсов, чем второму, мы получим ABECDEABECDE...
-
Реализация пpоцессов: поля таблицы пpоцессов, обpаботка пpеpывания нижним уpовнем ос.
Для реализации модели процессов операционная система содержит таблицу (массив структур), называемую таблицей процессов, с одним элементом для каждого процесса.
Управление процессом
Регистры, счетчик команд, слово состояния программы, указатель стека, состояние процесса, приоритет, параметры планирования, идентификатор процесса, родительский процесс, группа процесса, сигналы, время начала процесса, использованное процессорное время, процессорное время дочернего процесса, время следующего аварийного сигнала
Управление памятью
Указатель на текстовый сегмент, указатель на сегмент данных, указатель на сегмент стека.
Управление файлами
Корневой каталог, рабочий каталог, дескрипторы файла, идентификатор пользователя, идентификатор группы.
Все прерывания начинаются с сохранения регистров, часто в блоке управления текущим процессом в таблице процессов. Затем информация, помещенная в стек прерыванием, удаляется, и указатель стека переставляется на временный стек, используемый программой обработки процесса.
Схема обработки прерывания нижним уровнем операционной системы
1. Аппаратное обеспечение сохраняет в стеке счетчик команд и т. п.
2. Аппаратное обеспечение загружает новый счетчик команд из вектора прерываний
3. Процедура на ассемблере сохраняет регистры
4. Процедура на ассемблере устанавливает новый стек
5. Запускается программа обработки прерываний на С. (Она обычно считывает и буферизирует входные данные)
6. Планировщик выбирает следующий процесс
7. Программа на С передает управление процедуре на ассемблере
8. Процедура на ассемблере запускает новый процесс