- •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. Общие принципы построения операционных систем.
80.Архитектура компьютерной системы. Подключение устройств к магистрали. Иерархия магистралей.
Структурная организация компьютерных систем Дж. фон Неймана:
Устройство оперативной памяти для хранения данных и программ
Центральное процессорное управление (ЦПУ)
Арифметическое и логическое устройство
Устройство управления выполнением программы
Оборудование ввода-вывода
Связи между компонентами – магистраль (шина)
Магистраль:
Средство соединения двух и более устройств в компьютерной системе
Обычно имеется общая магистраль для всех устройств в компьютере
Структура магистрали
Линии адреса
Линии данных
Линии управления
Подключение устройств к магистрали (шине):
Линии адреса:
Определяют адреса источника и приёмника данных
Ширина адресной магистрали определяет максимальный объём адресуемой памяти.
Типичные разрядности (битов): 16 (Intel 8080), 20 (Intel 8086), 32 (Intel 80386), 36 (Intel Pentium), 64 (Intel Itanium /Itanium 2)
Линии данных:
Передаёт данные (на уровни магистрали не делается различий между «данными» и «инструкциями»)
Ширина магистрали данных определяет производительность системы
Типичные разрядности (битов): 8 (Intel 8080), 16 (Intel 8086), 32 (Intel 80386), 64 (Intel Pentium)
Линии управления:
Передаёт управляющие и синхронизирующие сигналы
Сигналы на чтение/запись памяти
Запросы на прерывание
Тактовые импульсы (синхронизирующие сигналы)
Иерархия магистралей в компьютерных системах:
81.Прерывания в компьютерной системе. Внешние (асинхронные, аппаратные) и внутренние прерывания. IRQ устройств. Векторная обработка прерываний в компьютере. Обработка прерываний в 80386. Обработка прерываний в многопроцессорных системах.
Прерывания – механизм, позволяющий скоординировать параллельное функционирование устройств вычислительной системы и реагировать на особые состояния, возникающие при работе процессора; принудительная передача управления от выполняемой программы к системе, которое происходит при возникновении определенного события
Главные функции механизма прерывания:
1)Распознавание и классификация прерываний;
2)Передача управления обработчику прерывания;
3)Корректное возвращение к прерванной программе.
Схема обработки прерывания в зависимости от его типа может быть разной, но характерно одно для всех:
Обработка прерываний:
Устройство генерирует прерывание по одной из линий контроллера прерываний;
Контроллер прерываний выставляет сигнал прерывания на линию процессора;
Процессор завершает выполнение текущей инструкции (команды) и происходит очистка конвейера;
Процессор проверяет наличие прерывания; обнаруживает его и посылает уведомляющий сигнал об успешном приеме; сигнал прерывания снимается с линии процессора;
Сохранение в стеке слова-состояния и адрес следующей инструкции (слово-состояние – это регистр флагов);
Запрос процессором у контроллера IRQ (запрос на прерывание); контроллер транслирует IRQ в номер прерывания, используемый как индекс в структуре; это структура называется таблицей диспетчеризации прерываний (IDT); Затем процессор передает управление к соответствующей процедуре.
Выполнение операционной системой процедуры начинается с сохранения контекста процесса (потока);
Код обработки прерывания;
Восстановление контекста процесса (потока);
Восстановление слова-состояния программ из стека и содержимого счетчика команд;
1 – 6, 10 - пункты выполняются аппаратно;
все остальные выполняются операционной системой
Аппаратные прерывания – их источником является сигнал на входе процессора.
Программные прерывания – в процессоре Pentium они происходят при выполнении инструкции INT с однобайтовым аргументом, в котором указывается вектор прерывания. Программные прерывания обрабатываются после выполнения соответствующей инструкции INT, а возврат происходит в следующую инструкцию.
Концепция прерывания. Какие дисциплины обслуживания прерываний вам известны?
Дисциплины обслуживания:
- с относительными приоритетами, т.е. обслуживание не прерывается даже при наличии запросов с более высокими приоритетами. После окончания обслуживания данного запроса обслуживается процесс с наивысшим приоритетом. Для организации такой дисциплины необходимо в программе обслуживания данного запроса наложить маски на все остальные сигналы прерывания или просто отключить систему прерываний;
- с абсолютными приоритетами, т.е. всегда обслуживается прерывание с наивысшим приоритетом. Для реализации этого режима необходимо на время обработки прерывания замаскировать все запросы с более низким приоритетом. При этом возможно многоуровневое прерывание, т.е прерывание программ обработки прерываний. Число уровней прерывания в этом режиме изменяется и зависит от приоритета запроса;
- по принципу стека (по дисциплине LCFS, last come – first served), т.е. запросы с более низким приоритетом могут прерывать обработку прерывания с более высоким приоритетом. Для этого необходимо не накладывать маски ни на один сигнал прерывания и не выключать систему прерываний.
82.Менеджер (супервизор) прерываний в операционной системе. Обработка прерываний в операционной системе. Понятие IRQL и DRQL в Windows NT. Назначение DRQL устройствам на однопроцессорной и многопроцессорной конфигурациях.
Супервизор – специальный системный программный модуль, в который объединены первые секции подпрограмм обработки прерываний.
Супервизор прерываний, прежде всего, сохраняет в дескрипторе текущей задачи рабочие регистры процессора, определяющие контекст прерываемого вычислительного процесса. Далее он определяет ту подпрограмму, которая должна выполнить действия, связанные с обслуживанием настоящего (текущего) запроса на прерывание. Наконец, перед тем как передать управление этой подпрограмме, супервизор прерываний устанавливает необходимый режим обработки прерывания. После выполнения подпрограммы обработки прерывания управление вновь передается супервизору, на этот раз уже на тот модуль, который занимается диспетчеризацией задач. И уже диспетчер задач, в свою очередь, в соответствии с принятым режимом распределения процессорного времени (между выполняющимися процессами) восстановит контекст той задачи, которой будет решено выделить процессор. Рассмотренная схема проиллюстрирована на рисунке.
Как видно из рисунка, здесь нет непосредственного возврата в прерванную программу прямо из самой подпрограммы обработки прерывания. Для прямого непосредственного возврата достаточно адрес возврата сохранить в стеке, что и делает аппаратура процессора. При этом стек легко обеспечивает возможность возврата в случае вложенных прерываний, поскольку он всегда реализует дисциплину LCFS (last come – first served).
