русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Архитектура Windows NT (самостоятельно)


Дата добавления: 2013-12-23; просмотров: 2785; Нарушение авторских прав


Смешанные системы

Все рассмотренные подходы к построению операционных систем имеют свои достоинства и недостатки. В большинстве случаев современные операционные системы используют различные комбинации этих подходов. Так, например, ядро операционной системы Linux представляет собой монолитную систему с элементами микроядерной архитектуры. При компиляции ядра можно разрешить динамическую загрузку и выгрузку очень многих компонентов ядра – так называемых модулей. В момент загрузки модуля его код загружается на уровне системы и связывается с остальной частью ядра. Внутри модуля могут использоваться любые экспортируемые ядром функции.

Другим примером смешанного подхода может служить возможность запуска операционной системы с монолитным ядром под управлением микроядра. Так устроены 4.4BSD и MkLinux, основанные на микроядре Mach. Микроядро обеспечивает управление виртуальной памятью и работу низкоуровневых драйверов. Все остальные функции, в том числе взаимодействие с прикладными программами, осуществляется монолитным ядром. Данный подход сформировался в результате попыток использовать преимущества микроядерной архитектуры, сохраняя по возможности хорошо отлаженный код монолитного ядра.

Наиболее тесно элементы микроядерной архитектуры и элементы монолитного ядра переплетены в ядре Windows NT. Хотя Windows NT часто называют микроядерной операционной системой, это не совсем так. Микроядро NT слишком велико (более 1 Мбайт), чтобы носить приставку "микро". Компоненты ядра Windows NT располагаются в вытесняемой памяти и взаимодействуют друг с другом путем передачи сообщений, как и положено в микроядерных операционных системах. В то же время все компоненты ядра работают в одном адресном пространстве и активно используют общие структуры данных, что свойственно операционным системам с монолитным ядром. По мнению специалистов Microsoft, причина проста: чисто микроядерный дизайн коммерчески невыгоден, поскольку неэффективен.



Таким образом, Windows NT можно с полным правом назвать гибридной операционной системой.

Когда в 1989 году Microsoft приступила к разработке Windows NT, было выдвинуто несколько ключевых требований к новой операционной системе. Это должна была быть полностью 32-разрядная ОС, способная работать на многочисленных аппаратных платформах с разной архитектурой.

Кроме того, от NT требовалось выполнение большинства существующих 16-разрядных приложений для MS-DOS и Windows 3.х.

В целях обеспечения эффективности и целостности работы ОС в системе Windows NT реализуются два режима работы (см. схему) :

· режим ядра (kernel mode)

· режим пользователя (user mode)

Режим ядра - это привилегированный режим работы, в ко­тором код получает прямой доступ ко всем аппаратным ресур­сам и всей памяти, включая адресные пространства всех процес­сов режима пользователя. Функциональные возможности ком­понентов режима ядра включают:

· прямой доступ к оборудованию;

· прямой доступ ко всем видам памяти компьюте­ра;

· возможность работы без передачи на жесткий диск в файл подкачки виртуальной памяти;

· более высокий приоритет испол­нения, чем процессы режима пользователя.

Функционирование режима ядра Windows NT обеспечивает­ся исполняющей системой Windows NT (Windows NT Execu­tive), состоящей из следующих компонентов :

· сервис исполняющей системы- управление памятью, процессами, потоками, безопасностью, вводом/выводом, межпроцессорными обменами (см. схему);

· ядро Windows NT (ntoskrnl.exe) выполняет низкоуровневые функции операционной системы: диспетчеризация потоков, прерываний и исключений, синхронизация процессоров, отложенный вызов процедур. В отличие от остальной исполняемой части операционной системы, ядро никогда не выгружается из оперативной памяти, его выполнение никогда не прерывается другими потоками. Код ядра написан в основном на Си, а части, дающие наибольшую нагрузку на процессор, на языке Ассемблера. Ядро расположено между слоем системных служб и HAL;

· слой абстракции от оборудования (HAL - Hardware Abstraction Layer) изолирует ядро, драйверы устройств и исполняемую часть NT от аппаратных платформ, на которых должна работать операционная система. Этот про­граммный слой позволяет скрыть особенности аппаратных платформ, предоставив ОС стандартные точки входа в процеду­ры, благодаря чему для нее исчезают различия между платформами и архитектурами. Поэтому ОС может функционировать на разных платформах с разными процессорами (остались только Intel и Alpha). Кроме того, Windows NT спо­собна работать на одно- и многопроцессорных компьютерах;

Кроме того в режиме ядра работают :

· драйверы устройств включают как файловую систему, так и аппаратные драйверы, которые транслируют пользовательские вызовы функций ввода/вывода в запросы физических устройств ввода/вывода;

· функции графического интерфейса пользователя работают с окнами, элементами управления и рисунками.

Режим пользователя - менее приви­легированный по сравнению с режимом ядра работы процессора.

· не имеет прямого доступа к аппаратуре. Это сделано в целях защиты от неверно работаю­щих приложений или от несанкционированного доступа. Запро­сы на использование аппаратных ресурсов должны быть разре­шены компонентом режима ядра;

· ограничен размерами выделенного адресного простран­ства, что позволяет обеспечить дополнительную защиту ОС. Системные службы он вызывает через интерфейсы прикладных программ (Applica­tion Program Interface - API);

· может быть выгружен из физической памяти в виртуальную па­мять на жестком диске. Виртуальная память (virtual memory, VRAM) использует пространство на жестком диске как дополни­тельную оперативную память;

· Приоритет процесса пользовательского типа ниже, чем у процессов режима ядра. Поэтому в сравнении с последним ему, как правило, предоставляется меньше процессорного времени. Это предохраняет ОС от снижения производительности или возникновения задержек, связанных с ожиданием завершения работы приложений.

Имеется четыре базовых типа пользовательских процессов :

· Специальные процессы поддержки системы, например, процесс регистрации пользователя и менеджер сессий, которые не являются службами NT;

· Процессы сервера, которые являются службами NT (аналог демонов в ОС Unix). Примером может быть регистратор событий (Event Logger);

· Подсистемы среды, которые обеспечивают пользовательским приложениям среду других операционных систем. Windows NT поставляется с тремя подсистемами: Win32, Posix и OS/2 2.1;

· Пользовательские приложения одного из пяти типов: Win32, Windows 3.1 (Win16), MS-DOS, Posix или OS/2 2.1.

 

4. Вычислительный процесс и его реализация с помощью ОС

 

Мультипрограммирование (многозадачность) – это способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются сразу несколько программ. Эти программы совместно используют не только процессор, но и оперативную память, данные, устройства ввода-вывода, т.е. ресурсы. Мультипрограммирование призвано повысить эффективность использования ВС. Критерями эффективности ВС являются:

- пропускная способность – количество задач, выполняемых ВС в единицу времени;

- удобство работы пользователей, заключающееся, в частности, в том, что они имеют возможность интерактивно работать одновременно с несколькими приложенияи на одной машине

- реактивность системы – способность системы выдерживать заранее заданные интервалы времени между запуском программы и получением результата.

В зависимости от выбранного критерия эффективности ОС мы делили на:

- системы с пакетной обработкой

- системы разделения времени

- системы ревального времени

- мультипроцессорные.

Процесс со стороны пользователя – это ис­полняемый модуль, выполняющий задачу, поставленную ОС (нестрогое определение).

Примерами процессов являются: прикладные программы пользователей, утилиты и другие системные обрабатывающие программы. Процессами могут быть редактирование какого-либо текста, трансляция исходной программы, ее компоновка, исполнение. Причем трансляция какой-нибудь исходной программы является одним процессом, а трансляция следующей исходной программы – другим процессом.

Для реализации мультипрограммирования, ОС должна определить и офор­мить для себя те внутренние единицы работы, между которыми будет разделять­ся процессор и другие ресурсы компьютера. В настоящее время в большинстве ОС определены два типа единиц работы.

Процесс(задача) – это более крупная еди­ница работы ОС, требующая для своего выполнения нескольких более мелких работ, для обозначения которых исполь­зуют термины «поток», или «нить».

Поток(нить) – это последовательность команд, выполняемых в процессе.

Для ОС процесс представляет собой единицу работы, заявку на потребление системных ресурсов.

Процесс (задача) со стороны ОС - абстракция, описывающая выполняющуюся программу и ее данные.



<== предыдущая лекция | следующая лекция ==>
Базовые механизмы ядра | Более полное и строгое определение.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.