- •1. Структура программного обеспечения вычислительной системы.
- •2. Назначение операционных систем. Слои и точки зрения на вычислительную систему.
- •3. Сервисы операционных систем.
- •4 Понятие ресурса. Классификация ресурсов.
- •5 Ядро операционной системы. Требования к ядру.
- •Модульное ядро
- •Микроядро
- •Экзоядро
- •Наноядро
- •Гибридное ядро
- •6 Эволюция операционных систем. Последовательная обработка данных.
- •7 Эволюция операционных систем. Простые пакетные системы. Мониторы, jcl.
- •10 Эволюция операционных систем. Многозадачные системы с разделением времени. Алгоритм планирования на основе абсолютного приоритета (с вытеснением).
- •11. Проблемы классификации операционных систем.
- •Классификация ос
- •12. Управление выполнением приложений. Понятия процесса и потока
- •13 Процесс. Элементы процесса. Pcb. Элементы процесса в Windows nt.
- •14 Создание и завершение процессов. Этапы создания процесса в Windows nt.
- •Контекст и дескриптор процесса
- •15.Состояния процессов.
- •21. Многопоточность. Однопоточная и многопоточная модели процессов.
- •22. Преимущества использования потоков.
- •23. Состояния потоков.
- •24. Структура потоков в Windows 2000.
- •25. Взаимодействие «клиент-сервер». Использование потоков на стороне клиента для вызова удалённо-вызываемых процедур: однопоточный и многопоточный клиенты.
- •26. Взаимодействие «клиент-сервер». Использование потоков на стороне сервера: однопоточный сервер, многопоточный сервер, многопоточный сервер на базе пула потоков.
- •27.Реализация потоков в системе. Потоки на уровне пользователя.
- •28.Реализация потоков в системе. Потоки на уровне ядра.
- •29.Реализация потоков в системе. Комбинированный подход
- •31. Кластеры. Системное программное обеспечение кластеров. Типы кластеров.
- •32. Многопроцессорные системы. Соглашения относительно многопроцессорных систем. Диспетчеризация потоков на smp.
- •33.Диспетчеризация потоков в Windows 2000 при однопроцессорной и многопроцессорной конфигурации.
- •34. Модели параллелизма. Примеры.
- •35.Монолитная архитектура операционной системы. Преимущества и недостатки
- •Монолитные системы
- •36. Микроядерная архитектура операционной системы.
- •37. Архитектура операционных систем семейства Windows nt.
- •38.Архитектура операционной системы Linux.
- •39.Архитектура операционной системы qnx.
- •40. Процессы и синхронизация. Основные понятия: состояние, действие, история. Независимость параллельных процессов.
- •41. Разделяемый и критический ресурс. Доказательство корректности параллельных алгоритмах Примеры.
- •42.Понятие синхронизации. Виды синхронизации.
- •43. Мелкомодульная неделимость. Условие «не больше одного».
- •44.Задача критической секции.
- •45.Активные блокировки. Алгоритм «Проверить-установить». Недостатки.
- •46.Активные блокировки. Алгоритм «Проверить-проверить-установить».
- •47. Реализация взаимоисключения. Аппаратная поддержка. Реализация алгоритма «Проверить-установить» на x86 с использованием инструкции xchg.
- •48.Спин-блокировки в Windows 2000. Назначение спин-блокировок. Спин-блокировки очередями.
- •49.Задача критической секции. Решения со справедливой стратегией.
- •50.Семафоры Дейкстры. Псевдокод реализации семафора. Бинарные семафоры.
- •51.Реализация семафора средствами Windows api.
- •52.Семафорные механизмы в Windows api.
- •53.Задача «производитель/потребитель». Реализация на бесконечном буфере.
- •54.Задача «читатели-писатели».
- •55.Задача «обедающие философы». Заговоры и голодовка. Решения.
- •56. Мониторы. Мониторы с сигналами.
- •57.Мониторы. Мониторы с оповещением и широковещанием.
- •58.Принципы взаимного блокирования. Условия возникновения взаимоблокировок.
- •59. Управление памятью. Требования к управлению памятью.
- •60.Управление памятью. Распределение памяти. Фиксированное распределение. Алгоритм размещения при фиксированном распределении.
- •61.Управление памятью. Распределение памяти. Динамическое распределение. Алгоритмы размещения при динамическом распределении.
- •Не с лекции: Распределение памяти разделами переменной величины
- •62.Управление памятью. Перемещение. Типы адресов. Аппаратная поддержка перемещения.
- •63.Управление памятью. Простая страничная организация. Трансляция логических адресов. Страничная организация
- •Страничное распределение
- •64.Управление памятью. Простая сегментная организация. Трансляция логических адресов.
- •65. Виртуальная память (вп). Основные идеи. Выполнение программы с использованием вп. Преимущества вп. Поддержка функционирования вп.
- •66. Виртуальная память (вп). Типы памяти. Виртуальное адресное пространство. Пробуксовка (Thrashing). Принцип локализации.
- •67. Страничная организация вп. Биты таблицы страниц. Многоуровневая адресация. Страничная адресация в 80386.
- •68.Ассоциативный буфер трансляции (tlb). Функционирование tlb.
- •69.Размеры страниц. Влияние размеров страниц на поведение процесса.
- •70. Сегментная вп. Таблицы сегментов. Трансляция при сегментной организации.
- •1)Сегментная схема функционирования вп
- •71.Сегментно-страничная организация. Трансляция адресов при сегментно-страничной организации в 80386.
- •72.Задачи управления памятью. Стратегии выборки.
- •73.Задачи управления памятью. Стратегии размещения.
- •74.Задачи управления памятью. Стратегии замещения.
- •75.Задачи управления памятью. Буферизация страниц. Буферизация страниц в Windows 2000.
- •76.Управление резидентным множеством. Фиксированное распределение, локальное замещение.
- •77.Управление резидентным множеством. Переменное распределение, глобальное замещение.
- •78.Управление резидентным множеством. Переменное распределение, локальное замещение.
- •79.Управление резидентным множеством. Стратегия рабочего множества. Управление рабочим множеством в Windows 2000.
- •80.Архитектура компьютерной системы. Подключение устройств к магистрали. Иерархия магистралей.
- •83.Вызов сервисов операционной системы с использованием прерываний. Вызов сервисов в Windows nt.
- •84.Вызов сервисов операционной системы с использованием инструкций мп Pentium II sysenter/sysexit. Вызов сервисов в Windows 2000/xp/Server 2003.
- •85.Сложность систем ввода-вывода. Модуль (контроллер) ввода-вывода. Структура и функции модуля ввода-вывода.
- •86.Решения по организации ввода-вывода: программируемый (pio), управляемый прерываниями, прямой доступ к памяти (dma).
- •87.Ввод-вывод в операционных системах. Требования к эффективности и универсальности.
- •88.Подсистема ввода-вывода в операционной системе. Обзор функций.
- •89.Подсистема ввода-вывода. Организация параллельной работы устройств ввода-вывода и процессора.
- •90.Подсистема ввода-вывода. Согласование скоростей обмена. Буферизация в операциях ввода-вывода.
- •91. Подсистема ввода-вывода. Кэширование данных: кэширование на основе логических и виртуальных блоков.
- •93.Синхронный и асинхронный ввод-вывод. Средства поддержки асинхронного ввода-вывода в Windows api.
- •94.Подсистема ввода-вывода. Поддержка различных файловых систем. Ifs в системах Windows nt.
- •95.Файловые системы fat и ntfs. Отказоустойчивость в ntfs.
- •96.Отказоустойчивые дисковые массивы raid. Raid 0 6.
- •97.Многослойная модель подсистемы ввода-вывода. Многослойная модель подсистемы ввода-вывода в Windows nt.
- •12. Общие принципы построения операционных систем.
68.Ассоциативный буфер трансляции (tlb). Функционирование tlb.
Ассоциативный буфер трансляции (TLB – Translation Lookaside Buffer)
Каждое обращение к виртуальному адресу может вызывать два обращения к физическому адресу
Для считывания таблицы страниц
Для чтения данных с кадра основной памяти
Для решения этой проблемы существует высокоскоростной кэш для часто используемых PTE, который называется TLB.
Функционирование TLB
При обращении к виртуальному адресу, процессор сначала обращается к TLB
Если PTE присутствует в TLB (попадание в TLB), номер кадра извлекается из TLB и формируется адрес в основной памяти
При промахе в TLB процессор использует номер страницы для обращения к PTE.
При обращении к виртуальному адресу проверяется наличие страницы в основной памяти
При отсутствии генерируется исключение
Производится обновление TLB для включения нового PTE.
69.Размеры страниц. Влияние размеров страниц на поведение процесса.
Размер страницы
Меньше размер страницы – меньше внутренняя фрагментация
Меньше размер страницы – больше страниц требуется процессу
Больше страниц процесса – больше памяти отводится под таблицы страниц
Вторичная память эффективнее работает с большими блоками данных – эффективней использовать большие страницы.
Малый размер страницы – большее количество страниц можно держать в оперативной памяти
После некоторого времени исполнения процесса, страницы памяти будут содержать все необходимые процессу данные (принцип локализации). Частота страничных отказов будет низкой.
Увеличение размера страницы приводит к тому, что страницы содержат данные, которые располагаются вдалеке от последних обращений к памяти. Частота страничных отказов возрастает.
Размеры страниц различных архитектур МП.
70. Сегментная вп. Таблицы сегментов. Трансляция при сегментной организации.
Сегментация
Сегменты могут иметь разные, динамически изменяемые размеры
Упрощается обработка структур данных изменяемого размера
Упрощается совместное использование кода и данных разными процессами
Улучшается защита.
Таблицы сегментов
Располагается в основной памяти
Содержит начальный адрес сегмента и его длину
Существует бит присутствия сегмента в основной памяти
Дополнительные биты: модификации, доступа.
Трансляция адреса при сегментной организации
Не с лекции:
1)Сегментная схема функционирования вп
Программа разбивается на несколько логических сегментов. Каждому из сегментов предоставляется свой раздел памяти. Физический адрес элемента определяется следующим образом: смещение относительно начала сегмента прибавляется к базовому адресу, с которого сегмент размещен в памяти.
ФАэ = БАс + СМ.
Каждый сегмент, размещенный в памяти, имеет сопутствующую информационную структуру, называется дескриптором сегмента. ОС для каждого исполняемого процесса строит таблицу дескрипторов. Таблица строится во время размещения в ОП процесса. В дескрипторе содержится:
- Номер виртуальной страницы;
- Бит присутствия в памяти;
- Адрес начала сегмента в памяти;
- Длина сегмента;
- Права доступа;
- Тип сегмента (код, данные, служебная информация)
- Отметка об обращении к сегменту
Программа, управляющая памятью, называется диспетчером памяти.
Если сегмента нет в памяти, то через прерывания диспетчер обращается к программе загрузки недостающих сегментов. Сначала страница ищет в буфере, если находится, продолжается работа, если страницы нет, процесс переходит в состояние ожидания. Для того чтобы уменьшить подкачку, используется буферизация и упреждающая выборка. Страницы когда выгружаются из ОП находятся в буфере. С проблемой подкачки связаны 3 проблемы:
- Задача выборки;
Выбор строится на внешнем носителе, который нужно подкачать. Выборы бывают: выборка по запросу; упреждающая выборка (используется несколько стратегий: считывание блоками, стратегии упреждения – анализируется информация о прошлых обращениях к сегменту. Подкачивается сегмент наиболее долго не используемый, подкачивается сегмент, у которого частота обращений больше).
- Задача размещения;
Заключается в выборе свободного места для подкачиваемого сегмента.
- Задача замещения
Возникает тогда, когда свободное место для размещения очередного сегмента не найдено. Заключается в том, чтобы выбрать сегмент, который дожжен быть выгружен на носитель.
Достоинства и недостатки сегментной схемы:
Достоинства:
- Каждой задаче выделяется свое виртуальное адресное пространство (все процессы изолированы друг от друга и ОС);
- Проще организуется защита процессов и ОС;
- Редко используемые куски программы можно не хранить в ОП (больше эффективность использования ОП);
- Программа не занимает непрерывную область памяти (уменьшается фрагментация);
- Можно использовать общие сегменты разного процесса.
- Размещение программы в памяти не целиком, а по мере необходимости
Недостатки:
- Неизбежная фрагментация;
- Большие потери памяти и процессорного времени на размещение и обработку дескрипторных таблиц: ведь на каждую задачу необходимо иметь свою таблицу дескрипторов сегментов, а при определении физических адресов необходимо выполнять операции сложения
- Потеря времени при доступе к искомой ячейке памяти: нужно сначала найти и прочитать дескриптор сегмента, а уже потом, используя данные из него о местонахождении нужного нам сегмента, можеи вычислить и конечный физический адрес.
ОС: OS/2
