- •1.Архитектура операционных систем
- •1.1Общие вопросы архитектуры операционных систем
- •1.2Архитектура Windows
- •1.2.1История возникновения Windows
- •1.2.2Архитектура ос Windows
- •1.2.3История возникновения ос Linux
- •1.2.4Архитектура Linux
- •1.2.5Интерфейсы системы unix
- •1.2.6Файловая система unix
- •1.2.7Аутентификация в unix
- •1.2.8Сценарии командной оболочки unix
- •1.3Операционная система qnx
- •1.3.1 Архитектура qnx
- •1.4Выводы
- •1.5Вопросы для самоконтроля
- •2.Типы и алгоритмы работы с оперативной памятью
- •2.1Общие принципы функционирования подсистемы памяти в ос
- •2.1.1Обобщённые принципы управления памятью
- •2.1.2Однозадачная система без подкачки на диск
- •2.1.3Многозадачность с фиксированными разделами
- •2.1.4Подкачка
- •2.1.5Управление памятью с помощью битовых массивов
- •2.1.6Управление памятью с помощью связанных списков
- •2.1.7Виртуальная память
- •2.1.8Многоуровневые таблицы страниц
- •2.1.9Алгоритмы замещения страниц
- •2.2Виртуальная память ос Windows
- •2.2.1Архитектура памяти в ос Windows
- •2.2.2Работа с виртуальной памятью в ос Windows
- •2.2.3Использование виртуальной памяти в приложениях
- •2.3Пример организации страничной памяти на примере linux
- •2.3.1Страничная организация памяти в Linux
- •2.3.2Права доступа к области памяти
- •2.3.3Работа с областями памяти в Linux
- •3.Процессы и потоки
- •3.1Процессы
- •3.1.1Модель процесса
- •3.1.2Создание процесса
- •3.1.3Завершение процесса
- •3.1.4Состояния процессов
- •3.1.5Реализация процессов
- •3.2Потоки
- •3.2.1Реализация потоков
- •3.2.2Реализация потоков на уровне ядра
- •3.2.3Смешанная реализация
- •3.2.4 Метод управления «Активация планировщика»
- •3.2.5Всплывающие потоки
- •3.3Межпроцессное взаимодействие
- •3.3.1Состояние состязания
- •3.3.2Критические секции (Критические области)
- •3.3.3Взаимное исключение с активным ожиданием
- •3.3.4Примитивы межпроцессного взаимодействия
- •3.4Семафоры
- •3.5Мьютексы
- •3.6Организация многопоточной обработки в среде Windows
- •3.6.1Объекты ядра Windows
- •3.6.2Потоки Windows
- •3.6.3Синхронизация потоков в Windows
- •3.6.4Синхронизация потоков с помощью объектов ядра
- •3.6.5Сравнение объектов, используемых для синхронизации потоков
- •3.7Организация процессов и потоков в Linux
- •3.7.1Среда окружения в Linux
- •3.7.2Создание нового процесса. Системный вызов exec.
- •3.7.3Потоки unix. Функции потоков стандарта posix.
- •3.8Синхронизация потоков в unix
- •3.8.1Мьютексы
- •3.8.2Семафоры
- •0,0,0, //Ожидать обнуления семафора
- •0,1,0 // Затем увеличить значение семафора на 1};
- •0,1, 0 // Увеличитьзначение семафора на 1};
1.4Выводы
Современные ОС представляю собой основное связуюшее звено между аппаратным и программным обеспечением вычислительной системы. Они являются сложными системами, включающими в себя большое количество различных компонент, основным из которых является ядро операционной системы, которое может быть построено по одной из трёх основных архитектур: микроядра, модульного и монолитного ядра.
Современные операционные системы делятся на 2 больших класса операционные системы общего назначения и операционные системы реального времени. В последнем классе операционных систем критичным является время выполнения задачи.
1.5Вопросы для самоконтроля
Что такое операционная система?
Что такое операционная система реального времени?
Перечислите основные этапы развития операционных систем и их особенности?
Что такое системы разделения времени? Приведите примеры
Назовите основной критерий для оценки систем реального времени?
В чём заключается основная задача операционных систем общего назначения?
Назовите отличие между системами «жёсткого» и «мягкого» реального времени?
Могут ли черты систем реального времени присутствовать в системах разделения времени, и наоборот?
Перечислите основные группы функциональных блоков в современных ОС.
Перечислите основные микроархитектуры ядер в современных ОС. Опишите их отличия
Дайте определение процесса.
Что такое симметричная многопроцессорность?
Определите, к какому из типов микроархитектур ядра принадлежит ОС Windows.
Назовите ОС семейства Windows, принадлежащие к линейке Windows NT.
Назовите ОС семейства Windows, принадлежащие к линейке Windows 9x.
Перечислите основные особенности системы Windows NT.
Какие классы приложений рассматриваются в Windows NT.
Перечислите основные подсистемы среды, входящие в Windows NT
В чём заключается технология PnP
Перечислите основные типы драйверов Windows
Каким способом можно добавить новый код к ядру Windows
Перечислите основные средства клиент-серверной архитектуры Windows NT
Какие компоненты входят в исполняемую часть Windows NT. Их назначение
Основные компоненты подсистемы Win32. Их функции.
Является ли в Windows 2000 драйверы системной шины отделёнными от HAL.
2.Типы и алгоритмы работы с оперативной памятью
2.1Общие принципы функционирования подсистемы памяти в ос
2.1.1Обобщённые принципы управления памятью
Современные объёмы оперативной памяти достаточно велики, однако существенно возросли и размеры данных, хранимых в оперативной памяти. Поэтому актуальность оптимизации управления памятью не снижаются. В современных системах управлением памятью занимается специальный модуль управления памятью - менеджер памяти.
Архитектуру памяти и принципы управления памятью тесно связаны с понятиями процесса и потока. При рассмотрении архитектуры памяти процессом будем называть выполняющуюся в данный момент программу. Поток (потоки) – отдельная процедура или процедуры, которые выполняются параллельно в рамках одного процесса.
Основная задача менеджера памяти состоит в отслеживании свободной памяти и выделении этого пространства для уже существующих процессов, а также размещение в памяти вновь запускаемых процессов.
Системы управления памятью можно разделить на два класса: перемещающие процессы между оперативной памятью и диском во время их выполнения (то есть осуществляющие подкачку процессов целиком (swapping) или использующие страничную подкачку (paging)) и те, которые этого не делают. Второй вариант проще, поэтому начнем с него, а два упомянутых выше вида подкачки рассмотрим позже в этом же разделе. Обычный и постраничный варианты подкачки в значительной степени являются искусственными процессами, вызванными отсутствием достаточного количества оперативной памяти для одновременного хранения всех программ.
Программное обеспечение растет еще быстрее, чем память; поэтому потребность в рациональном и эффективном управлении памятью будет существовать всегда. В 80-е годы многие университеты использовали системы разделения времени для работы десятков (более-менее довольных) пользователей на машинах VAX с объемом памяти 4 Мбайт. Сейчас компания Microsoft рекомендует для индивидуальной работы в системе Windows 2000 устанавливать на компьютер, по меньшей мере, 64 Мбайт оперативной памяти. Дальнейшее развитие в сторону мультимедийных систем накладывает еще большие требования на память. Таким образом, весьма вероятно, что качество управления этой частью компьютера будет актуальным по крайней мере в течение следующего десятилетия.
