- •1. Определение ос. Функции ос. Процессы и потоки. Классификация ос. История развития.
- •1.1 Определение ос.
- •Уровни вс.
- •Микроархитектура.
- •Машинный язык.
- •Системное и прикладное по.
- •1.2 Основная функция ос.
- •Варианты мультипрограммирования.
- •Состояния процессов и потоков.
- •1.4 Классификация ос.
- •1.4.1 Признаки классификации.
- •Особенности алгоритмов управления ресурсами. Поддержка многозадачности.
- •Многозадачность.
- •Вытесняющая и не вытесняющая многозадачность.
- •Классификация дисциплин обслуживания.
- •Дисциплины обслуживания.
- •Приоритетное обслуживание.
- •Динамический приоритет.
- •Поддержка многопользовательского режима.
- •Многопроцессорная обработка.
- •Системы пакетной обработки.
- •Системы разделения времени.
- •Системы реального времени.
- •Модульное ядро.
- •Микроядро.
- •Достоинства и недостатки микроядра.
- •Ооп: достоинства и недостатки.
- •1.5 Эволюция операционных систем. Появление ос.
- •Первый “баг”.
- •Этапы эволюции.
- •1 Этап (1940-60).
- •2 Этап (1965-75).
- •3 Этап (1970-80).
- •4 Этап (1980-90).
- •5 Этап (1990 – …).
- •2. Операционная система ms Windows 2000 и выше. Общая характеристика и основные функции. Структура ms Windows 2000-2003. Объекты в ms Windows 2000-2003.
- •2.2 Основная характеристика Windows 2000-2008.
- •2.3 Архитектура ос Windows 2000-2003. Краткая характеристика.
- •Структура ядра.
- •2.4 Объекты Windows 2000-2008.
- •Назначение объектов.
- •Типы объектов Windows 2000-2008.
- •Структура объектов Windows 2000-2003.
- •Удержание объектов.
- •Учет использования ресурсов.
- •Защита объектов.
- •Избирательный доступ.
- •3. Основы файловых систем. Файлы и их атрибуты. Каталоги. Логическая организация фс. Логическая, физическая организация файлов. Кэширование. Raid - системы.
- •4. Основы файловых систем. Файлы и их атрибуты. Каталоги. Логическая организация фс. Логическая, физическая организация файлов. Способы учёта свободного дискового пространства.
- •3.1 Основы файловых систем.
- •3.2, 3.3 Файлы и их атрибуты. Каталоги.
- •3.4 Логическая организация фс.
- •3.5 Логическая, физическая организация файлов.
- •3.6 Кэширование. Кэширование диска.
- •3.7 Raid - системы.
- •Сравнение raid-систем.
- •5. Файловые системы fat и fat32. Структура логического диска. Элемент каталога. Логическая, физическая организация файлов. Хранение длинных имён. Raid – системы.
- •5.1 Файловая система fat16.
- •Размеры разделов и кластеров fat16 для Windows 95-2000.
- •Файловая система vfat.
- •Элемент каталога vfat.
- •Пример длинного имени.
- •6.1 Файловая система ntfs.
- •6.2 Тома ntfs.
- •6.3 Mft и ее структура.
- •6.4 Атрибуты файлов.
- •6.5 Хранение файлов.
- •6.6 Сжатие файлов.
- •6.7 Защита целостности данных.
- •6.8 Дополнительные возможности.
- •7. Сравнение структуры логического диска fat32 и тома ntfs . Функции win32 api для работы с файлами.
- •8. Сравнение структуры логического диска Fat32 и тома ntfs. Варианты организации асинхронной работы с файлами.
- •7.1 Файловая система ntfs vs. Fat.
- •7.2 Функции win32 api для работы с файлами.
- •9. Методы распределения памяти с использованием дискового пространства. Стратегии управления виртуальной памятью. Классификация методов распределения памяти.
- •9.1 Методы распределения памяти с использованием дискового пространства.
- •Страничное распределение.
- •Сегментное распределение.
- •Сегментно-страничное распределение.
- •9.2 Стратегии управления виртуальной памятью (свопинг).
- •Понятие «trashing».
- •10. Архитектура памяти ms Windows 2000. Менеджер вп. Виртуальное ап. Средства защиты памяти. Страничное преобразование. Реализация свопинга в ms Windows 2000-2003.
- •Архитектура api управления памятью.
- •11. Архитектура памяти ms Windows 2000-2003. Организация «статической » виртуальной памяти. Блоки адресов. Состояния блоков адресов. Функции Win32 api.
- •12. Архитектура памяти в ms Windows 200-2003. Организация «динамической» виртуальной памяти. Назначение и преимущество по сравнению с кучами ansi c. Функции Win32 api.
- •13. Архитектура памяти в ms Windows 2000-2003. Проецируемые файлы, назначение и использование. Функции Win32 api. Проецируемые файлы.
- •14. Объекты управления центральным процессором и объединения ресурсов в ms Windows 2000-2003. Атрибуты процессов и потоков. Классы приоритетов.
- •14.1, 14.2 Управление центральным процессором и объединение ресурсов. Атрибуты процессов и потоков. Объекты Windows .
- •Процессы.
- •Потоки.
- •Задание (job).
- •Волокна (fibers).
- •14.3 Классы приоритетов.
- •15. Общие принципы диспетчеризация (планирование загрузки) в ms Windows 2000-2003. Классы приоритетов. Относительные приоритеты. Динамическое изменение приоритетов.
- •15.1 Общие принципы диспетчеризация (планирование загрузки) в ms Windows 2000-2003. Планирование загрузки однопроцессорной системы.
- •15.3 Относительные приоритеты потоков.
- •15.4 Динамическое изменение приоритетов.
- •16. Граф состояний потоков в ms Windows 2000-2003. Поток простоя. Принципы адаптивного планирования.
- •16.1 Граф состояний потоков в ms Windows 2000.
- •16.2 Поток простоя.
- •16.3 Принципы адаптивного планирования.
- •17. Граф состояний потоков в ms Windows 2000-2003. Особенности планирования в многопроцессорных системах.
- •17.2 Особенности планирования в многопроцессорных системах.
- •18. Граф состояний потоков в ms Windows 2000-2003. Особенности планирования в ос ms Windows Vista и Server 2008.
- •18.2 Особенности планирования в ос ms Windows Vista и Server 2008.
- •19. Планирование загрузки процессорного времени в ms windows 2000-2003. Функции win 32 api создания и завершение процессов и потоков, управление потоками
- •20. Планирование загрузки процессорного времени в ms windows 2000-2003. Функции win 32 api создания и завершения потоков. Управление потоками.
- •21. Критические секции и состязания. Семафоры, Мьютексы. Задача о читателях и писателях. Предотвращение критических ситуаций и средства синхронизации процессов
- •22. Критические секции и состязания. Семафоры , атомарные операции, critical_section. Задача о читателях и писателях. Предотвращение критических ситуаций и средства синхронизации процессов
- •23. Синхронизация потоков с использованием объектов ядра ms Windows 2000-2003. Основные принципы синхронизации. События. Семафоры. Функции win 32 api.
- •24. Синхронизация потоков с использованием объектов ядра ms Windows 2000-2003. Основные принципы синхронизации. Таймеры ожидания. Мьютексы. Функции win 32 api.
- •25. Межпроцессорное взаимодействие. Передача информации в ms Windows 2000-2003. Анонимные каналы. Почтовые ящики. Функции win 32 api.
- •26. Межпроцессорное взаимодействие. Передача информации в ms Windows 2000-2003. Именованные каналы. Почтовые ящики. Функции win 32 api.
25. Межпроцессорное взаимодействие. Передача информации в ms Windows 2000-2003. Анонимные каналы. Почтовые ящики. Функции win 32 api.
Анонимные каналы
Анонимные каналы не имеют имен.
Не пригодны для обмена через сеть.
Главная цель – служить каналом между родительским и дочерним процессом или между дочерними процессами.
Односторонний обмен.
Не возможен асинхронный обмен.
Канал представляет собой псевдофайл с органзацией типа буфера FIFO (first input and first output - первый вошел, первый вышел).
Образно говоря, канал представляет собой трубу (pipe) с двумя открытыми концами, в который один процесс пишет, а другой читает.
Использование анонимных каналов
Главная цель – служить каналом между родительским и дочерним процессом или между дочерними процессами.
Родительский пpоцесс может быть консольным или GUI-пpиложение, но дочернее приложение должно быть консольным. Как вы знаете, консольное приложение использует стандартные дескрипторы для ввода и вывода.
Если мы хотите пеpенапpавить ввод/вывод консольного приложения, мы можем заменить один дескриптор другим дескриптором одного конца канала. Консольное приложение не будет знать, что оно использует один конец канала. Оно будет считать, что это стандартный дескриптор. Это вид полимоpфизма на ООП-жаpгоне.
Это мощный подход, так как нам не нужно модифицировать родительский процесс ни каким образом.
Создание анонимных каналов
BOOL CreatePipe(
LPHANDLE hReadPipe,
LPHANDLE hWritePipe, LPSECURITY_ATTRIBUTES lpPipeAttributes,
DWORD nSize
);
ReadFile – чтение из канала
WriteFile – запись в канал
pReadHandle - это указатель на переменную типа dword, которая получит дескриптов конца чтения канала.
pWriteHandle - это указатель на переменную типа dword, которая получить дескриптов конца записи канала.
pPipeAttributes указывает на стpуктуpу SECURITY_ATTRIBUTES, котоpая опpеделяет, наследуется ли каждый из концов дочерним процессом.
nBufferSize - это предполагаемый pазмеp буфера, который канал заpезеpвиpует для использования. Это всего лишь предполагаемый pазмеp. Вы можете пеpедать NULL, чтобы указать функции использовать pазмеp по умолчанию.
Не забудьте установить паpаметp bInheritable стpуктуpы SECURITY_ATTRIBUTES в TRUE, чтобы дескриптры могли наследоваться.
Пример использования анонимного канала
Создаем анонимный канал с помощью CreatePipe.
Теперь мы должны подготовить параметры, которые передадим CreateProcess (мы используем эту функцию для загрузки консольного приложения).
Вызоваем CreateProcess, чтобы загрузить дочернее приложение. После того, как вызов прошел успешно, дочерний процесс все еще находится в спящем состоянии. Он загружается в память, но не запускается немедленно.
Закройте дескриптор записи канала. Это необходимо, так как родительскому процессу нет нужды использовать этот дескриптор, а канал не будет работать, если открыть более чем один дескриптор записи.
Теперь вы можете читать данные с помощью ReadFile. Вы должны последовательно вызывать ReadFile, пока она не возвратит ноль, что будет означать, что больше данных нет.
Закроем дескриптор чтения канала.
