Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Лекция 7. Способы построения ОС.
1. Общие принципы построения операционных систем.
2. Монолитные и микроядерные операционные системы
3. Архитектура Windows NT.
1. Общие принципы построения операционных систем
Многие реально существующие ОС разработаны и реализованы на основе иерархической структуры.
Каждый слой, или уровень, в структуре может использовать функции, предоставляемые ему более низким уровнем, как если бы они являлись частью реальной машины. Так уровень 0, часто называемый ядром ОС, имеет дело непосредственно с аппаратурой; уровень 1 имеет дело с интерфейсом, представленным уровнем 0 и т.д. Программы пользователя имеют дело с интерфейсом самого высокого уровня (в данном случае уровня 3), который представляет собой интерфейс пользователя.
Расположение уровней определяется взаимоотношением между выполнением или операциями. В общем случае функции каждого уровня могут обращаться лишь к функциям того же или более низкого уровня; таким образом, не должно быть внешних вызовов. В данной структуре программы управления файлами (уровень 3) для распределения буферов должны использовать менеджер памяти (уровень 2), а для чтения и записи блоков супервизор ввода вывода (уровень 1). Если управление памятью производится при помощи размещения страниц по запросу, то менеджер памяти для передачи страниц между реальной памятью и вспомогательной тоже должен вызвать супервизор ввода вывода. Все уровни системы используют предоставляемые уровнем 0 функции планирования процессов и управления ресурсами.
У иерархической структуры много преимуществ. Системные программы на каждом уровне могут использовать относительно простые функции и интерфейсы, предоставляемые более низкими уровнями. Программисту нет необходимости вникать в то, как они в действительности реализуются. ОС может быть создана и отлажена по уровням, начиная с нулевого. Это сильно снижает сложность каждой части системы и немного упрощает реализацию заданий и их отладку.
Различные системы могут существенно отличаться друг от друга. Рассмотрим, например, программы обработку прерываний. Во многих системах обработки прерываний первого уровня (ОППУ) размещены ядре (уровень 0). После начальной обработки прерываний ОППУ может передать управление программе более высокого уровня; это исключение из правил, согласно которым внешнее вызовы недоступны. Так, например, ОППУ в случае прерывания по отсутствию страницы может сохранить информацию о состоянии, разрешить другие прерывания, а затем передать управления программе уровня 2.
В некоторых ОС иерархическое распределение функций в особых случаях сделано более сложным.
Иерархические системы различаются также правилами передачи управления с одного уровня на другой. В строгой иерархии каждый уровень может обращаться только к уровню, находящемуся непосредственно под ним. Так, уровень 3 может связаться только с уровнем 2. Если программе управления файлами в нашем примере необходимо вызвать супервизор ввода вывода, то этот запрос будет передан с уровня 2 на уровень 1. Преимущества этого подхода заключается в простоте использования: каждый уровень взаимодействует только с одним интерфейсом. Однако такое ограничение может привести к потере эффективности, т.к. возрастает число вызовов, которые нужно сделать для достижения внутреннего уровня. В прозрачной иерархии каждый уровень может связываться непосредственно с интерфейсом любого более низкого уровня. Так, например, программа пользователя может обращаться к программам управления файлами уровня 3 или непосредственно вызывать функции супервизора ввода вывода Уровня 1.
Чтобы перед пользователями (программами, процессами) создать иллюзию того, что она работает на автономных виртуальных машинах, концепцию иерархической структуры, только что рассматриваемую, можно расширить. Подход, связанный с применением виртуальных машин, делает возможной одновременную работу различных программ на одной и той же реальной машине. Таким образом, виртуальные машины можно рассматривать как перенесение принципов мультипрограммирования на самый низкий уровень ОС.
Виртуальная машина.
Под операционной системой ОС 1 работает три программы (протекает три процесса), под ОС 2 один процесс, программа под ОС 3 тестируется. Есть также программа пользователя 4, предназначенная для работы в режиме супервизора в качестве автономной программы, находящейся под собственным управлением. Все разновидности программ плюс автономная программа фактически работают на одной реальной машине. Однако они имеют дело не с ней, а с монитором виртуальной машины (МВМ), благодаря которому у каждой программы создается впечатление, что он работает на автономной машине. Таким образом, в то время как обычные пользователь обслуживаются традиционным способом (Р1…Р4), имеется возможность отлаживать новые программы, а также разрешить специальной программе в особых случаях работать в режиме супервизора.
Если тестируется программа или автономный пользователь нарушит нормальное течение процесса, то это отразится лишь на их виртуальных машинах. Другие программы реальной машины смогут спокойно продолжать свою работу.
На рисунке показана, каким образом создается подобная иллюзия.
Программы самого нижнего уровня ОС имеют дело не с реальной машиной, а монитором виртуальной машины. МВМ, совершенно не видимый ни ОС, ни программе пользователя, предоставляет те же ресурсы, обслуживание и функции, что и лежащая в основе реальная машина.
Каждый непосредственный пользователь виртуальной машины фактически работает не в режиме супервизора, а в пользовательском режиме. Когда такой пользователь пытается выполнить привилегированную команду происходит программное прерывание. По нему управление передается МВМ. МВМ имитирует с учетом виртуальной машины выполнение требуемой команды, а затем возвращает управление пользователю. МВМ активизируется и по прерыванию на реальной машине. Он определяет, какая из виртуальных машин должна быть задействована, и производит соответствующие изменения ее состояния.
Практически МВМ представляет собой завершенную, хотя и простую, операционную систему реальной машины. Программы и автономные пользователи виртуальной машины являются «пользователями» реальной операционной системы (МВМ). Таким образом, МВМ призван осуществлять все самые существенные, рассмотренные машинно-зависимые функции. МВМ сохраняет для каждого процесса информацию о состоянии и распределяет реальный ЦП между различными виртуальными машинами; это не что иное, как выполнение функции планирования процессов. Кроме того, МВМ выделяет каждой виртуальной машине самостоятельную виртуальную память и несколько виртуальных каналов ввода-вывода.
Наиболее очевидные преимущества виртуальных машин это гибкость и удобство. Чтобы удовлетворить нужды различных пользователей, одновременно на реальной машине могут работать программы под разные ОС. При работе с виртуальными машинами можно достичь и более высокой степени защиты, поскольку ни одна виртуальная машина не имеет доступа к ресурсам другой. Недостатки является значительная сложность системы, моделирующей работу каждой виртуальной машины. Например, если программа, функционирующая на виртуальной машине, сама использует средства виртуальной памяти, то может понадобится наличие двух раздельных уровней трансляции динамических адресов. Эффективность ОС виртуальной машины в основном зависти от того, сколько операций должно моделироваться МВМ, а сколько может быть выполнено непосредственно на реальной машине.
Мультипроцессорные ОС.
ОС мультипроцессорной машины должна выполнять функции, аналогичные тем, что мы рассматривали для однопроцессорных систем. Конечно, некоторые из них могут нуждаться в изменениях.
Например, планировщик процессов может выделить пользовательским заданиям более одного процессора, поэтому в активном состоянии могут находиться сразу несколько процессов. Существует также ряд менее очевидных вопросов, большинство из которых связано с организацией системы в целом.
На рисунке показана простейшая форма мультипроцессорной организации. Каждый процессор имеет свою собственную память, УВВ и другие ресурсы. Вдобавок на каждом процессоре функционирует его собственная ОС. Процессоры соединяются линиями связи. Посылка по ним запроса является единственным способом получения доступа одного процессора к ресурсам другого.
Подобная организация, часто называется мультипроцессорной системой со слабосвязанными процессами. Эта система похожа на сеть из однопроцессорных систем. Такие системы часто используются, если среди различных процессоров существует специализация функций. Например, некоторые системы разделения времени для осуществления всех деталей управления связью с терминалами пользователей имеют периферийный процессор. Главный процессор выполняет всю текущую вычислительную работу, связываясь с периферийным процессором всякий раз, когда требуется произвести обмен с терминалами. ОС, работающая на каждом процессоре мультипроцессорной системы со слабо связанными процессорами, очень похожа на те, что были рассмотрены при однопроцессорных систем. Единственной действительно новой функцией является управление сообщениями, посылаемыми по линиям связи.
Мультипроцессорные системы со слабо связанными процессорами относительно просты, поэтому каждый ресурс выделяется какому-нибудь одному процессору. С другой стороны, в некоторых мультипроцессорных системах допускается прямое распределение ресурсов между процессорами. Такая организация, называемая мультипроцессорной системой с сильно связанными процессорами, отчасти усложняет задачи операционной системы.
Система «главныйподчиненный», - означает, что все управление ресурсами и другими функциями операционной системы осуществляется одним главным процессором. На него полностью возложено управление работой всех подчиненных процессоров, выполняющих задания пользователей. Процессоры взаимодействуют либо непосредственно через линии связи, либо через рабочие области совместно используемой памяти. В мультипроцессорных системах, реализованных по принципу главныйподчиненный, процессоры могут совместно использовать такие ресурсы, как память и файлы данных. Однако программы и структуры данных, составляющих саму ОС, не разделяются; она используется только главным процессором.
Наиболее важной проблемой в мультипроцессорных системах типа главный подчиненный является несбалансированность использования ресурсов. Например, главный процессор может быть перегружен запросами от служб ОС, и это станет причиной длительных простоев подчиненных процессоров. Вдобавок любая неисправность в аппаратуре главного процессора вызывает остановку всей системы. Всего этого можно избежать, разрешить любому процессору выполнять любую функцию, которая будет затребована ОС или программой пользователя. Этот подход называемый симметричной обработкой
Такая система также называется распределенной. В такой системе ликвидируются потенциально слабые места в системе типа главный подчиненный, т.к. все процессоры имеют возможность выполнять один и тот же набор функций. Вдобавок выход из строя одного процессора не обязательно вызовет сбой всей системы. Остальные процессоры могут продолжить выполнение всех необходимых функций.
В симметричных мультипроцессорных системах различные ОС могут выполняться одновременно различными процессорами. Из-за этого разработка подобных систем оказывается значительно сложнее и труднее по сравнению с рассмотренными выше. Например, все процессоры должны иметь доступ ко всем структурам данных, используемым операционной системой. Однако процессоры имеют дело с этими структурами данных независимо друг от друга, и если два процессора одновременно пытаются изменить одну и туже структуру, возникают осложнения. Симметричные мультипроцессорные системы должны иметь средства с помощью которых осуществляется управление доступом к структурам данных и к критическим таблицам ОС. Для решения подобных задач не достаточны операций запроса и отказа, т.к. два различных процессора могут выполнять операции запроса одновременно. Поэтому обычно требуется чтобы, аппаратура позволяла одному процессору захватывать управление критическим ресурсом, блокируя на один шаг все другие процессоры.
2. Монолитные и микроядерные операционные системы
Монолитные ОС являются прямой противоположностью микроядерным ОС. В монолитной ОС, несмотря на ее возможную сильную структуризацию, очень трудно удалить один из уровней многоуровневой модульной структуры. Добавление новых функций и изменение существующих для монолитных ОС требует очень хорошего знания всей архитектуры ОС и чрезвычайно больших усилий. Поэтому более современный подход к проектированию ОС, который может быть условно назван как «клиент-серверная» технология, позволяет в большей мере и с меньшими трудозатратами реализовать перечисленные выше принципы проектирования ОС.
Модель клиент-сервер предполагает наличие программного компонента, являющегося потребителем какого-либо сервиса клиента, и программного компонента, служащего поставщиком этого сервиса сервера. Взаимодействие между клиентом и сервером стандартизируется, так что сервер может обслуживать клиентов, реализованных различными способами и, может быть, разными разработчиками. При этом главным требованием является использование единообразного интерфейса. Инициатором обмена обычно является клиент, который посылает запрос на обслуживание серверу, находящемуся в состоянии ожидания запроса. Один и тот же программный компонент может быть клиентом по отношению к одному виду услуг и сервером для другого вида услуг.
При поддержке монолитных ОС возникает ряд проблем, связанных с тем, что все функции макроядра работают в едином адресном пространстве. Во-первых, это опасность возникновения конфликта между различными частями ядра; во-вторых сложность подключения к ядру новых драйверов. Преимущество микроядерной архитектуры перед монолитной заключается в том, что каждый компонент системы представляет собой самостоятельный процесс, запуск или остановка которого не отражается на работоспособности остальных процессов.
Микроядро это минимальная часть операционной системы, служащая основой модульных и переносимых расширений.
Основная идея, заложенная в технологию микроядра, заключается в том, чтобы конструировать необходимую среду верхнего уровня, из которой можно легко получить доступ ко всем функциональным возможностям уровня аппаратного обеспечения. При такой структуре ядро служит стартовой точкой для создания системы. Искусство разработки микроядра заключается в выборе базовых примитивов, которые должны в нем находиться для обеспечения необходимого и достаточного сервиса. В микроядре содержится и исполняется минимальное количество кода, необходимое для реализации основных системных вызовов. В число этих вызовов входят передача сообщений и организация другого общения между внешними по отношению к микроядру процессами, поддержка управления прерываниями, а также ряд некоторых других функций. Остальные функции, характерные для не микроядерных ОС, обеспечиваются как модульные дополнения-процессы, взаимодействующие главным образом между собой и осуществляющие взаимодействие посредством передачи сообщений.
Микроядро является маленьким, передающим сообщения модулем системного программного обеспечения, работающим в наиболее приоритетном состоянии компьютера и поддерживающим остальную часть операционной системы, рассматриваемую как набор серверных приложений.
Исполняемые микроядром функции ограничены в целях сокращения его размеров и максимизации количества кода, работающего как прикладная программа. Микроядро включает только те функции, которые требуются для определения набора абстрактных сред обработки для прикладных программ и для организации совместной работы приложений в обеспечении сервисов и в действии клиентами и серверами. В результате микроядро обеспечивает только пять различных типов сервисов:
Другие подсистемы и функции операционной системы, такие как системы управления файлами, поддержка внешних устройств и традиционные программные интерфейсы, размещаются в одном или более системных сервисах либо в задаче операционной системы. Эти программы работают как приложения микроядра.
Следуя концепции множественных потоков на одно задание, микроядро создает прикладную среду, обеспечивающую использование мультипроцессоров без требования, чтобы какая-то конкретная машина была мультипроцессорной: на однопроцессорной различные потоки просто выполняются в разные времена. Вся поддержка, требуемая для мультипроцессорных машин, сконцентрирована в сравнительно малом и простом микроядре.
Благодаря своим размерам и способности поддерживать стандартные сервисы программирования и характеристики в виде прикладных программ сами микроядра проще, чем ядра монолитных или модульных операционных систем. С микроядром функция операционной системы разбивается на модульные части, которые могут быть сконфигурированы целым рядом способов, позволяя строить большие системы добавлением частей к меньшим. Например, каждый аппаратно-независимый нейтральный сервис логически отделен и может быть сконфигурирован в широком диапазоне способов. Микроядра также облегчают поддержку мультипроцессоров созданием стандартной программной среды, которая может использовать множественные процессоры в случае их наличия, однако не требует их, если их нет. Специализированный код для мультипроцессоров ограничен самим микроядром. Более того, сети из общающихся между собой микроядер могут быть использованы для обеспечения операционной системной поддержки возникающего класса массивно параллельных машин.
Наиболее ярким представителем микроядерных ОС является ОС реального времени QNX. Микроядро QNX поддерживает только планирование и диспетчеризацию процессов, взаимодействие процессов, обработку прерываний и сетевые службы нижнего уровня. Микроядро обеспечивает всего лишь пару десятков системных вызовов, но благодаря этому оно может быть целиком размещено во внутреннем кэше даже таких процессоров, как Intel 486. Как известно, разные версии этой ОС имели и различные объемы ядер от 8 до 46 Кбайт.
Чтобы построить минимальную систему QNX, требуется добавить к микроядру менеджер процессов, который создает процессы, управляет процессами и памятью процессов. Чтобы ОС QNX была применима не только во встроенных и бездисковых системах, нужно добавить файловую систему и менеджер устройств. Эти менеджеры исполняются вне пространства ядра, так что ядро остается небольшим.
3. Архитектура Windows NT.
ОС семейства Windows впервые стали продаваться на рынке с середины 1993 г.
Windows Server может выступать как:
На схеме представлены основные элементы архитектуры Windows NT.
Архитектурные уровни, формирующие операционную систему Windows NT Server, состоят из модульных компонентов, распределенных по уровням. Многоуровневая структура позволяет получить очень устойчивую базовую ОС, все последующие расширения которой выполняются как защищенные подсистемы. При этом добавляемые защищенные подсистемы не требуют модификаций ни базовой системы, ни имеющихся защищенных подсистем.
Архитектура Windows NT состоит из двух основных уровней режима пользователя и режима ядра.
Режим ядра содержит код ОС (ядро), работающий в защищенном режиме процессора. Ядро имеет доступ к системным данным и оборудованию.
Режим пользователя содержит подсистемы среды Windows NT и исполняющиеся в них приложения. Компоненты этого уровня формируют операционные окружения для всех пользовательских программ.
Компоненты режима ядра.
При разработке Windows NT одной из основных задач была защита ОС от ошибок, исполняющихся в ней приложений. Ниже изображены компоненты режима ядра.
Компоненты режима ядра разделены на три уровня исполнительной системы Windows NT:
службы исполнительной системы (исполнительные службы) формирует структуру процесса и отвечает за взаимодействие между процессами, управление памятью, управление объектами, управление очередностью выполнения потоков, обработку прерываний, операции ввода/ вывода, защиту объектов и сетевую безопасность. Для защиты своих компонентов от воздействия приложений и подсистем исполнительная система Windows NT работает в режиме ядра. Исполнительные службы формируют интерфейс между работающими в режиме пользователя защищенными подсистемами и компонентами режима ядра. Для повышения производительности ОС, более экономного расходования памяти и упрощения программного кода Windows NT Диспетчер окон (модуль User) и Интерфейс графических устройств (GDI) расположены в адресном пространстве ядра;
микроядро основная часть исполнительной системы Windows NT координирует работу всех функций ввода/вывода и синхронизирует работу исполнительных служб;
слой абстрагирования от оборудования (HAL) скрывает (абстрагирует) особенности аппаратуры от вышележащих уровней ОС. HAL предоставляет ОС программные абстракции общих устройств: таймера, контроллеров памяти и кэша, периферийных адаптеров, схем симметричной мультипроцессорной обработки и системных шин.
Особенности архитектуры Windows 2000
При запуске программы на исполнение ОС порождает процесс Windows 2000, так как является многозадачной ОС. Это означает, что процесс не может монопольно захватывать вычислительные ресурсы их распределение является функцией ОС ОС централизованно выделяет каждому процессу память, выйти за границы которой они самостоятельно не могут. Этим исключается возможность наложения или перекрытия процессов. Смена процессов в Windows 2000 осуществляется принудительно через определенные промежутки времени.
Понятие процесса применимо не только к пользовательским заданиям, но и к самой ОС. В Windows 2000 ядро реализовано в виде совокупности специальных процессов модулей.
Системные процессы имеют непосредственный доступ к аппаратным ресурсам и делятся на два класса:
Разделение процессов на типы и классы тесно связаны с аппаратными возможностями микропроцессора, называемых кольцами защиты.
Кольца защиты.
В пользовательском режиме исполняется ограниченный набор аппаратных ресурсов процессора, тогда как в системном могут быть использованы любые инструкции. Переход в системный режим происходит в результате выполнения системного вызова.
Современные процессоры имеют более двух уровней привилегий исполнения инструкций. Эти уровни называются кольцами защиты. Разработчики NT разместили в нулевом кольце защиты только самые важную часть кода ОС исполнительный модуль. Остальные компоненты ОС обладают меньшими привилегиями.
Исполнительный модуль.
Исполнительный модуль осуществляет базовые операции нижнего уровня: управление процессами и памятью, диспетчеризацию ресурсов системы, обслуживание прерываний и обеспечение межпроцессорной связи для остальных процессов ОС и для пользовательских задач. Каждому процессу в системе присваивается определенный приоритет. Задачей исполнительного модуля является выбор процесса с наивысшим приоритетом и его запуск.
Основа исполнительного модуля машинно-зависимое микроядро (объемом приблизительно 50 байт). Именно оно может потребовать изменения при переносе на другую компьютерную платформу.
Микроядро.
Во многих современных ОС ядро выросло настолько, что потребовалось выделить в нем микроядро, содержащее аппаратно-зависимую часть кода.
Объектно-ориентированная структура микроядра, объектами которого являются ресурсы одно из технологических новшеств NT. Это означает, что микроядро взаимодействует с любыми ресурсами при помощи единого набора низкоуровневых вызовов. Для сравнения: в ОС ранних версий ядро при управлении драйверами использовало специфические для каждого из них команды.
В Windows 2000 ядро и программные модули, управляющие отдельными ресурсами, имеют общий канал обмена, информацией, использующий механизм сообщений. Получив сообщение, каждый модуль управления ресурсом выполняет специфические действия, например, вывод на терминал или в файл.
Для каждого модуля используется документированный программный интерфейс, что упрощает разработку программных средств.
Расширение привилегированного режима.
Расширение привилегированного режима обеспечивают высокоуровневый сервис для компонентов системы. Процессы этого уровня управляют ресурсами ОС и включают менеджер памяти, планировщики процессов, монитор безопасности, драйверы устройств, файловую систему и сетевые службы. Они являются реентерабельными, прерываемыми и могут выполняться на группе симметрично соединенных процессоров, что повышает производительность ОС при работе на многопроцессорных машинах.
Реализация ОС в виде совокупности процессов облегчает не только модификацию существующих модулей, но и дальнейшее расширение функций ОС. Например, управление сетевыми службами встроено как расширение привилегированного режима.
Потоковые драйверы.
Динамически загружаемые драйверы внешних устройств имеют двухуровневую структуру. Драйверы верхнего уровня являются аппаратно-независимыми, в то время как нижний уровень, организованный в виде специальных библиотек, привязан к конкретным устройствам. Например, общий SCSI-драйвер обслуживает все адаптеры, используя специфическое для каждого из них аппаратно-зависимые модули нижнего уровня. Для написания нового драйвера обычно необходимо лишь внести небольшие изменения в модуль нижнего уровня, причем драйверы пишутся не на Ассемблере, а на Си. Драйверы устройств могут динамически загружаться в процессе работы системы.
Драйверы реализованы как потоковые. Это позволяет направить информацию с выхода одного драйвера на вход другого, связав их в цепочки и наладив совместную последовательную работу. Можно организовать программные мультиплексоры, направив информацию с выхода одного драйвера на вход нескольких драйверов другого уровня. Потоковые драйверы широко применяются для организации работы с сетями и терминалами.
В Windows 2000 также используется концепция виртуальных драйверов, обслуживающих доступ ко всем ресурсам как физическим устройствам (дисплей, терминалами и т.д.), так и системам управления памятью и процессорами. Этот подход делает доступ к ресурсам единообразным, упрощает разработку и сопровождение программных средств.
Файловая система.
Файловая система построена по принципу драйвера высокого уровня, что позволяет в рамках одной ОС поддерживать разные способы организации файлов на внешних устройствах, например CD-ROM; DOS совместную FAT таблицу; совместимую с OS\2 высокоскоростную файловую систему HPFS и собственную файловую систему NTFS.
Тома на дисках.
Как в DOS, дисковые накопители разбиваются на логические диски, которые объединяются в тома, превосходящие по емкости любой накопитель системы. Это позволяет использовать вместо дорогого быстродействующего диска массив дисков меньше емкости, получая существенный выигрыш в быстродействии, надежности и цене. Для этого используется технология RAID (массив дисков с информационной избыточностью), предусматривающая пять способов создания томов.
Защищенные подсистемы.
Важным компонентом Windows 2000 является защищенные пользовательские подсистемы, выполняемые в непривилегированном пользовательском режиме. В виде таких подсистем реализованы интерфейсы прикладных программ, причем одновременно поддерживается три типа интерфейсов: собственный 32 разрядный, совместимый с 16 разрядным интерфейсом DOS и Win 3.х; интерфейс совместимый с OS\2, POSIX интерфейс UNIX программ.
Благодаря наличию нескольких интерфейсов в Windows 2000 можно запускать программы, разработанные для разных ОС. Интерфейс в стандарте POSIX обеспечивает на уровне исходных текстов совместимость со многими приложениями, работающими под UNIX.
Организация памяти.
Модель памяти Windows 2000 представляет собой 32 разрядную линейную адресацию (без сегментов), разделение и защиту как пользовательских, так и системных процессов. Применение страничной подкачки файлов позволяет загрузить на исполнение файл, размер которого превосходит размер ОЗУ ПК. Процессы, находящиеся в ОЗУ, но не выполняющиеся в данный момент, могут быть перемещены на диск в область подкачки, в качестве которой используется специальный файл pegefile.sys. причем в системе предусматривается возможность размещения этого файла на нескольких дисках.
Параллельные вычисления.
Windows 2000 может эффективно работать на ЭВМ, имеющих до 16 процессоров. Однако известно, что подключение дополнительных процессов сверх определенного числа не повышает производительности, поскольку временные издержки самой ОС начинают превышать время, затрачиваемое на исполнение пользовательских программ.
Защита информации.
Встроенные в ядро Windows 2000 «монитор защиты» обеспечивает единый механизм проверки прав доступа к любым ресурсам системы. Тем самым исключается возможность несанкционированного доступа к информации и обеспечивается высокая степень ее защиты.
Windows 2000 не только контролирует доступ к любым ресурсам, но и протоколирует: в различных журналах все действия администратора и пользователей, направленные на нарушение защиты. Система удовлетворяет требованиям американского стандарта безопасности С2, рекомендованного для банковских и финансовых применений.
Группы пользователей.
Как и в большинстве многопользовательских систем, в Win NT имеется база данных учетных записей, содержащая имена пользователей и рабочих групп, а также пароли. База ведется специальным администратором. Перед началом работы системе необходимо сообщить свое имя и пароль, которые регистрируется в базе, в противном случае доступ в систему не предоставляется.
В Windows 2000 реализована концепция разделения программ на персональные и общего пользования. Персональная программа появляется на экране только у тех пользователей, которые имеют к ней доступ, для остальных она остается невидимой.
Сетевые средства.
Составной частью Windows NT Server является Microsoft LAN Manager, который позволяет с помощью разнообразных сетевых транспортных протоколов связываться с приложениями, работающих в средах DOS, Windows, OS\2, Unix.
Центральные службы ОС, используемые для планирования потоков, мультипроцессорной синхронизации и других низкоуровневых задач, реализованы в микроядре. Управление виртуальной памятью и процессами, а также другие службы ОС реализованы в отдельном слое, расположенном поверх микроядра, а само микроядро изолировано от физических характеристик таймеров контроллеров прерываний и прочих аппаратных устройств, службами уровня аппаратной абстракции (НАL). Вместе эти модули образуют исполнительный механизм Windows NT Executive.
В модуле Win 32K Executive располагаются три элемента: диспетчер окон, интерфейс графических устройств (GDI) и драйверы графических устройств, передающие результаты работы GDI на экран и на принтер.
Это обеспечивает повышение производительности при работе с графикой, т.к. GDI является частью ядра, и прикладные программы непосредственно обращаются к функциям GDI, избегая сопряженных с большими накладными расходами переключений контекста, а видео драйверы могут быстрее получать доступ к аппаратным средствам, а службы Win 32 API обращаться к службам в модуле Windows NT Executive, не проходя через границы колец.
Обращение к служебным функциям GDI и диспетчера окон из прикладной программы, кольца 3, по-прежнему приводит к переходу через границы колец. В этом случае особенность Windows 2000 заключается в том, что если несколько функций вызываются последовательно одна за другой, то они организуются в очередь в пользовательском режиме и затем направляются в ядро единым потоком, что сводит к минимуму число переходов через границу кольца. Такой подход позволяет выводить изображения на экран на 15-20% быстрее.
Системные файлы и папки Windows 2000.
Системная папка WINNT.
В данной папке хранятся все системные командные файлы и динамические библиотеки операционной системы. Файлы структурированы по каталогам. В системном каталоге …\WINNT\ … находятся некоторые их запускаемых программных модулей, файлы инициализации и конфигурирования и протоколов загрузки компонентов системы. Отличительной особенностью Windows 2000 является то, что большинство настроек параметров системы записаны в ini-, log- или txt-файлах. Файлы этих типов записаны в формате ASCII.
Основным каталогом, хранящим файлы настроек служб ОС Windows 2000 и ее реестр, является каталог …\System32\ … . В этом каталоге хранятся файлы запуска системы: autoexec.nt и config.nt, которые «заменяют» подобные файлы DOS. Здесь же находится реестр операционной системы.
В системном каталоге Windows 2000 также размещается папка \Temp\, в которую помещаются все временные файлы, необходимые для работы некоторых программ. Периодически эту папку необходимо открывать и удалять все ее содержимое, т.к. не все программы корректно закрывают свои временно открываемые файлы.
Системная папка PROGRAM FILES.
Эта папка появляется при установке операционной системы, и в ней размещаются все установленные и устанавливаемые на компьютере программы.
Системная папка DOCUMENTS AND SETTINGS.
В этой папке хранятся файлы настроек каждого пользователя, зарегистрированного в системе. Причем некоторые из настроек действительны для всех пользователей системы (каталог \All Users\), а некоторые относятся только к конкретному пользователю. Папки с такими настройками, как правило, называются по имени пользователя. В них (по абсолютно одинаковой схеме и структуре) записываются настройки Главного меню, папки Избранное, папки Мои документы, Рабочего стола и Шаблоны пользователя. Из наиболее интересных папок, находящихся в DOCUMENTS AND SETTINGS, является папка Local Settings, т.к. в ней размещаются папки хранящие временные файлы, открываемые пользователем (папка Temp) и все посещаемые Web-страницы Internet, открываемые с помощью программы Internet Explorer. Содержимое этих папок также необходимо периодически удалять. Хотя в некоторых случаях оно оказывается весьма полезным.
К системным файлам и файлам настроек системы относятся файлы со следующими расширениями:
*.ini файлы инициализации;
*.log файлы журналов и протоколов запуска и загрузки программ;
*.txt, *.htm файлы настроек в ASCII коде или в формате языка HTML, соответственно;
*.dll динамические библиотеки;
*.drv драйверы устройств;
*.lnk файлы ярлыков;
*.inf информационные файлы, в которых записываются сведения, необходимые для нормальной работы системы.
В корневом каталоге диска С:\ размещаются файлы:
boot.ini файл инициализации, используемый при загрузке системы;
bootfont.bin файл перечисления используемых системных шрифтов;
cldma.log файл протокола установки ОС;
ntdetect.com командный файл загрузчика операционной системы;
ntldr загрузчик ОС;
pagefile.sys файл подкачки.