Всё, что нужно к РК 2 (1069443), страница 2
Текст из файла (страница 2)
-
Архитектура ОС Windows. Компоненты пользовательского режима и режима ядра.
Архитектура Windows имеет модульную структуру и состоит из двух основных уровней — компоненты, работающие в режиме пользователя и компоненты режима ядра. Программы и подсистемы, работающие в режиме пользователя имеют ограничения на доступ к системным ресурсам. Режим ядра имеет неограниченный доступ к системной памяти и внешним устройствам. Ядро системы называют гибридным ядром или макроядром. Архитектура включает в себя само ядро, уровень аппаратных абстракций (HAL), драйверы и ряд служб (Executives), которые работают в режиме ядра (Kernel-mode drivers) или в пользовательском режиме (User-mode drivers).
Пользовательский режим Windows состоит из подсистем, передающих запросы ввода-вывода соответствующему драйверу режима ядра посредством менеджера ввода-вывода. Есть две подсистемы на уровне пользователя: подсистема окружения (запускает приложения, написанные для разных операционных систем) и интегрированная подсистема (управляет особыми системными функциями от имени подсистемы окружения). Режим ядра имеет полный доступ к аппаратной части и системным ресурсам компьютера. И также предотвращает доступ к критическим зонам системы со стороны пользовательских служб и приложений.
-
Объектная модель ОС Windows.
-
Основные объекты ОС Windows (процессы, потоки, задания).
Процессом обычно называют экземпляр выполняемой программы.
Хотя на первый взгляд кажется, что программа и процесс понятия практически одинаковые, они фундаментально отличаются друг от друга. Программа представляет собой статический набор команд, а процесс это набор ресурсов и данных, использующихся при выполнении программы. Процесс в Windows состоит из следующих компонентов:
- Структура данных, содержащая всю информацию о процессе, в том числе список открытых дескрипторов различных системных ресурсов, уникальный идентификатор процесса, различную статистическую информацию и т.д.;
- Адресное пространство - диапазон адресов виртуальной памяти, которым может пользоваться процесс;
- Исполняемая программа и данные, проецируемые на виртуальное адресное пространство процесса.
Процессы инертны. Отвечают же за исполнение кода, содержащегося в адресном пространстве процесса, потоки. Поток (thread) - некая сущность внутри процесса, получающая процессорное время для выполнения. В каждом процессе есть минимум один поток. Этот первичный поток создается системой автоматически при создании процесса. Далее этот поток может породить другие потоки, те в свою очередь новые и т.д. Таким образом, один процесс может владеть несколькими потоками, и тогда они одновременно исполняют код в адресном пространстве процесса. Каждый поток имеет:
- Уникальный идентификатор потока;
- Содержимое набора регистров процессора, отражающих состояние процессора;
- Два стека, один из которых используется потоком при выполнении в режиме ядра, а другой - в пользовательском режиме;
- Закрытую область памяти, называемую локальной памятью потока (thread local storage, TLS) и используемую подсистемами, run-time библиотеками и DLL.
-
Обработка запросов ввода-вывода в ОС Windows. Диспетчер ввода-вывода. Драйверы устройств.
Драйвер файловой системы со стандартным интерфейсом, подобный драйверу внешнего устройства это набор функций, обеспечивающий управление файловой системой.
Microsoft Windows Driver Model определяет унифицированную модель драйвера для операционных систем Windows 98, Windows 2000 и старше, стандартизируя требования и уменьшая количество кода, необходимое для написания драйвера. В соответствии с концепцией WDM, драйверы могут быть бинарно совместимы.
-
Основные структуры данных, связанные с запросами ввода-вывода в ОС Windows. Объекты «файл», «драйвер», «устройство». Пакеты запросов ввода-вывода.
Основные структуры данных:
-
Файл
-
Драйвер
-
Устройство
-
Пакеты запросов ввода-вывода (IRP)
Файл:
именованная область данных на носителе информации.
Драйвер:
компьютерное программное обеспечение, с помощью которого другое программное обеспечение (операционная система) получает доступ к аппаратному обеспечению некоторого устройства. Обычно с операционными системами поставляются драйверы для ключевых компонентов аппаратного обеспечения, без которых система не сможет работать. Однако для некоторых устройств (таких, как видеокарта или принтер) могут потребоваться специальные драйверы, обычно предоставляемые производителем устройства.
Устройство:
Объект «устройство», представляющий физическое или логическое устройство в системе и описывающий его характеристики, например границы выравнивания буферов и адреса очередей для приема IRP, поступающих на это устройство.
IRP пакет - структура данных ядра Windows, обеспечивающая обмен данными между приложениями и драйвером, а также между драйвером и драйвером.
C точки зрения архитектуры любой драйвер выступает как участник процесса ввода-вывода. Причем независимо от того, является ли он драйвером устройства ввода вывода на самом деле. Также в архитектуре Windows запрещено прямое взаимодействие программы пользовательского уровня и драйвера. Оно сводится к тому что программа посылает код IOCTL, который уже приводит к тому, что диспетчер ввода-вывода формирует на основе нее IRP пакет. В самом драйвере определены функции, реагирующие на определённый тип запроса в IRP пакете.
IRP пакет включает в себя две части: постоянную и стек ввода-вывода. В первой части хранится та информация, которая не меняется при передаче по стеку устройств или не требует своего сохранения при передаче. Стек устройств это набор устройств, которые обработают данный IRP пакет. Причем по стеку этот пакет передается последовательно от устройства к устройству.
-
Синхронный и асинхронный ввод-вывод в ОС Windows.
При синхронном вводе - выводе (synchronous file I/O) файла поток запускает операцию ввода/вывода (I/O) и немедленно вводит ждущееся состояние до тех пор, пока, запрос ввода-вывода не завершит работу. Поток, выполняющий асинхронный ввод - вывод (asynchronous file I/O) файла, отправляет запрос на ввод-вывод данных ядру. Если запрос принят ядром, поток продолжает обрабатывать другое задание до тех пор, пока ядро не подаст сигналы потоку, что операция ввода/вывода (I/O) полностью завершилась. Тогда поток прерывает работу со своим текущим заданием и обрабатывает данные от операции ввода/вывода (I/O) по мере необходимости.
-
Общая архитектура ОС Unix. Основные модули ядра.
Особенности ОС Unix:
-
Открытость и переносимость
-
Модифицируемость
-
Модульность
-
Многозадачность
-
Стандартизация
Впервые система UNIX была описана в 1974 году в статье Кена Томпсона и Дэнниса Ричи в журнале "Communications of the ACM". Системное описание базируется на особенностях операционной системы UNIX версия V редакция 2, распространением которой занимается корпорация AT&T, с учетом отдельных особенностей редакции 3.
Характерные особенности системы:
-
Система написана на языке высокого уровня, благодаря чему ее легко читать, понимать, изменять и переносить на другие машины. По оценкам, сделанным Ричи, первый вариант системы на Си имел на 20-40 % больший объем и работал медленнее по сравнению с вариантом на ассемблере, однако преимущества использования языка высокого уровня намного перевешивают недостатки.
-
Наличие довольно простого пользовательского интерфейса, в котором имеется возможность предоставлять все необходимые пользователю услуги.
-
Наличие элементарных средств, позволяющих создавать сложные программы из более простых.
-
Наличие иерархической файловой системы, легкой в сопровождении и эффективной в работе.
-
Обеспечение согласования форматов в файлах, работа с последовательным потоком байтов, благодаря чему облегчается чтение прикладных программ.
-
Наличие простого, последовательного интерфейса с периферийными устройствами.
-
Система является многопользовательской, многозадачной; каждый пользователь может одновременно выполнять несколько процессов.
-
Архитектура машины скрыта от пользователя, благодаря этому облегчен процесс написания программ, работающих на различных конфигурациях аппаратных средств.
СТРУКТУРА СИСТЕМЫ
Система делится на две части:
-
Одну часть составляют программы и сервисные функции; эта часть легко доступна пользователям, она включает такие программы, как командный процессор, обмен сообщениями, пакеты обработки текстов и системы обработки исходных текстов программ.
-
Другая часть включает в себя собственно операционную систему, поддерживающую эти программы и функции.
-
Типы процессов Unix. Основные структуры данных процесса. Состояние процессов.