
- •Понятие «Операционная система». (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. (3-2)
Этот алгоритм выполняется страничным демоном. Раз в 250 мс он просыпается, чтобы сравнить количество свободных страниц с системным параметром lost free, равным, как правило, 1/4 объема оперативной памяти. В BSD это 2 параметра – min (1/4) и max (1/2).
Если число свободных страниц меньше lost free (min), страничный демон начинает переносить страницы из памяти на диск, пока количество свободных страниц не станет равным lost free (max).
Страничный демон использует модифицированный алгоритм часов.
Основной алгоритм часов работает, сканируя страницы, как если бы они лежали на окружности циферблата.
На первом проходе, когда стрелка часов указывает на страницу, сбрасывается её флаг использования из карты памяти.
На втором проходе у каждой страницы, к которой не обращались с момента первого прохода, флаг использования остаётся сброшенным и эта страница будет помещена в список свободных страниц.
Страница в списке свободных страниц сохраняет своё содержание, что позволяет восстановить её, если она потребуется, прежде чем будет перезаписана.
Модифицированный алгоритм часов использует 2 стрелки. В этом алгоритме страничный демон поддерживает 2 указателя на карту памяти. При работе он сначала сбрасывает флаг использования передней стрелкой, а затем проверяет этот флаг задней стрелкой. При каждом запуске страничного демона стрелки проходят не полный оборот, а столько, сколько необходимо, чтобы количество страниц в списке свободных страниц было не меньше lost free (max).
Если ОС обнаруживает, что частота подкачки страниц слишком высока, а количество свободных страниц всё время, ниже lost free (max), swapper начинает удалять из памяти один или несколько процессов.
Сначала swapper проверяет, есть ли процесс, который бездействовал в течение 20 и более секунд. Если такие процессы есть, то из них выбирается с максимальным временем бездействия и выгружается на диск. Если таких процессов нет, то изучаются 4 самых больших процесса, из которых выбирается тот, который находится в памяти дольше всех, и выгружается на диск. И так до тех пор, пока не освободится достаточное количество памяти.
Каждые несколько секунд swapper проверяет, есть ли на диске готовые процессы, и выбирает процесс с наивысшим приоритетом. Загрузка выбранного процесса производится только при наличии достаточного количеств страниц, чтобы, когда случится неизбежное страничное прерывание, для него нашлись, свободны страничные блоки.
Swapper загружает в память только контекст процесса и таблицу страниц. Страницы процедурного сегмента, сегмента данных и динамического сегмента подгружаются при помощи обычной страничной подкачки.
У каждого сегмента каждого активного процесса есть место на диске, где он располагается, когда его страницу удаляются из памяти. Сегмент данных динамически сохраняется в виде копий в области свопинга.
Процедурный сегмент подгружается из самого исполняемого двоичного файла.
Типы файлов в файловой системе ос unix. Топология файловой системы. Последние изменения в файловой системе ос unix. (18-2)
Файловая система Unix имеет многоуровневую иерархическую структуру и предназначается для разделения внешней памяти на файлы. С ней связанны и вопросы ввода/вывода, и информационные связи между процессами, и многое другое.
Отличительной особенностью ОС Unix является то, что понятие файлы в ней максимально унифицировано. Под файлами понимаются любые источники и потребители информации. Это и традиционные файлы, и внешние устройства и процессы.
Вследствие этого, Unix содержит следующие виды файлов:
Обычные – содержат информацию, определяемую пользователем, или формирующуюся в результате работы прикладных и системных программ. Никаких ограничений на информацию, хранящуюся в обычных файлах, не накладывается. Различают текстовые и двоичные (бинарные) файлы. Обычный файл может иметь статус выполнимого – такой файл будет рассматриваться системой, либо как программа, записанная на командном языке, либо как готовая к выполнению программа. Обычные файлы могут создаваться, просматриваться и модифицироваться с помощью различных средств (текстовые редакторы, компиляторы, фильтры и т.д.) и удаляться определенными командами файловой системы.
Каталоги – содержат информацию о других файлах. Предоставляют пользователем средства для организации их файлов в некоторую иерархическую структуру, основанную на взаимосвязи файлов и направлении их использования. Каталог представляет собой несортированный набор 16-и байтовых записей. Каждая запись состоит из 14-битного имени файла и номера индексного дескриптора.
Общий вид файловой системы UNIX можно представить в следующем виде:
Существует отличие файловой системы UNIX от MS-DOS\WINDOWS и т.п. заключается в возможностях монтирования другой файловой системы в топологию файловой системы UNIX. В файловой системе имеется выделенный корневой каталог. Каждый следующий уровень состоит из каталогов и других файлов, подчиненных корневому каталогу. Поэтому легко адресоваться к любому файлу, указав путь, начиная с корневого каталога.
Каталог, в котором пользователь находится в данный момент времени, называется текущим. Файл, имя которого указывается в командах, если оно не полное, всегда берется из текущего каталога, если не указать полное имя. Полное имя файла называют жесткой ссылкой.
Файл может обозначаться несколькими путевыми именами, если пользователь создаст одну или несколько ссылок на него с помощью команды ln:
ln /usr/bin/who /tmp/ww
Если в данной команде указать -s , то ссылка будет символической, а не жесткой:
ln –s /usr/bin/who
Символическая ссылка на файл отличается от жесткой тем, что создается новый индексный дескриптор файла. Есть возможность ссылаться на каталоги, файлы и другие файловые системы, она не изменяет счетчик значений жестких ссылок, соответствующего индексного дескриптора.
Каталог ОС UNIX считается пустым, если он не содержит никаких других файлов, кроме ссылок на текущий и родительский каталоги. Такой каталог можно удалить.
. – ссылка на текущий каталог.
.. – ссылка на родительский каталог.
Специальные файлы – предназначены для организации взаимодействия с устройствами ввода/вывода.
Бывают байт-ориентированными и блок-ориентированными. Обычно, с каждым внешним устройством связан определенный специальный файл.
Прикладная программа может выполнять операции чтения и записи со специальным файлом так же, как и с обычным файлом. ОС будет автоматически вызывать соответствующий драйвер устройства для выполнения фактической передачи данных между физическим устройством и данной программой.
Специальные файлы создаются с помощью команды mknod:
mknod /dev/crk c 115 5 – байт-ориентированное устройство.
mknod /dev/brk b 121 15 – блок-ориентированное устройство.
Ориентацию определяет с (байт) и b (блок).
Старший номер (тип устройства) - 115 и 121 – индекс, или номер строки, в таблице ядра, которая содержит список всех драйверов известных системе.
Младший номер (номер устройства) – 5 и 15 – целое значение, которое передается как аргумент в драйвер устройства при его вызове. Этот номер сообщает драйверу, с каким конкретно физическим устройством он взаимодействует.
FIFO файлы - предназначены для организации канала и создания временного буфера, обеспечивающего взаимодействие двух или более процессов по средством записи данных в этот буфер и чтения данных из буфера.
Буфер, связанный с FIFO файлом, создается, когда какой-либо из процессов открывает этот файл для чтения или записи. Буфер удаляется, когда все процессы, связанные с FIFO файлом, закрывают все свои ссылки на него.
FIFO файл может быть создан в UNIX с помощью mkfifo, или mknod с атрибутом p:
mkfifo fifo.file
mknod fifo.file p
Хотя FIFO файл является рабочим файлом, он может быть удален подобно обычному файлу командой rm.
Гнезда — это соединения между процессами, которые позволяют им взаимодействовать, не подвергаясь влиянию других процессов.