- •Понятие и назначение ос. Проблемы, 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авление памятью с помощью битовых массивов.
Подкачка
Если в памяти достаточно места чтобы загруж задания подкачка не требуется.
В системах разделения времени или ПК памяти не хватает.
ОЗУ иногда оказывается недостаточно для того, чтобы вместить все текущие активные процессы, и тогда избыток процессов приходится хранить на диске, а для обработки динамически переносить их в память.
Два подхода к управлению памятью 1) свопинг (swapping) или обычная подкачка - каждый
процесс полностью переносится в память, работает некоторое время и затем целиком возвращается на диск. 2) виртуальная память, позволяет программам работать даже тогда, когда они только частично находятся в оперативной памяти.
На начальной стадии в памяти находится только процесс А. Затем создаются или загружаются с диска процессы В и С. Процесс А выгружается на диск. Затем появляется процесс D, а процесс В завершается. Наконец, процесс А снова возвращается в память. Так как теперь процесс А имеет другое размещение в памяти, его адреса должны быть перенастроены или программно во время загрузки в память, или аппаратно во время выполнения программы.
Гибкость схемы, в которой нет ограничений, связанных с определенным кол-вом разделов, и каждый из разделов может быть очень большим или совсем маленьким, улучшает использов памяти, но, кроме того, усложняет операции размещения процессов и освобождения памяти, а также отслеживание происходящих изменений.
Когда в памяти появляется множество неиспользов фрагментов, их можно объединить в один большой участок, передвинув все процессы в сторону младших адресов(уплотнение или сжатие памяти).
Если размер процесса = константе, то ОС предоставляет точно необходимое кол-во памяти.
Если область данных процесса может расти 1) участок свободн памяти расположен рядом с процессом, его можно отдать в пользу процесса. 2) если процесс соседствует с другим процессом, для его увеличения нужно или переместить большой свободный участок памяти, или перекачать на диск один или больше процессов. 3) если процесс не может расти в памяти, а область на диске для подкачки, переполнена, процесс должен ждать освобожд памяти или же будет уничтожен.
Если большинство процессов будут увеличиваться во время работы, стоит предоставлять им больше памяти, чем требуется, а всякий раз, когда процесс скачивается на диск или перемещается в памяти, обрабатывать служебные данные, связанные с перемещением или подкачкой процессов, больше не умещающихся в предоставленной им памяти. Но когда процесс выгружается на диск, должна скачиваться только действительно используемая часть памяти.
Управление памятью с помощью битовых массивов
Два способа учета использования памяти: 1) битовые массивы(битовые карты) и списки свободных участков. При работе с битовым массивом память разделяется на единичные блоки размещения размером от нескольких слов до нескольких килобайт. В битовой карте каждому свободному блоку соответствует один бит, равный нулю, а каждому занятому блоку — бит, установленный в 1 (или наоборот). Черточками отмечены единичные блоки памяти. Заштрихованные области (0 в битовой карте) свободны.
Чем меньше единичный блок, тем больше потребуется битовый массив. Однако даже при маленьком единичном блоке, равном 4 байтам, для 32 битов памяти потребуется 1 бит в карте. Тогда память размером в 32n будет использовать n битов в карте, таким образом, битовая карта займет 1/33 часть памяти. Если выбираются большие единичные блоки, битовая карта становится меньше, но при этом может теряться существенная часть памяти в последнем блоке каждого процесса (если размер процесса не кратен размеру единичного блока).
«+»Битовый массив предоставляет простой способ отслеживания слов в памяти
фиксированного объема.
«−» Поиск серии заданной длины в битовой карте является медленной операцией (так как искомая последовательность битов может пересекать границы слов в битовом массиве).