- •Вопросы и литература по курсу аос (по всем вопросам должен быть представлен краткий рукописный конспект в общей тетради)
- •Структура программного обеспечения персонального компьютера.
- •Понятие операционной системы персонального компьютера. Основные интерфейсы компьютерной системы.
- •Краткая история операционных систем.
- •Доисторический период
- •Первый период (1945-1955)
- •Основные функциональные компоненты ос.
- •Подсистема управления процессами
- •Управления памятью
- •Управление файлами и внешними устройствами
- •Защита данных и администрирование
- •Интерфейс прикладного программирования
- •Пользовательский интерфейс
- •Сетевые и распределенные операционные системы.
- •Требования к современным операционным системам.
- •Базовая архитектура операционной системы. Понятие ядра системы. Классификация операционных систем в зависимости от особенностей архитектуры ядра.
- •По архитектуре ядра системы можно разделить на:
- •-2) Слоистая архитектура ядра
- •Аппаратная зависимость и переносимость операционных систем.
- •Совместимость операционных систем и множественные прикладные среды.
- •Подсистема управления процессами, основные задачи. Понятие многозадачности.
- •Многозадачность в системах пакетной обработки, разделения времени и реального времени. Системы пакетной обработки.
- •Системы разделения времени
- •Системы реального времени
- •Состояния потока
- •Планирование и диспетчеризация потоков
- •Квантование – каждому потоку последовательно выделяется квант процессорного времени.
- •Алгоритмы планирования, основанные на приоритетах
- •Смешанные алгоритмы планирования
- •Приоритеты и концепции планирования потоков в Windows 2000, ос Unix System V и os/2. Система ос Unix System V Release 4
- •Система os/2
- •Система Windows 2000
- •Планирование процессов и потоков в системах реального времени.
- •Назначение
- •Механизм прерываний
- •Реализация системных вызовов. Использование механизма прерываний для реализации системных вызовов.
- •Понятие гонок
- •Критическая секция кода и исключение гонок
- •Блокирующие переменные
- •Понятие семафора и его использование для целей синхронизации.
- •Синхронизация и проблема тупиков.
- •Синхронизирующие объекты в операционных системах.
- •Методы распределения памяти
- •Фиксированные разделы
- •Динамические разделы
- •Перемещаемые разделы
- •Остальные методы требуют использования внешней памяти
- •Свопинг
- •Виртуальная память
- •Страничная организация памяти
- •2 Базисных свойства страничной организации:
- •Сегментное распределение памяти
- •Сегментно-страничное распределение
- •Организация виртуальной памяти, преобразование адреса.
- •Обмен данными между процессами на основе виртуальной памяти.
- •Аппаратная поддержка сегментной организации памяти в системах на основе процессоров с архитектурой ia32. Небольшое вступление про процессоры ia-32 и аппаратную поддержку мультипрограммирования
- •Регистры сегментов
- •Управляющие регистры:
- •Регистры системных адресов
- •Регистры отладки и тестирования
- •Средства поддержки сегментной организации памяти в процессорах Пентиум (собственно ответ на билет)
- •Итак, процесс обратился за памятью. Что происходит?
- •Защита данных в системах с сегментной организацией памяти на основе процессоров с архитектурой ia32.
- •Привилегии подробнее:
- •Смешанная сегментно-страничная организация памяти в системах на основе процессоров с архитектурой ia32. Трансляция адреса. Буфер ассоциативной трансляции (tlb).
- •Кэширование данных
- •Принципы работы кэш - памяти.
- •Проблема согласования данных.
- •Вытеснение данных из кэШа
- •Случайное отображение
- •Детерминированный способ отображения
- •Управление памятью в реальном режиме адресации на примере консоли Windows xp.
- •Задачи подсистемы управления внешними устройствами.
- •Организация параллельной работы устройств ввода-вывода и процессора
- •Согласование скоростей обмена
- •Разделение устройств и данных между процессами
- •Обеспечение удобного и логического интерфейса между устройствами и остальной частью системы
- •Поддержка широкого спектра драйверов с возможностью расширения
- •Динамическая загрузка и выгрузка драйверов.
- •Поддержка синхронных и асинхронных операций ввода-вывода
- •Поддержка нескольких файловых систем.
- •Типы файлов
- •Иерархическая структура фс
- •Имена файлов
- •Монтирование
- •У файла есть:
- •Логическая организация файла:
- •Физическая организация данных на диске.
- •Физическая организация файла.
- •Связанный спискок кластеров дисковой памяти
- •Связанный список индексов – фс фат.
- •Файловые операции.
- •Универсальные действия:
- •Стандартные файлы ввода и вывода, перенаправление ввода-вывода.
- •Файловые системы Unix (s5 и ufs).
- •Обзор семейства операционных систем Microsoft Windows.
- •Системный реестр: структура системного реестра Windows;
- •Импорт и экспорт данных системного реестра;
- •Предопределенные ключи системного реестра;
По архитектуре ядра системы можно разделить на:
- 1) Монолитная архитектура ядра
Ядро здесь – это цельная программа, она может состоять из множества файлов, которые могут выгружаться и загружаться из памяти (правда, это нежелательно), но программа все же одна. Ядро неструктурированно, и при обращении к системе происходит переключение из пользовательского режима в режим ядра.
Плюсы:
- максимальная производительность
- высокая скорость (все внутри одной программы)
Минусы:
- объемное ядро -> экспоненциальная зависимость – снижается надежность.
Эта архитектура (или ее элементы) используется во всех современных ОС.
-2) Слоистая архитектура ядра
Наиболее распространена. Предложена Дейкстра.
В ней ПО делится на слои, общение между которыми происходит только через межслойный интерфейс. Каждый слой формирует интерфейс для вышележащего слоя.
Плюсы:
- инкапсуляция, сокрытые реализации (слои можно независимо модифицировать, главное – не затрагивать АПИ)
- разработка такой системы удобна и управляема
- выше ее надежность (объемность снижается)
- выше гибкость
Минусы
- снижается производительность (обращение прикладной программы идет последовательно по слоям)
Слои (снизу вверх)
- Машинно-зависимые компоненты (то, что выполняется непосредственно железом);
- Базовые механизмы ядра (самые примитивные операции: переключение контекстов, диспетчеризация прерываний, подкачка страниц);
- Менеджеры ресурсов (управляют основными ресурсами компа: файловой системой, процессами, вводом-выводом)
- Интерфейс системных вызовов – АПИ, обслуживает системные вызовы.
-3) Микроядерная архитектура:
Принцип – минимизировать ядро. Построена по принципу клиент-серверной организации.
То, что отвечает за работу аппаратуры + базовые операции = ЯДРО
Менеджеры ресурсов и все прочее вынесены за его пределы в виде приложений, работающих в пользовательском режиме. Они обслуживают прикладные программы и устроены так, что могут принимать запросы и отвечать на них, посылая сообщения.
Плюсы:
- ядро превратилось в микроядро, это повышает надежность.
- гибкая структура, легко расширяется. Очень удобна для распределенных систем.
- надежная система (все серверы работают в своем адресном пространстве + крах одного сервера не затрагивает работу других)
- поддерживает распределенные вычисления
- хорошая переносимость (весь машинно зависимый код изолирован в микроядре)
Минусы:
- Вместо одного переключения – 2 – снижается производительность.
Аппаратная зависимость и переносимость операционных систем.
Не существует 100% переносимости ОС.
Переносимость – это не бинарное состоянии (переносима или нет), а понятие степени.
Понятие «степень переносимости» - усилия, которые необходимы, чтобы перенести ОС с одной платформы на другую
С точки зрения переносимости ОС состоит из 2 частей –
- аппаратно-независимая часть, пишется на ЯВУ, и переводится на язык конкретной машины с помощью транслятора С для этой машины
- аппаратно-зависимая часть, пишется на Ассемблере специально для этой машины.
Для увеличения степени переносимости ОС нужно
уменьшить объем аппаратно-зависимой части
писать большую часть системы на ЯВУ и пользоваться транслятором.
Локализовать аппаратно-зависимую часть в нескольких модулях (чтобы она не была разбросана по всей системе)
Например, в Виндовс НТ:
Существует специальный слой HAL (Hardware Abstraction Level), в котором локализованы все машинно зависимые функции ОС. Этот слой аппаратно зависимый, и включает в себя поддержку разного железа (х86, Итаниум, МИПС и тд). Он абстрагирован от архитектуры ОС.
Эти части системы, которые являются аппаратно-зависимыми, пишутся на ассемблере:
- обработчики прерываний,
- переключение контекста
- средства поддержки привилегированного режима
- системный таймер
- средства защиты областей памяти
- средства трансляции адреса.
Все остальное ПО в системе контактирует с ней через этот слой.
Все остальные компоненты ядра пишутся на С
- Исполнительная система, утилиты, драйверы
- UI и подсистема GDI
Эти функции переводятся на язык разных процессоров с помощью трансляторов.
В системе реализована многослойная архитектура, и специфичные для этой архитектуры функции локализуются в ядре.
