
- •1. Управление процессами
- •1.1 Операции над процессами
- •1.2 Обработка прерываний
- •2. Иерархическая структура ос.
- •2.1 Понятие параллельных и асинхронных процессов
- •2.2 Алгоритм Деккера.
- •2.3 Аппаратная реализация взаимоисключения
- •2.4 Реализация взаимоисключения с помощью семафоров
- •3. Тупиковые ситуации
- •3.1 Четыре необходимых условия возникновения тупика
- •3.2 Основные направления исследований по проблеме тупиков
- •3.3 Предотвращение тупиков, 3 стратегических принципа.
- •3.5 Обнаружение тупиков
- •3.6 Восстановление после тупиков
- •4. Управление памятью
- •4.1 Организация памяти
- •4.2 Стратегии управления памятью
- •4.3 Связное и несвязное распределение памяти
- •4.4 Мультипрограммирование с фиксированными разделами
- •4.5 Мультипрограммирование с переменными разделами
- •4.6 Стратегии размещения информации в памяти
- •5. Организация виртуальной памяти
- •5.1 Страничная организация памяти
- •5.2 Сегментная организация памяти
- •5.3 Странично-сегментная организация памяти
- •5.4 Стратегии управления виртуальной памятью
- •5.5 Принцип локальности
- •5.6 Стратегии вталкивания страниц
- •6. Управление процессорами
- •6.1 Уровни планирования загрузки процессоров
- •6.2 Цели планирования
- •6.3 Принципы планирования
- •7 Управление внешней памятью
- •8. Производительность
- •8.1 Методы оценки производительности
- •9. Операционная система ms-dos – структура и механизмы
- •9.1 Этапы загрузки ms-dos
- •9.2 Параметры загрузки ms-dos
- •9.3 Структура диска в ms-dos
- •9.4 Использование памяти системой ms-dos
- •9.5 Средства использования памяти
- •10. Операционная система windows 9.X
- •10.1 Сравнение dos и Windows 9.X
- •10.2 Windows 9.X Функции операционной системы
- •10.3 Виртуальная адресация памяти Windows 9.X
- •10.4 Виртуальные машины ос Windows 9.X
- •10.5 Процессы и сообщения в ос Windows 9.X
- •10.6 Планирование приоритетов
- •10.7 Файловая система Windows 9.X
- •11. Операционная система unix
- •11.1 Структура ос unix
- •11.2 Файловая система ос unix
- •11.3 Типы файлов.
- •11.4 Структура файловой системы unix.
- •11.4.1 Базовая файловая система. System V (s5fs).
- •11.4.2 Файловая система ffs.
- •11.5 Архитектура виртуальной файловой системы.
- •11.6 Подсистема управления процессами
- •11.6.1 Типы процессов
- •11.6.2 Атрибуты процесса.
- •11.6.3 Состояния процесса.
- •11.7 Принципы управления памятью
- •11.8 Планирование выполнения процессов
- •11.9 Взаимодействия между процессами
- •12. Загрузка ос windows 2000
- •12.3 Загрузка и инициализация драйверов устройств
- •12.6.1 Раздел [boot loader]
- •12.6.2 Раздел [operating systems]
- •13 Файловая система windows nt (ntfs)
- •13 Новые возможности ntfs 5.0
- •14 Структура ntfs
- •14.1 Главная файловая таблица
- •14.2 Атрибуты файла ntfs
- •14.3 Системные файлы ntfs
- •14.4 Сравнение ntfs с hpfs и fat
- •15 Конфигурирование системы
5.3 Странично-сегментная организация памяти
Эта организация памяти обладает достоинствами обоих способов реализации виртуальной памяти. Сегменты обычно содержат целое число страниц, причем не обязательно, чтобы все страницы сегмента находились в первичной памяти одновременно. В системе со странично-сегментной организацией применяется трёхкомпонентная организация, т.е. адрес виртуальной памяти V определяется как упорядоченная тройка V=(s,p,d), где s – номер сегмента, p – номер страницы, d – смещение в рамках страницы, по которому находится нужный адрес.
Рассмотрим динамическое преобразование виртуальных адресов в реальные в странично-сегментной системе с применением комбинированного ассоциативно-прямого отображения. Система проводит ассоциативный поиск, пытаясь найти строку с параметрами (s,p) в ассоциативной таблице. Если такая строка обнаруживается, то адрес страничного кадра p соединится со смещением d, образуя реальный адрес R. Если требуемого адреса в ассоциативной таблице нет, то преобразование осуществляется способом полного отображения.
ОС должна предусматривать обработку всех возможных ситуаций в процессе преобразования виртуальных адресов в реальные.
Виртуальный адрес V=(s,p,d)
S,p p’
S’ p’
5.4 Стратегии управления виртуальной памятью
Стратегии вталкивания. Их цель – определить, в какой момент следует переписать страницу или сегмент из вторичной памяти в первичную. Вталкивание по запросу (по требованию) предполагает, что система ждёт ссылки на страницу или сегмент от выполняющегося процесса и только после её появления начинает переписывать данную страницу или сегмент в первичную память. Вталкивание с упреждением (опережением) предполагает, что система пытается заблаговременно определить к каким страницам или сегментам будет обращаться процесс.
Стратегии размещения. Их цель – определить, в какое место первичной памяти помещать поступающую страницу или сегмент. В системах со страничной организацией страница может быть помещена в любой свободный страничный кадр. Система с сегментной организацией требует стратегий размещения, аналогичных тем, которые применяются в системах мультипрограммирования с переменными разделами.
Стратегии выталкивания. Их цель – решить, какую страницу или сегмент следует удалить из первичной памяти, чтобы освободить место для помещения поступающей страницы или сегмента, если первичная память полностью занята.
Стратегии выталкивания страниц. Рассмотрим следующие стратегии:
– принцип оптимальности;
– выталкивание случайной страницы;
– первой выталкивается первая пришедшая страница;
- первой выталкивается дольше всего не использовавшаяся страница;
- первой выталкивается наименее часто использовавшаяся страница;
- первой выталкивается не использовавшаяся в последнее время страница.
принцип оптимальности говорит о том, что для обеспечения оптимальных скоростных характеристик и эффективного использования ресурсов следует заменять ту страницу, к которой в дальнейшем не будет новых обращений в течение наиболее длительного времени. Однако, реализовать её естественно нельзя, но будем наиболее близко подходить к принципу оптимальности применяя различные методы выталкивания страниц.
Эта стратегия характеризуется малыми издержками. В этом случае все страницы, находящиеся в основной памяти, могут быть выбраны для выталкивания с равной вероятностью. В реальных системах она применяется редко.
При выталкивании страниц по этому принципу мы присваиваем каждой странице в момент поступления в основную память временную метку. В случае необходимости удаления из основной памяти какой-либо страницы выбирается та, которая находилась в памяти дольше других. Однако эта стратегия с достаточно большой вероятностью будет приводить к замещению активно используемых страниц, поскольку тот факт, что страница находится в основной памяти в течение длительного времени, вполне может означать, что она постоянно в работе.
Эта стратегия предусматривает, что для выталкивания следует выбирать ту страницу, которая не использовалась дольше других. Эта стратегия требует, чтобы при каждом обращении к странице её временная метка обновлялась. Это может быть сопряжено с существенными издержками и поэтому в современных системах используются редко.
В этом случае необходимо контролировать интенсивность использования каждой страницы. Выталкивается та, обращения к которой наименее часты. Однако такой подход тоже может быть нерациональным. Например, наименее интенсивно используемой может оказаться та страница, которую только что переписали в основную память и к которой успели обратиться только один раз, в то время как к другим уже могли обращаться большее число раз.
Один из распространённых алгоритмов – алгоритм выталкивания страницы, не использовавшейся в последнее время. К страницам, которые последнее время не использовались, вряд ли будут обращения в ближайшем будущем, так что их можно заменять на вновь поступающие страницы. Поскольку желательно заменять ту страницу, которая в период нахождения в основной памяти не изменилась, то реализация этой стратегии предусматривает введение двух аппаратных битов-признаков на страницу. Это а) – бит-признак обращения = 0, если к странице не было обращений; = 1, если были обращения.
б) – бит-признак модификации = 0, если страница не изменялась; = 1, если страница изменялась. В многоабонентских системах основная память, естественно работает активно, так что рано или поздно у большинства страниц бит-признак обращения будет установлен в 1, и мы не сможем отличить те страницы, которые вытолкнуть наиболее целесообразно. Один из широко распространенных способов решения этой проблемы заключается в том, что все биты-признаки обращений периодически сбрасываются в 0. В этом случае существует опасность того, что могут быть вытолкнуты даже активные страницы, однако только в течение короткого периода после сброса битов-признаков, поскольку почти немедленно биты-признаки обращений для этих страниц будут снова установлены в 1. Описанный алгоритм предусматривает существование 4 групп страниц:
Обращений не было, модификаций не было.
Обращений не было, модификация была.
Обращения были, модификаций не было.
Обращения были, модификация была.
Страницы групп с меньшим номером следует выталкивать в первую очередь.