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

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

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

Добавлен: 23.01.2025

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

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

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

СОДЕРЖАНИЕ

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

3.1.6 Семафоры

Семафоры - переменные для подсчета сигналов запуска, сохраненных на будущее.

Были предложены две операции down и up (аналоги sleep и wakeup).

Прежде чем заблокировать процесс, down проверяет семафор, если он равен нулю, то он блокирует процесс, если нет, то процесс снова становится активным, и уменьшает семафор на единицу.

up увеличит значение семафора на 1 или разблокирует процесс находящийся в ожидании..

down уменьшает значение семафора на 1 или блокирует процесс, если семафор =0.

down и up выполняются как элементарное действие, т.е. процесс не может быть блокирован во время выполнения этих операций. Значит, у операционной системы должен быть запрет на все прерывания, и перевод процесса в режим ожидания.

Решение проблемы переполненного буфера с помощью семафора

Применим три семафора:

full - подсчет заполненных сегментов (в начале = 0)

empty - подсчет пустых сегментов (в начале = количеству сегментов)

mutex - для исключения одновременного доступа к буферу двух процессов.  (в начале = 1)

Мьютекс упрощенная версия семафора, он управляет доступом к ресурсу. Показывает, блокирован или нет ресурс.

 

Решение проблемы переполненного буфера с помощью семафора

 

 

Применение семафоров для устройств ввода/вывода

Для устройств ввода/вывода семафор выставляется равный нулю. После запуска управляющего процесса выполняется down, и т.к. семафор равен нулю, процесс блокируется. Когда нужно активизировать процесс управления, выполняется up.

 

 Лекция 4

Планирование процессов.

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

Планирование - обеспечение поочередного доступа процессов к одному процессору.

Планировщик - отвечающая за это часть операционной системы.

Алгоритм планирования - используемый алгоритм для планирования.

Ситуации, когда необходимо планирование:

  1. Когда создается процесс

  2. Когда процесс завершает работу

  3. Когда процесс блокируется на операции ввода/вывода, семафоре, и т.д.

  4. При прерывании ввода/вывода.


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

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

Необходимость алгоритма планирования зависит от задач, для которых будет использоваться операционная система.

Основные три системы:

Системы пакетной обработки - могут использовать неприоритетный и приоритетный алгоритм (например: для расчетных программ).

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

Системы реального времени - могут использовать неприоритетный и приоритетный алгоритм (например: система управления автомобилем).

Задачи алгоритмов планирования:

  1. Для всех систем Справедливость - каждому процессу справедливую долю процессорного времени Контроль над выполнением принятой политики Баланс - поддержка занятости всех частей системы (например: чтобы были заняты процессор и устройства ввода/вывода)

  2. Системы пакетной обработки Пропускная способность - количество задач в час Оборотное время - минимизация времени на ожидание обслуживания и обработку задач. Использование процесса - чтобы процессор всегда был занят.

  3. Интерактивные системы Время отклика - быстрая реакция на запросы Соразмерность - выполнение ожиданий пользователя (например: пользователь не готов к долгой загрузке системы)

  4. Системы реального времени Окончание работы к сроку - предотвращение потери данных Предсказуемость - предотвращение деградации качества в мультимедийных системах (например: потерь качества звука должно быть меньше чем видео)


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

4.2.1 "Первый пришел - первым обслужен" (FIFO - First In Fist Out)

Процессы ставятся в очередь по мере поступления.

Преимущества:

  • Простота

  • Справедливость (как в очереди покупателей, кто последний пришел, тот оказался в конце очереди)

Недостатки:

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

4.2.2 "Кратчайшая задача - первая"

 

Нижняя очередь выстроена с учетом этого алгоритма

 

Преимущества:

  • Уменьшение оборотного времени

  • Справедливость (как в очереди покупателей, кто без сдачи проходит в перед)

Недостатки:

  • Длинный процесс занявший процессор, не пустит более новые краткие процессы, которые пришли позже.

4.2.3 Наименьшее оставшееся время выполнение

Аналог предыдущего, но если приходит новый процесс, его полное время выполнения сравнивается с оставшимся временем выполнения текущего процесса.

 

4.2.4 Трехуровневое планирование

 

Трехуровневое планирование

 

 

Планировщик доступа выбирает задачи оптимальным образом (например: процессы, ограниченные процессором и вводом/выводом).

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

 

4.3 Планирование в интерактивных системах

4.3.1 Циклическое планирование

Самый простой алгоритм планирования и часто используемый.

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

 


Пример циклического планирования

 

Преимущества:

  • Простота

  • Справедливость (как в очереди покупателей, каждому только по килограмму)

Недостатки:

  • Если частые переключения (квант - 4мс, а время переключения равно 1мс), то происходит уменьшение производительности.

  • Если редкие переключения (квант - 100мс, а время переключения равно 1мс), то происходит увеличение времени ответа на запрос.

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

Каждому процессу присваивается приоритет, и управление передается процессу с самым высоким приоритетом.

Приоритет может быть динамический и статический.

Динамический приоритет может устанавливаться так:

П=1/Т, где Т- часть использованного в последний раз кванта

Если использовано 1/50 кванта, то приоритет 50.

Если использован весь квант, то приоритет 1.

Т.е. процессы, ограниченные вводом/вывода, будут иметь приоритет над процессами ограниченными процессором.

Часто процессы объединяют по приоритетам в группы, и используют приоритетное планирование среди групп, но внутри группы используют циклическое планирование.

 

Приоритетное планирование 4-х групп

 

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

 

Группы с разным квантом времени

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

 

Процесс либо заканчивает работу, либо переходит в другую группу

Этот метод напоминает алгоритм - "Кратчайшая задача - первая".

 

Группы с разным назначением процессов

 

Процесс, отвечающий на запрос, переходит в группу с наивысшим приоритетом.

Такой механизм позволяет повысить приоритет работы с клиентом.


 

Гарантированное планирование

В системе с n-процессами, каждому процессу будет предоставлено 1/n времени процессора.

 

Лотерейное планирование

Процессам раздаются "лотерейные билеты" на доступ к ресурсам. Планировщик может выбрать любой билет, случайным образом. Чем больше билетов у процесса, тем больше у него шансов захватить ресурс.

 

Справедливое планирование

Процессорное время распределяется среди пользователей, а не процессов. Это справедливо если у одного пользователя несколько процессов, а у другого один.