ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 23.01.2025

Просмотров: 3635

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Http://www.Ipm.Kstu.Ru/os/lec

1.1 История ос

1.2 Назначение ос

1.2.1 Ос как виртуальная машина

1.2.2 Ос как система управления ресурсами

1.3 Интерфейс прикладного программирования

1.4 Структура операционных систем

1.4.1 Монолитная система

1.4.2 Многоуровневая структура ос

1.4.3 Модель экзоядра

1.4.4 Микроядерная архитектура (модель клиент-сервер)

1.4.5 Обобщение сравнения моделей

2.1 Процессы

2.1.1 Понятие процесса

2.1.2 Модель процесса

2.1.3 Создание процесса

2.1.4 Завершение процесса

2.1.5 Иерархия процессов

2.1.6 Состояние процессов

2.2.3 Преимущества использования потоков

2.2.4 Реализация потоков в пространстве пользователя, ядра и смешанное

2.2.5 Особенности реализации Windows

3.1 Взаимодействие между процессами

3.1.1 Передача информации от одного процесса другому

3.1.2 Состояние состязания

3.1.3 Критические области

3.1.4 Взаимное исключение с активным ожиданием

3.1.5 Примитивы взаимодействия процессов

3.1.6 Семафоры

4.1 Основные понятия планирования процессов

4.2 Планирование в системах пакетной обработки

4.3.2 Приоритетное планирование

4.3.3 Методы разделения процессов на группы

4.4 Планирование в системах реального времени

4.4.1 Планирование однородных процессов

4.4.2 Общее планирование реального времени

5.1 Взаимоблокировка процессов

5.2 Моделирование взаимоблокировок

5.3 Методы борьбы с взаимоблокировками

5.3.1 Пренебрежением проблемой в целом (страусовый алгоритм)

5.3.2 Обнаружение и устранение взаимоблокировок

5.3.3 Динамическое избежание взаимоблокировок

5.3.4 Предотвращение четырех условий, необходимых для взаимоблокировок

6.1 Основные понятия

6.2 Методы без использования внешней памяти

6.2.1 Однозадачная система без подкачки на диск

6.2.2 Распределение памяти с фиксированными разделами.

6.2.3 Распределение памяти динамическими разделами

6.3 Методы с использованием внешней памяти (свопинг и виртуальная память)

6.3.1 Свопинг (подкачка)

6.3.2 Виртуальная память

7.1 Алгоритмы замещения страниц

7.1.7 Алгоритм wsClock

7.2 Распределение памяти

7.2.1 Политика распределения памяти

7.2.2 Размеры страниц

7.2.3 Совместно используемые страницы

7.2.4 Политика очистки страниц

7.3 Особенности реализации в unix

7.4 Особенности реализации в Windows

8.1 Основные понятия сегментации

8.2 Реализация сегментации

8.2.1 Сегментация с использованием страниц: multics

8.2.2 Сегментация с использованием страниц: Intel Pentium

8.3 Особенности реализации в unix

9.1 Принципы аппаратуры ввода-вывода

9.1.1 Устройства ввода-вывода

9.1.2 Контроллеры устройств

9.1.3 Отображаемый на адресное пространство памяти ввод-вывод

9.1.4 Прямой доступ к памяти (dma - Direct Memory Access)

9.1.5 Прерывания

9.2 Принципы программного обеспечения ввода-вывода

9.2.1 Задачи программного обеспечения ввода-вывода

9.2.2 Программный ввод-вывод

9.2.3 Управляемый прерываниями ввод-вывод

9.2.4 Ввод-вывод с использованием dma

9.3 Программные уровни и функции ввода-вывода

9.3.1 Обработчики прерываний

9.3.2 Драйвера устройств

9.3.3 Независимое от устройств программное обеспечение ввода-вывода

9.3.4 Программное обеспечение ввода-вывода пространства пользователя

9.3.5 Обобщение уровней и функций ввода-вывода

10.1 Аппаратная часть дисков

10.1.1 Магнитные диски

10.1.2 Raid (Redundant Array of Independent Disk - массив независимых дисков с избыточностью)

10.1.3 Компакт-диски

10.1.3.1 Компакт-диски с возможностью записи cd-r

10.1.3.2 Многократно перезаписываемые компакт-диски cd-rw

10.1.3.3 Универсальный цифровой диск dvd (Digital Versatile Disk)

10.2 Форматирование дисков (программная часть)

10.2.1 Низкоуровневое форматирование

10.2.2 Разделы диска

10.2.3 Высокоуровневое форматирование

10.3 Алгоритмы планирования перемещения головок

10.3.1 Алгоритм "первый пришел - первым обслужен" fcfs (First Come, First Served)

10.3.2 Алгоритм короткое время поиска первым (или ближайший цилиндр первым) ssf (Shortest Seek First)

10.3.3 Алгоритмы сканирования (scan, c-scan, look, c-look)

10.4 Обработка ошибок

10.5 Стабильное запоминающее устройство

10.6 Таймеры

10.6.1 Аппаратная часть таймеров

10.6.2 Программное обеспечение таймеров

11.1 Файлы

11.1.1 Именование файлов

11.1.2 Структура файла

11.1.3 Типы файлов

11.1.4 Доступ к файлам

11.1.5 Атрибуты файла

11.1.6 Операции с файлами

11.1.7 Файлы, отображаемые на адресное пространство памяти

11.2 Каталоги

11.2.5 Операции с каталогами

12.2.3 Связные списки при помощи таблиц в памяти

12.2.4 I - узлы

12.3 Реализация каталогов

12.3.1 Реализация длинных имен файлов

12.3.2 Ускорение поиска файлов

12.3.2.1 Использование хэш-таблицы для ускорения поиска файла.

12.3.2.2 Использование кэширования результатов поиска файлов для ускорения поиска файла.

12.4 Совместно используемые файлы

12.4.1 Жесткие ссылки

12.4.2 Символьные ссылки

12.5 Организация дискового пространства

12.5.1 Размер блока

12.5.2 Учет свободных блоков

12.5.3 Дисковые квоты

12.6 Надежность файловой системы

12.6.1 Резервное копирование

12.6.2 Непротиворечивость файловой системы

12.7 Производительность файловой системы

13.1.2 Рок-ридж расширения для unix

13.1.3 Joliet расширения для Windows

13.2 Файловая система ms-dos (fat-12,16,32)

13.2.1 Fat-12

13.2.2 Fat-16

13.2.3 Fat-32

13.2.4 Расширение Windows 98 для fat-32

13.3 Файловая система ntfs

13.3.1 Поиск файла по имени

13.3.2 Сжатие файлов

13.3.3 Шифрование файлов

14.1 Файловая система unix v7

I-узел unix v7

14.1.1 Поиск файла

14.1.2 Блокировка данных файла

14.1.3 Создание и работа с файлом

14.2 Файловая система bsd

14.3 Файловые системы linux

14.3.1 Файловая система ext2

14.3.2 Файловая система ext3

14.3.3 Файловая система xfs

14.3.4 Файловая система rfs

14.3.4 Файловая система jfs

14.4 Сравнительная таблица некоторых современных файловых систем

14.5 Файловая система nfs

14.4.1 Архитектура файловой системы nfs

14.4.2 Протоколы файловой системы nfs

14.4.3 Реализация файловой системы nfs

8.2.1 Сегментация с использованием страниц: multics

В одной из первых, где была применена страничная сегментация, была система MULTICS.

Каждая программа обеспечивалась до 2^18 сегментов (более 250 000), каждый из которых мог быть до 65 536 (36-разрядных) слов длиной.

Таблица сегментов - хранит дескриптор для каждого сегмента. У каждой программы своя таблица.

Т.к. записей в таблице более 250 000, она сама разбита на страницы.

Сама таблица является отдельным сегментом.

Сегмент с таблицей дескрипторов указывающих на таблицы страниц для каждого сегмента

 

Нормальный размер страницы равен 1024 словам. Если сегмент меньше 1024, то он либо не разбит на страницы, либо разбит на страницы по 64 слова.

 

Дескриптор сегмента

 

Когда происходит обращение к памяти, выполняется следующий алгоритм:

  1. По номеру сегмента находится дескриптор сегмента.

  2. Проверяется, находиться ли таблица страницы в памяти. Если в памяти, определяется ее расположение. Если нет, вызывается сегментное прерывание.

  3. Проверяется, находиться ли страница в памяти. Если в памяти, определяется ее расположение в памяти. Если нет в памяти, вызывается страничное прерывание.

  4. К адресу начала страницы прибавляется смещение, в результате получаем адрес нужного слова в оперативной памяти.

  5. Происходит запись или чтение.

 

Преобразование адреса в системе MULTICS

 

Так как такой алгоритм будет работать достаточно медленно. Аппаратура системы MULTICS содержит высокоскоростной буфер быстрого преобразования адреса (TLB) размером в 16 слов. Адреса 16 наиболее часто использующихся страниц хранятся в буфере.

 

8.2.2 Сегментация с использованием страниц: Intel Pentium

Каждая программа обеспечивается до 16К сегментов, каждый из которых может быть до 1 млдр  36-разрядных слов длиной.

Основа виртуальной памяти системы Pentium состоит из двух таблиц:


Локальная таблица дескрипторов LDT (Local Descriptor Table) - есть у каждой программы, и описывает сегменты программы.

Глобальная таблица дескрипторов GDT (Global Descriptor Table) - одна для всех программ, и описывает системные сегменты (включая саму ОС).

Каждый селектор (указывает на дескриптор) представляет собой 16-разрядный номер.

 

Селектор в системе Pentium

13 битов определяют номер записи в таблице дескрипторов, поэтому эти таблицы ограничены, каждая содержит 8К (2^13) сегментных дескрипторов.

1 бит указывает тип используемой таблицы дескрипторов LDT или GDT.

Уровни привилегированности в системе Pentium

Уровни привилегированности запрещают выполняемому коду обратиться к более низкому уровню.

С учетом максимального размера сегмента - 4 Гбайта - каждая задача, при чисто сегментной организации виртуальной памяти, работает в виртуальном адресном пространстве в 64 Тбайта (4 Гбайта * 16К, где 16К=8К*2 т.к. LDT и GDT).

 

 

Дескриптор программного (не данных) сегмента в системе Pentium (всего 8 байт (64 бита)).

База (Base) - базовый адрес сегмента (32-бита), разделен на три части из-за совместимости с i286, в котором это поле имеет только 24 бита.

Размер (Limit) - размер сегмента (20 бит), разнесен на две части.

Если размер сегмента указан в страницах, он может достигать 2^32 байтов (2^20 * 4Кбайт (2^12) (размер страницы в Pentium)).

Алгоритм получение физического адреса:

  1. Селектор загружается в регистр (для сегмента команд в CS, для сегмента данных в DS).

  2. Определяется глобальный или локальный сегмент (LDT или GDT).

  3. Дескриптор извлекается из LDT или GDT, и сохраняется в микропрограммных регистрах.

  4. Если дескриптор в памяти и смещение не выходит за пределы сегмента, программа может продолжить работу, если нет, происходит прерывание.

  5. Система Pentium прибавляет базовый адрес к смещению, и получает линейный адрес, - если страничная организация памяти не используется, то он является физическим адресом (адрес получен), - если страничная организация памяти используется, то он является виртуальным адресом.

  6. В случае, если используется страничная организация памяти, линейный адрес переводится в физический с помощью таблицы страниц.


 

Преобразование пары (селектора, смещение) в физический адрес

 

При 32-разрядном (2^32=4Гбайт) адресе и 4Кбатной странице, сегмент может содержать 1 млн страниц (4Гбайт/4Кбайта). Поэтому используется двухуровневое отображение (создана таблица (страничный каталог) содержащая список из 1024 таблиц страниц), благодаря чему можно снизить количество записей в таблице страниц до 1024.

В этом случае сегмент в 4 Мбайта (1024 записи по 4 Кбайта страницы), будет иметь страничный каталог только с одной записью (и 1024 в таблице страниц), вместо 1 млн в одной таблице.

 

Отображение линейного адреса на физический адрес

В системе Pentium также есть буфер быстрого преобразования адреса (TLB), в котором хранятся наиболее часто используемые комбинации Каталог-Страница на физический адрес страничного блока. Только если комбинация в TLB отсутствует, выполняется это алгоритм.

 

 


8.3 Особенности реализации в unix

В LUNIX системе на 32-разрядной машине каждый процесс получает 3Гбайта виртуального пространства для себя, и 1Гбайт для страничных таблиц и других данных ядра.

На компьютерах Pentium, используется двухуровневые таблицы страниц, и размер страниц фиксирован 4Кбайта

На компьютерах  Alpha, используется трехуровневые таблицы страниц, и размер страниц фиксирован 8Кбайт

Для каждой программы выделяется 3 сегмента:

  1. Код программы (только для чтения)

  2. Данные

  3. Стек

 

 

  Лекция 9

Устройства и программное обеспечение ввода-вывода

9.1 Принципы аппаратуры ввода-вывода

9.1.1 Устройства ввода-вывода

Устройства делят на две категории (некоторые не попадают ни в одну):

блочные устройства - информация считывается и записывается по блокам, блоки имеют свой адрес (диски)

символьные устройства - информация считывается и записывается посимвольно (принтер, сетевые карты, мыши)

9.1.2 Контроллеры устройств

Устройства ввода-вывода обычно состоят из двух частей:

  • механическая (не надо понимать дословно) - диск, принтер, монитор

  • электронная - контроллер или адаптер

Если интерфейс между контроллером и устройством стандартизован (ANSI, IEEE или ISO), то независимые производители могут выпускать совместимые как контроллеры, так и устройства. Например: диски IDE или SCSI.

Операционная система обычно имеет дело не с устройством, а с контроллером. Контроллер, как правило, выполняет простые функции, например, при считывании с диска, преобразует поток бит в блоки, состоящие из байт, и осуществляют контроль и исправление ошибок, проверяется контрольная сумма блока, если она совпадает с указанной в заголовке сектора, то блок считан без ошибок, если нет, то считывается заново.

 

9.1.3 Отображаемый на адресное пространство памяти ввод-вывод

Каждый контроллер имеет несколько регистров, которые используются для взаимодействия с центральным процессором. При помощи этих регистров ОС управляет (считывает, пишет, включает и т.д.) и определяет состояние (готовность) устройства.

У многих устройств есть буфер данных (например: видеопамять).


Реализации доступа к управляющим регистрам и буферам:

  • номер порта ввода-вывода - назначается каждому управляющему регистру 8- или 16-рзрядное целое число. Адресные пространства ОЗУ и устройства ввода-вывода в этой схеме не пересекаются. Недостатки - для чтения и записи применяются специальные команды, например: IN и OUT - необходим специальный механизм защиты от процессов - необходимо сначала считать регистр устройства в регистр процессора

  • отображаемый на адресное пространство памяти ввод-вывод - регистры отображаются на адресное пространство памяти. Недостатки - при кэшировании памяти, могут кэшироваться и регистры устройств - все устройства должны проверять все обращения к памяти, чтобы определить, на какие им реагировать. На одной общей шине это реализуется легко, но на нескольких будут проблемы.

  • смешанная реализация - используется в х86 и Pentium, от 0 до 64К отводится портам, от 640 до 1М зарезервировано под буферы данных.

Способы реализации доступа к управляющим регистрам и буферам