- •Понятие «Операционная система». (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. (12-2)
Система ввода/вывода ОС UNIX – это часть ядра, выполняющая функции диспетчера устройств ввода/вывода.
Программная часть диспетчера включает:
управляющую компоненту
систему буферизации
набор драйверов.
В качестве структурных компонент используются:
дескрипторы специальных файлов
таблица связи между драйверами байт-ориентированных устройств и ядром системы
таблица связи между драйверами блок-ориентированных устройств и ядром системы
таблица буферов блоков
таблиц прерываний.
Взаимодействие этих структур можно отобразить в виде следующей схемы:
Индексные дескрипторы специальных файлов содержат информацию:
имя специального файла (на этот файл нельзя сделать ни жесткую ни символьную ссылку)
тип устройства
номере типа устройства (старший номер)
номере устройства (младший номер)
атрибуты, которые содержат дескрипторы обычных файлов (не все): размер, идентификаторы владельца, группы; тип файла, размер, метод доступа, дата и время создания, количество ссылок на файл, дата и время последней модификации.
Каждый дескриптор ссылается на соответствующий элемент в зависимости от типа устройства из таблицы связи. Эти таблицы позволяют ядру быстро перестраиваться на новый состав и параметры внешних устройств путем включения новых драйверов.
Каждый элемент таблиц связи адресуется к определенному драйверу, обеспечивающему обмен информацией между основной памятью и внешним устройством данного типа.
Таблица связи блок-ориентированных устройств, кроме того, связана с таблицей буферов блоков, указывающей буфера ввода/вывода, образующие кэш-память.
Программы драйверов предназначены для открытия и закрытия файлов, чтения и записи данных, а также для управления режимами работы устройств. Каждый драйвер разделен на несколько частей:
верхняя часть драйвера работает в режиме вызывающего процесса и служит интерфейсом составной системы UNIX;
нижняя часть работает в контексте ядра ОС и непосредственно взаимодействует с устройством.
Таблица прерываний обычно располагается в начальной области памяти по фиксированным адресам. При возникновении прерываний от ввода/вывода управление передается программе обработки прерываний драйвера, адрес которой выбирается из таблицы прерываний.
Реализация системы управления вводом/выводом ос unix. (14-2)
(Здесь также рассказать про блок- и байт-ориентированные устройства)
Пример реализации ввода информации с блок-ориентированного устройства (hd0).
fd=open(“/dev/hd0”, 0);
read(fd,buf,n);
Системный вызов read инициирует обращение к специальному файлу /dev/hd0 и через дескриптор fd, определяет тип и номер устройства, с которого необходимо прочитать информацию.
По адресу из таблицы связи управление передается необходимому драйверу, программа драйвера, прежде всего, проверяет, не располагается ли требуемый блок файла в кэш-памяти. Если это так, то моделируется сигнал прерывания об окончании обмена. В противном случае драйвер освобождает, когда это требуется, участок кэш-памяти и запускает операцию обмена.
По окончании обмена генерируются прерывания, и запускается подпрограмма обработки прерываний драйвера, адрес которой извлекается из определенной ячейки таблицы прерываний.
Далее программа драйвера переписывает информацию из кэш-памяти в область основной памяти, указанную драйвером ввода (buf).
После окончания операции ввода управление, обычно, передается диспетчеру процессов ядра ОС UNIX.