- •Понятие «Операционная система». (1-1)
- •Расположение ос в общей структуре компьютера
- •Функции ос
- •Блок управления процессом. Операции над процессом. (15-1, 28-1)
- •Машинные регистры
- •Ос поддерживает следующие операции над процессами:
- •Понятие прерывания. Схемы прерываний. (16-1)
- •Понятия файла, символьного набора, организации файлов. Средства файловой системы. (23-1, 26-1)
- •Блок управления файлом. (25-1)
- •Топология файловой системы. (26-1, 24-1)
- •Реализация файлов и каталогов. (9-1, 24-1)
- •Реализация файлов
- •Реализация каталогов
- •Стратегии управления памятью. Концепции распределения памяти. Алгоритмы замещения. (18-1)
- •Существует большое количество алгоритмов замещения:
- •Концепции распределения памяти:
- •Организация памяти при связном распределении. Оверлейные перекрытия. (19-1)
- •Организация памяти на основе мультипрограммирования. (20-1)
- •Организация памяти на основе мультипрограммирования с фиксированными разделами.
- •Организация памяти на основе мультипрограммирования с переменными разделами.
- •Организация памяти на основе свопинга. Битовые карты и связный список свободных и занятых блоков. (21-1) Свопинг
- •Битовые карты и связный список свободных и занятых блоков.
- •Концепция виртуальной памяти. (22-1)
- •Способы реализации вп
- •Преобразование V в ψ
- •Расслоение памяти. Регистр перемещений. Прерывания и опрос состояний. (2-1) Метод расслоения памяти (интерливинг)
- •Регистр перемещения
- •Прерывания и опрос состояний
- •Буферизация. Периферийные устройства. Защита памяти. (3-1) Буферизация
- •Периферийные устройства
- •Защита памяти
- •Таймер. Каналы ввода/вывода. Захват цикла. (4-1) Таймер и часы
- •Каналы ввода-вывода
- •Захват цикла
- •Относительная адресация. Режимы работы эвм. (5-1) Относительная адресация
- •Режим работы компьютера
- •Виртуальная память. Мультипроцессорная обработка. Прямой доступ к памяти. (6-1) Виртуальная память
- •Мультипроцессорная обработка
- •Прямой доступ к памяти
- •Программирование на машинном языке. Ассемблеры и макропроцессоры. Компиляторы. (7-1) Программирование на машинном языке
- •Ассемблеры и макропроцессоры
- •Компиляторы
- •Конвейеризация. Иерархия памяти. (8-1) Конвейеризация
- •Иерархия памяти
- •Система управления вводом/выводом. Спулинг. (10-1) Система управления вводом/выводом
- •По системы управления вводом/выводом (не надо)
- •Спулинг
- •Процедурно-ориентированные и проблемно-ориентированные языки. Интерпретаторы. (11-1) Процедурно-ориентированные и проблемно-ориентированные языки.
- •Интерпретаторы
- •Абсолютные и перемещающие загрузчики. Связывающие загрузчики и редакторы связей. (12-1) Абсолютные и перемещающие загрузчики
- •Связывающие загрузчики и редакторы связей
- •Микропрограммирование. Эмуляция. Горизонтальный и вертикальный микрокод. (13-1) Микропрограммы
- •Горизонтальный и вертикальный микрокод
- •Эмуляция
- •Основные характеристики ос unix. (27-2)
- •Достоинства Unix систем
- •Недостатки Unix систем
- •Структура ос unix. Ядро и процессы. (26-2)
- •Структура процесса ос unix. Состояние системы и виды взаимодействия в ос unix. (25-2) Состояние системы
- •Структура процесса
- •Дескриптор процесса в ос unix. Контекст процесса. (5-2)
- •Создание процессов в ос unix. (11-2)
- •Планирование процессов в ос unix. (13-2)
- •Информационные связи между процессами в ос unix. (10-2)
- •Управление памятью в ос unix на основе свопинга (1-2)
- •Управление памятью в ос unix на основе страничной подкачки. (2-2)
- •Алгоритм замещения страниц в ос unix. (3-2)
- •Типы файлов в файловой системе ос unix. Топология файловой системы. Последние изменения в файловой системе ос unix. (18-2)
- •Последние изменения в файловой системе ос unix
- •Индексный дескриптор файла в ос unix. Таблица файлов. (6-2)
- •Поддержка файлов ядром ос unix . (4-2)
- •Физическая и логическая организация файловой системы ос unix. (16-2)
- •Логическая и физическая организация системы управления вводом/выводом ос unix. (15-2)
- •Структурная организация системы управления вводом/выводом ос unix. (12-2)
- •Реализация системы управления вводом/выводом ос unix. (14-2)
- •Функционирование ос unix. (7-2, 19-2)
- •Начальная загрузка и выход на интерактивный режим в ос unix. (25-2)
- •Интерактивный режим работы в ос unix. (24-2)
- •Понятие системного вызова. Системные вызовы system и execl. (23-2)
- •Системныевызовыработысфайламиopen,creat,close,dup,dup2.(21-2, 19-2)
- •Системный вызов open
- •Системный вызов creat
- •Системные вызовы dup, dup2
- •Системные вызовы ввода/вывода. (20-2, 8-2)
- •Системный вызов read
- •Системный вызов write
- •Системный вызов close
- •Системный вызов pipe
- •Интерпретатор команд shell. (28-2)
- •Экранирование
- •Встроенные команды языка shell
- •Внешние команды
- •Сравнение чисел
Управление памятью в ос unix на основе свопинга (1-2)
Большинство UNIX – систем для управления памятью реализуют подход свопинга (не требуется, чтобы программа оставалась в оперативно памяти до момента завершения).
Перемещением данных между памятью и диском управляет верхний уровень планировщика, называемый swapper (процесс с идентификатором 0).
Выгрузка данных из памяти на диск инициируется, когда у ядра кончается свободная память из-за одного из следующих событий:
fork требуется память для процесса – сына.
brk собирается расширить сегмент данных.
Динамическому сегменту требуется дополнительная память.
Когда наступает время запустить процесс, долго находящийся на диске, часто бывает необходимо удалить из памяти другой процесс, чтобы освободить место для запускаемого процесса.
Выбирая «жертву», т.е. процесс, который надо выгрузить из памяти, swapper рассматривает блокированные процессы. Если они нашлись, то из них выбирается процесс с наивысшим значением суммы приоритета и времени пребывания в памяти.
Если блокированных процессов нет, то на основе этого критерия выбирается готовый процесс.
Каждые несколько секунд swapper исследует список выгруженных процессов, проверяя, не готов ли какой-нибудь из них к работе. Если процессы в состоянии готовности обнаруживаются, то из них выбирается процесс, дольше всех находящийся на диске.
Затем swapper проверяет, будет ли лёгкий свопинг или тяжелый.
(Объяснить, в каком случае какой свопинг и что нужно освободить в памяти)
Лёгкий свопинг не требует дополнительного высвобождения памяти.
Тяжелый свопинг – это свопинг, при котором для загрузки в память выгруженного на диск процесса, из неё требуется удалить один или несколько других процессов.
Всё это повторяется до выполнения одного из условий:
На диске нет процессов, готовых к работе.
В памяти не осталось места для новых процессов.
Чтобы не терять большую часть производительности системы на свопинг, ни один процесс не выгружается на диск, если он находится в памяти менее 2-х секунд.
Свободное место в памяти и на диске учитывается при помощи связанного списка свободных блоков. Когда требуется свободное пространство в памяти или на диске, из списка выбирается первое подходящее. После этого, в список возвращается остаток от свободного пространства.
Управление памятью в ос unix на основе страничной подкачки. (2-2)
Для предоставления возможности работы с программами больших размеров, практически во всех Unix – системах добавлена к системе управления памятью страничная подкачка.
Суть этого подхода заключается в следующем: чтобы работать, процессу не нужно целиком находиться в памяти. Всё, что действительно требуется – контекст процесса и таблица страниц. Если они загружены, то процесс считается находящимся в памяти и может быть запущен планировщик. Страницы с процедурным сегментом, сегментом данных, динамическим сегментов загружаются в память динамически, по мере обращения к ним. Страничная подкачка реализуется частично своппером (PID = 0), частично новым процессом, называемым страничным демоном (PID = 2).
Страничный демон периодически запускается и смотрит, есть ли для него работа. Если он обнаруживает, что количество страниц в списке свободных страниц мало, страничный демон инициирует действие по освобождению дополнительных страниц.
Оперативная память в Unix делится на 3 части: первые две – ядро ОС и карта памяти – фиксированы, т.е. не выгружаются из памяти. Остальная память делится на страницы, каждая из которых может содержать страницы процедурного сегмента, сегмента данных и динамического сегмента того или иного процесса, или находится в списке свободных страниц.
Карта памяти содержит информацию о содержимом страниц. Для каждой страницы в карте памяти есть запись фиксированной длины:
Первые два поля записи карты памяти используются только тогда, когда соответствующая страница находится в списке свободных страниц. В этом случае они сшивают свободные страницы в двухсвязный список свободных страниц.
Следующие три блока используются, когда страница содержит информацию. У каждой страницы в оперативной памяти есть фиксированное место хранения на диске, в которое она помещается, когда выгружается из памяти.
Следующие три поля содержат ссылку на запись в таблице процессов, тип хранящегося в таблице сегмента и смещение в сегменте, т.е. номер страницы в сегменте.
Последнее поле содержит флаг, необходимы для алгоритма замещения (часов).
При запуске процесс может вызвать страничные прерывания, если одной или нескольких его страниц не окажется в памяти. При страничном прерывании ОС берёт первую страницу из списка свободных страниц, удаляет её из списка и считывает в неё требуемую страницу.
Если список свободных страниц пуст, выполнение процесса приостанавливается до тех пор, пока страничный демон не освободит необходимое количество страниц.