
- •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. Общие принципы построения операционных систем.
1. Структура программного обеспечения вычислительной системы.
Системное программное обеспечение может быть разделено на следующие пять групп:
1) Операционные системы - комплекс управляющих и обрабатывающих программ, который с одной стороны, выступает как интерфейс между аппаратурой компьютера и пользователем с его задачами, а с другой – предназначен для наиболее эффективного использования ресурсов вычислительной системы и организации надёжных вычислений. Любой из компонентов прикладного программного обеспечения обязательно работает под управлением ОС.
2) Системы управления файлами. Назначение системы управления файлами – организация более удобного доступа к данным, организованным как файлы. Именно благодаря системе управления файлами вместо низкоуровневого доступа к данным с указанием конкретных физических адресов нужной нам записи используется логический доступ с указанием имени файла и записи в нём. Как правило, все современные ОС имеют соответствующие системы управления файлами. Можно сказать, что всем известная файловая система FAT (file allocation table) имеет множество реализаций как система управления файлами, например FAT-16 для самой MS-DOS, super-FAT для OS/2, FAT для Windows NT и т. д. Другими словами, для работы с файлами, организованными в соответствии с некоторой файловой системой, для каждой ОС должна быть разработана соответствующая система управления файлами; и эта система управления файлами будет работать только в той ОС, для которой она и создана
3) Интерфейсные оболочки. Для удобства взаимодействия с ОС могут использоваться дополнительные интерфейсные оболочки. Их основное назначение — либо расширить возможности по управлению ОС, либо изменить встроенные в систему возможности. В качестве классических примеров интерфейсных оболочек и соответствующих операционных сред выполнения программ можно назвать различные варианты графического интерфейса X Window в системах семейства UNIX (например, К Desktop Environment в Linux), PM Shell или Object Desktop в OS/2 с графическим интерфейсом Presentation Manager; наконец, можно указать разнообразные варианты интерфейсов для семейства ОС Windows компании Microsoft, которые заменяют Explorer и могут напоминать либо UNIX с его графическим интерфейсом, либо OS/2, либо MAC OS. Следует отметить, что о семействе ОС компании Microsoft с общим интерфейсом, реализуемым программными модулями с названием Explorer (в файле system.ini, который находится в каталоге Windows, имеется строка SHELL=EXPLORER.EXE), все же можно сказать, что заменяемой в этих системах является только интерфейсная оболочка, в то время как сама операционная среда остается неизменной; она интегрирована в ОС. Другими словами, операционная среда определяется программными интерфейсами, то есть API (application program interface). Интерфейс прикладного программирования (API) включает в себя управление процессами, памятью и вводом/выводом.
4) Системы программирования. Система программирования представлена, прежде всего, такими компонентами, как транслятор с соответствующего языка, библиотеки подпрограмм, редакторы, компоновщики и отладчики. Не бывает самостоятельных (оторванных от ОС) систем программирования. Любая система программирования может работать только в соответствующей ОС, под которую она и создана, однако при этом она может позволять разрабатывать программное обеспечение и под другие ОС. Например, одна из популярных систем программирования на языке C/C++ от фирмы Watcom для OS/2 позволяет получать программы и для самой OS/2, и для DOS, и для Windows.
5) Утилиты. Под утилитами понимают специальные системные программы, с помощью которых можно как обслуживать саму операционную систему, так и подготавливать для работы носители данных, выполнять перекодирование данных, осуществлять оптимизацию размещения данных на носителе и производить некоторые другие работы, связанные с обслуживанием вычислительной системы. К утилитам следует отнести и программу разбиения накопителя на магнитных дисках на разделы, и программу форматирования, и программу переноса основных системных файлов самой ОС. Так же к утилитам относятся и небезызвестные комплексы программ от фирмы Symantec, носящие имя Питера Нортона. Естественно, что утилиты могут работать только в соответствующей операционной среде.