
- •Ос в общей структуре компьютера.
- •История операционных систем.
- •Классификация современных ос. Задачи современных ос.
- •6. Понятие процесса – ключевое понятие ос.
- •8. Трансляторы: компиляторы и интерпретаторы.
- •9. Иерархия зу (запоминающих устройств).
- •10. Управление оперативной памятью (оп). Менеджер памяти; swapping; виртуальная память.
- •11. Модели организации виртуальной памяти.
- •12. История ос unix.
- •13. Общая архитектура unix. Основные подсистемы ядра.
- •14. Пользовательская среда unix.
- •Командный интерпретатор shell.
- •16. Система каталогов в oс unix. Управление с помощью команд языка Bourn shell.
- •17. Управление файлами с помощью команд языка Bourn shell. Перенаправление ввода/вывода.
- •19. Обработка аргументов командной строки. Переменные окружения.
- •20. Пользователь и группа. Права доступа к файлу.
- •21. Системные вызовы и функции стандартных библиотек. Обработка ошибок.
- •22.Структура программы на языке с. Параметры главной функции (пример).
- •23. Файловая система ос unix: монтирование, индексные дескрипторы, жесткие и символические ссылки, файлы устройств.
- •24.Системные вызовы для работы с файлами
- •25. Понятие «процесс» в ос unix. Контекст процесса; свойства процесса; состояние процесса.
- •26.Создание процессов и упр-е ими.
- •27. Запуск внешней программы
- •29.Общая классификация средств взаимодействия процессов в ос unix.
- •30.Иерархия процессов в ос unix. Понятие сеанса. Фоновые процессы.
- •31.Каналы – средства взаимодействия процессов. Неименованные каналы. Организация конвейера (пример программы).
- •33.Сигналы как средство взаимодействия процессов в ос unix. Диспозиция сигналов.
- •34.Ограничения для процесса в ос unix (по ресурсам). Связь со свойствами процесса.
- •36.Отображение файлов в виртуальное адресное пространство. Разделяемая память.
- •37. Взаимодействие процессов через псевдотерминал.
- •38. Недостатки потокового взаимодействия процессов. Средства System vipc. Пространство имен. Общие принципы работы со средствами System vipc.
- •39. Организация очереди сообщений в ос unix. Структура сообщения. Отправка и принятие сообщений.
- •40.Семафоры, как средство взаимодействия процессов System vipc. Понятие атомарной операции. Массив семафоров.
- •41.Разделяемая память, как средство взаимодействия процессов System vipc.
- •42.Взаимодействие по сети. Понятие протокола. Семейства адресации и типы взаимодействия. Создание сокета в ос unix.
- •45. Потоковые сокеты. Клиент – серверная модель.
- •46. Проблема очередности действий и ее решение.
- •47. Процессы-демоны. Система журнализации.
- •48. Загрузка и жизненный цикл в ос unix.
- •49. Взаимоисключения. Понятие критической секции. Устаревшие подходы к организации взаимного исключения.
- •50.Поддержка взаимоисключения на уровне ос. Мьютексы и семафоры (Дейкстры). Команда ассемблера tsl.
- •51.Проблема тупиков. Граф ожидания
- •52. Нити исполнения (pthreads) в ос unix. Мьютексы pthreads.
- •53.Графический интерфейс в ос unix. Базовые принципы построения x_window.
- •54.Файловая подсистема. Общая структура. Методы выделения дискового пространства. Управление дисковым пространством.
- •55.Файловая подсистема. Структура файловой системы на диске. Реализация директорий. Поиск в директории (хеширование).
- •56.Подсистема ввода/вывода. Схема взаимодействия подсистем ос. Понятие драйвера. Типы драйверов.
56.Подсистема ввода/вывода. Схема взаимодействия подсистем ос. Понятие драйвера. Типы драйверов.
Подсистема управления вводом-выводом позволяет процессам поддерживать связь с периферийными устройствами, такими как накопители на магнитных дисках и лентах, терминалы, принтеры и сети, с одной стороны, и с модулями ядра, которые управляют устройствами и именуются драйверами устройств, с другой. Между драйверами устройств и типами устройств обычно существует однозначное соответствие: в системе может быть один дисковый драйвер для управления всеми дисководами, один терминальный драйвер для управления всеми терминалами и один ленточный драйвер для управления всеми ленточными накопителями. Драйверы обеспечивают интерфейс между ядром ос Unix и аппаратными частями компьютера (скрыта архитектура). Часть драйвера-доступ к физическим устройствам, другие предоставляют аппар независимые услуги /dev/null. В процессе запуска ос ядро вызывает соответствующий процесс инициализации установленных драйверов. Типы драйверов (различаются возможностями и способами доступа, управления)
Символьные (работа с устройствами, побайтовый доступ и обмен данными для модемов, принтеров, терминалов, доступ не включает использование буферного КЭШа)
Блочные производит обмен данными с устройствами фиксированными порциями, те порциями (например жесткий диск). Используется буферный кэш, он является интерфейсом между файловой системой и устройствами.
Драйвера низкого уровня. Тип интерфейса позволяет производить обмен с блочными устройствами минуя буферный КЭШ. Устройство мб адресовано элементами размер которых не совпадает с размером блока. Обмен данными не зависит от файла подсистемы и буферного КЭШа.
Управляющая схема взаимодействия драйвера устройств с другими подсистемами ОС Unix.
как видно из схемы не все драйверы предназначены для работы с физическими устройствами. Часть служит для предоставления различных услуг ядра прикладным процессам. Такие драйверы программные или драйверы псевдоустройств /dev/kmem. Доступ к виртуальной памяти ядра. Зная адреса внутренней структуры ядра процесс может считывать хранимую там информацию. С помощью драйвера может быть реализована версия утилиты БС которая выводит информацию о версии процесса (/dev/mem доступ к физической памяти, /dev/zero обеспечивает заполнение 0ми определенного буфера. Для инициализации определенной области памяти. Базовая архитектура драйвера Адресуемся старшим номером устройства среди атребут файловых устройств, наряду с другими. Младший номер интерпретируется наряду с драйверами. В то время как доступ к любому разделу производится через старший номер. Младший номер указывает к какому разделу доступ. Доступ к другим осуществляется ядром через структуру данных (коммуникатор устройств) Каждый элемент содержит указатель на соответствующие функции драйвера. Указатели называются точками входа. Старшее число в структуре указатель на коммуникатор (разделяется для блочных и символьных устройств) bde vsw блочные; cdcvew символьные. Ядро размещает отдельный массив для каждого типа коммуникаторов. Любой драйвер имеет доступ в соответствующем массиве. Если драйвер имеет как символьный так и блочный доступ, то точки входа фиксируются и в том и в другом массиве. Коммуникатор определяет интерфейс драйвера устройства. Каждый драйвер обеспечивает соотношение реализаций функций интерфейса. Если драйвер не поддерживает ф-й стандартного интерфейса тогда он заменен соответствующими точками, специальными заглушками, предоставляемыми ядром. Когда ядру надо запросить операц у драйвера устройств, ядро определяет элемент коммуникатора, затем вызывает требуемую функцию.
Имя точки входа XX open () (конкретный драйвер, действие). Соответствует вызову при выполнении каждой операции, открытие устройства. Обеспечивает необходимость реинициализации для физического устранения и внутренних данных драйвера.
Можно выделить 5 основных случаев в которых ядро обращается к функциям драйвера
Автоконфигурация (инициализация ОС Unix)
ВВ/выв запрос на операцию вв/выв прикладных процессов
Обработка прерываний
Специальные запросы
Реинициализация и остальное
Некоторые типы аппаратных архитектур требуют сброса и реинициализации устройств. Вызов при сбросе.
Встраивание драйвера в ядро
Есть два метода встраивания кода и данных драйвера в ядро ос:
Перекопиляция ядра
Динамическая загрузка в процессе работы системы
Динамическая установка драйвера требует выполнения следующих операций: размещение и динамическое связывание драйвера, инициализация драйвера и устройства, добавление т входа драйвера в соответствующий коммутатор устройств. Установка обраб прерывания
Если перекомпиляции не отличаются от компиляции обычной программы, все составляющие ядра являются объектами модуля (для получения исполнительного файла).