ОС для рабочих групп и ОС для сетей масштаба предприятия 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

ОС для рабочих групп и ОС для сетей масштаба предприятия



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

  • Сети отделов - используются небольшой группой сотрудников, решающих общие задачи. Главной целью сети отдела является разделение локальных ресурсов, таких как приложения, данные, лазерные принтеры и модемы. Сети отделов обычно не разделяются на подсети.
  • Сети кампусов - соединяют несколько сетей отделов внутри отдельного здания или внутри одной территории предприятия. Эти сети являются все еще локальными сетями, хотя и могут покрывать территорию в несколько квадратных километров. Сервисы такой сети включают взаимодействие между сетями отделов, доступ к базам данных предприятия, доступ к факс-серверам, высокоскоростным модемам и высокоскоростным принтерам.
  • Сети предприятия (корпоративные сети) - объединяют все компьютеры всех территорий отдельного предприятия. Они могут покрывать город, регион или даже континент. В таких сетях пользователям предоставляется доступ к информации и приложениям, находящимся в других рабочих группах, других отделах, подразделениях и штаб-квартирах корпорации.

Главной задачей операционной системы, используемой в сети масштаба отдела, является организация разделения ресурсов, таких как приложения, данные, лазерные принтеры и, возможно, низкоскоростные модемы. Обычно сети отделов имеют один или два файловых сервера и не более чем 30 пользователей. Задачи управления на уровне отдела относительно просты. В задачи администратора входит добавление новых пользователей, устранение простых отказов, инсталляция новых узлов и установка новых версий программного обеспечения. Операционные системы сетей отделов хорошо отработаны и разнообразны, также, как и сами сети отделов, уже давно применяющиеся и достаточно отлаженные. Такая сеть обычно использует одну или максимум две сетевые ОС. Чаще всего это сеть с выделенным сервером NetWare 3.x или Windows NT, или же одноранговая сеть, например сеть Windows for Workgroups.

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

Итак, следующим шагом в эволюции сетей является объединение локальных сетей нескольких отделов в единую сеть здания или группы зданий. Такие сети называют сетями кампусов. Сети кампусов могут простираться на несколько километров, но при этом глобальные соединения не требуются.

Операционная система, работающая в сети кампуса, должна обеспечивать для сотрудников одних отделов доступ к некоторым файлам и ресурсам сетей других отделов. Услуги, предоставляемые ОС сетей кампусов, не ограничиваются простым разделением файлов и принтеров, а часто предоставляют доступ и к серверам других типов, например, к факс-серверам и к серверам высокоскоростных модемов. Важным сервисом, предоставляемым операционными системами данного класса, является доступ к корпоративным базам данных, независимо от того, располагаются ли они на серверах баз данных или на миникомпьютерах.

Именно на уровне сети кампуса начинаются проблемы интеграции. В общем случае, отделы уже выбрали для себя типы компьютеров, сетевого оборудования и сетевых операционных систем. Например, инженерный отдел может использовать операционную систему UNIX и сетевое оборудование Ethernet, отдел продаж может использовать операционные среды DOS/Novell и оборудование Token Ring. Очень часто сеть кампуса соединяет разнородные компьютерные системы, в то время как сети отделов используют однотипные компьютеры.

Корпоративная сеть соединяет сети всех подразделений предприятия, в общем случае находящихся на значительных расстояниях. Корпоративные сети используют глобальные связи (WAN links) для соединения локальных сетей или отдельных компьютеров.

Пользователям корпоративных сетей требуются все те приложения и услуги, которые имеются в сетях отделов и кампусов, плюс некоторые дополнительные приложения и услуги, например, доступ к приложениям мейнфреймов и миникомпьютеров и к глобальным связям. Когда ОС разрабатывается для локальной сети или рабочей группы, то ее главной обязанностью является разделение файлов и других сетевых ресурсов (обычно принтеров) между локально подключенными пользователями. Такой подход не применим для уровня предприятия. Наряду с базовыми сервисами, связанными с разделением файлов и принтеров, сетевая ОС, которая разрабатывается для корпораций, должна поддерживать более широкий набор сервисов, в который обычно входят почтовая служба, средства коллективной работы, поддержка удаленных пользователей, факс-сервис, обработка голосовых сообщений, организация видеоконференций и др.

Кроме того, многие существующие методы и подходы к решению традиционных задач сетей меньших масштабов для корпоративной сети оказались непригодными. На первый план вышли такие задачи и проблемы, которые в сетях рабочих групп, отделов и даже кампусов либо имели второстепенное значение, либо вообще не проявлялись. Например, простейшая для небольшой сети задача ведения учетной информации о пользователях выросла в сложную проблему для сети масштаба предприятия. А использование глобальных связей требует от корпоративных ОС поддержки протоколов, хорошо работающих на низкоскоростных линиях, и отказа от некоторых традиционно используемых протоколов (например, тех, которые активно используют широковещательные сообщения). Особое значение приобрели задачи преодоления гетерогенности - в сети появились многочисленные шлюзы, обеспечивающие согласованную работу различных ОС и сетевых системных приложений.

К признакам корпоративных ОС могут быть отнесены также следующие особенности.

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

Сервер приложений должен базироваться на мощной аппаратной платформе (мультипроцессорные системы, часто на базе RISC-процессоров, специализированные кластерные архитектуры). ОС сервера приложений должна обеспечивать высокую производительность вычислений, а значит поддерживать многонитевую обработку, вытесняющую многозадачность, мультипроцессирование, виртуальную память и наиболее популярные прикладные среды (UNIX, Windows, MS-DOS, OS/2). В этом отношении сетевую ОС NetWare трудно отнести к корпоративным продуктам, так как в ней отсутствуют почти все требования, предъявляемые к серверу приложений. В то же время хорошая поддержка универсальных приложений в Windows NT собственно и позволяет ей претендовать на место в мире корпоративных продуктов.

Справочная служба. Корпоративная ОС должна обладать способностью хранить информацию обо всех пользователях и ресурсах таким образом, чтобы обеспечивалось управление ею из одной центральной точки. Подобно большой организации, корпоративная сеть нуждается в централизованном хранении как можно более полной справочной информации о самой себе (начиная с данных о пользователях, серверах, рабочих станциях и кончая данными о кабельной системе). Естественно организовать эту информацию в виде базы данных. Данные из этой базы могут быть востребованы многими сетевыми системными приложениями, в первую очередь системами управления и администрирования. Кроме этого, такая база полезна при организации электронной почты, систем коллективной работы, службы безопасности, службы инвентаризации программного и аппаратного обеспечения сети, да и для практически любого крупного бизнес-приложения.

База данных, хранящая справочную информацию, предоставляет все то же многообразие возможностей и порождает все то же множество проблем, что и любая другая крупная база данных. Она позволяет осуществлять различные операции поиска, сортировки, модификации и т.п., что очень сильно облегчает жизнь как администраторам, так и пользователям. Но за эти удобства приходится расплачиваться решением проблем распределенности, репликации и синхронизации.

В идеале сетевая справочная информация должна быть реализована в виде единой базы данных, а не представлять собой набор баз данных, специализирующихся на хранении информации того или иного вида, как это часто бывает в реальных операционных системах. Например, в Windows NT имеется по крайней мере пять различных типов справочных баз данных. Главный справочник домена (NT Domain Directory Service) хранит информацию о пользователях, которая используется при организации их логического входа в сеть. Данные о тех же пользователях могут содержаться и в другом справочнике, используемом электронной почтой Microsoft Mail. Еще три базы данных поддерживают разрешение низкоуровневых адресов: WINS - устанавливает соответствие Netbios-имен IP-адресам, справочник DNS - сервер имен домена - оказывается полезным при подключении NT-сети к Internet, и наконец, справочник протокола DHCP используется для автоматического назначения IP-адресов компьютерам сети. Ближе к идеалу находятся справочные службы, поставляемые фирмой Banyan (продукт Streettalk III) и фирмой Novell (NetWare Directory Services), предлагающие единый справочник для всех сетевых приложений. Наличие единой справочной службы для сетевой операционной системы - один из важнейших признаков ее корпоративности.

Безопасность. Особую важность для ОС корпоративной сети приобретают вопросы безопасности данных. С одной стороны, в крупномасштабной сети объективно существует больше возможностей для несанкционированного доступа - из-за децентрализации данных и большой распределенности "законных" точек доступа, из-за большого числа пользователей, благонадежность которых трудно установить, а также из-за большого числа возможных точек несанкционированного подключения к сети. С другой стороны, корпоративные бизнес-приложения работают с данными, которые имеют жизненно важное значение для успешной работы корпорации в целом. И для защиты таких данных в корпоративных сетях наряду с различными аппаратными средствами используется весь спектр средств защиты, предоставляемый операционной системой: избирательные или мандатные права доступа, сложные процедуры аутентификации пользователей, программная шифрация. http://citforum.ru/operating_systems/sos/glava_4.shtml

Т е м а 1.5 Функции, выполняемые операционной системой

Супервизор задач и его функции. Мультипрограммный режим работы.

 

Основные функции операционных систем:

- Прием от пользователя (или от оператора системы) заданий, или команд, сфор­мулированных на соответствующем языке, и их обработка. Задания могут пе­редаваться в виде текстовых директив (команд) оператора или в форме указа­ний, выполняемых с помощью манипулятора (например, с помощью мыши). Эти команды связаны, прежде всего, с запуском (приостановкой, остановкой) программ, с операциями над файлами (получить перечень файлов в текущем каталоге, создать, переименовать, скопировать, переместить тот или иной файл и др.), хотя имеются и иные команды.

- Загрузка в оперативную память подлежащих исполнению программ.

- Распределение памяти, а в большинстве современных систем и организация виртуальной памяти.

- Запуск программы (передача ей управления, в результате чего процессор ис­полняет программу).

- Идентификация всех программ и данных.

- Прием и исполнение различных запросов от выполняющихся приложений. Операционная система умеет выполнять очень большое количество системных функций (сервисов), которые могут быть запрошены из выполняющейся про­граммы. Обращение к этим сервисам осуществляется по соответствующим пра­вилам, которые и определяют интерфейс прикладного программирования (Ap­plication Program Interface, API) этой операционной системы.

- Обслуживание всех операций ввода-вывода.

- Обеспечение работы систем управлений файлами (СУФ) и/или систем управления базами данных (СУБД), что позволяет резко увеличить эффективность всего программного обеспечения.

- Обеспечение режима мультипрограммирования, то есть организация параллель­ного выполнения двух или более программ на одном процессоре, создающая видимость их одновременного исполнения.

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

- Организация механизмов обмена сообщениями и данными между выполняю­щимися программами.

- Для сетевых операционных систем характерной является функция обеспече­ния взаимодействия связанных между собой компьютеров.

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

- Аутентификация и авторизация пользователей (для большинства диалоговых операционных систем). Под аутентификацией понимается процедура проверки имени пользователя и его пароля на соответствие тем значениям, которые хра­нятся в его учетной записи. Очевидно, что если входное имя (login) пользовате­ля и его пароль совпадают, то, скорее всего, это и будет тот самый пользователь. Термин авторизация означает, что в соответствии с учетной записью пользова­теля, который прошел аутентификацию, ему (и всем запросам, которые будут идти к операционной системе от его имени) назначаются определенные права (привилегии), определяющие, что он может, а что не может делать на компьютере.

- Удовлетворение жестким ограничениям на время ответа в режиме реального времени (характерно для операционных систем реального времени).

- Обеспечение работы систем программирования, с помощью которых пользова­тели готовят свои программы.

- Предоставление услуг на случай частичного сбоя системы.

- Операционная система изолирует аппаратное обеспечение компьютера от приклад­ных программ пользователей. И пользователь, и его программы взаимодействуют с компьютером через интерфейсы операционной системы.

ОС - это комплекс взаимосвязанных программ, предназначенный для повышения эффективности аппаратуры компьютера путем рационального управления его ресурсами ему расширенной виртуальной машины.

К числу основных ресурсов, управление которыми осуществляет ОС, относятся процессоры, основная память, таймеры, наборы данных, диски, накопители на магнитных лентах, принтеры, сетевые устройства и некоторые другие. Ресурсы распределяются между процессами. Для решения задач управления ресурсами разные ОС используют различные алгоритмы, особенности которых в конечном счете и определяют облик ОС.

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

Прикладному программисту возможности ОС доступны в виде функций, составляющих интерфейс прикладного программирования (API).

Супервизор обеспечивает выполнение как одной задачи, так и нескольких одновременно. Управление задачами основывается на формальном представлении их в системе. Каждой задаче присваивается приоритет и определяется ее состояние. Если задача ожидает завершения какого-либо события, она находится в состоянии ожидания. Задача может ожидать, например, окончания операции ввода-вывода, загрузки подпрограммы, выполнения какой-либо функции Супервизора. Задача, имеющая все ресурсы, кроме времени центрального процессора, находится в состоянии готовности. http://www.ngpedia.ru/id493711p1.html

Надо отметить, что самые первые программисты работали непосредственно за пультом ЭВМ (т.е. в так называемом диалоговом режиме). Затем из экономических соображений это стало нерациональным, так как программисты слишком долго искали и исправляли ошибки в своих программах или анализировали результаты расчётов, и в это время ЭВМ простаивала. Тогда и появился новый, пакетный режим работы, и программистов перестали пускать в машинный зал за пульт ЭВМ. Это название подразумевает, что подлежащие счёту программы собираются в некоторый "пакет" (для ЭВМ первых поколений это был деревянный или металлический ящик, наполненный программами, каждая программа была в отдельной пачке перфокарт, скреплённой резинками).

Одним из принципов Фон Неймана, как мы знаем, является принцип последовательного выполнения команд программы. Более того, архитектура машин Фон Неймана предполагает, что последовательно выполняются не только команды текущей программы, но также и сами эти программы.

Другими словами, пока одна программа полностью не заканчивается, следующая программа не загружается в память и не начинает выполняться. Именно так и работали первые ЭВМ (вспомним, как работала наша учебная трёхадресная ЭВМ УМ-3).

Сейчас мы познакомимся с новым и весьма важным понятием – мультипрограммным (иногда говорят, многопрограммным) режимом работы ЭВМ. Мультипрограммный режим работы означает, что в оперативной памяти компьютера одновременно находятся несколько независимых друг от друга и готовых к счёту программ пользователей, времена выполнения которых перекрываются. (Эти программы, вообще говоря, могут присутствовать в оперативной памяти не целиком. Во-первых, они могут использовать знакомую нам схему динамической загрузки, и, во-вторых, работать на так называемой виртуальной памяти, при этом некоторые части программы могут временно отсутствовать в оперативной памяти, находясь в так называемом файле подкачки (swap file) на внешней памяти.) Заметим также, что при мультипрограммном режиме работы в памяти ЭВМ одновременно могут находиться не только программы разных пользователей, но и несколько независимых программ одного пользователя. Независимость программ означает, что они автоматически не обмениваются между собой данными в процессе счёта.

Как Вы уже наверно знаете, компьютеры принято делить на поколения. Мультипрограммный режим работы появился только на ЭВМ, начиная с 3-го поколения, на первых компьютерах его не было. Сейчас нам сначала предстоит разобраться, а для чего вообще может потребоваться, чтобы в памяти одновременно находилось несколько программ пользователей. Этот вопрос вполне естественный, так как раньше у большинства компьютеров был только один центральный процессор, так что одновременно могли выполняться команды только одной программы, а остальные программы в это время будут просто занимать место в оперативной памяти.

Частично мы уже обосновали необходимость присутствия в оперативной памяти нескольких программ, когда изучали систему прерываний. Как правило, при возникновении прерывания центральный процессор производит автоматическое переключение на некоторую другую программу, которая тоже, конечно, должна при этом находиться в оперативной памяти. Здесь, однако, можно возразить, что все программы, на которые производится автоматическое переключение при прерывании, являются системными программами (входят в операционную систему) (На ЭВМ первых поколений "обычным" пользователям разрешалось писать свои собственные процедуры обработчики прерываний, однако в операционных системах современных ЭВМ это, как правило, запрещено. Причина такого запрета будет понятна из нашего дальнейшего изложения мультипрограммного режима работы ЭВМ.), а при определениимультипрограммного режима работы мы особо подчёркивали, что в оперативной памяти могут одновременно находиться несколько разных программ обычных пользователей.

Следует указать две основные причины, по которым может понадобиться мультипрограммный режим работы. Во-первых, может потребоваться одновременно выполнять несколько программ. Например, это могут быть программы, которые в диалоговом режиме работают с разными пользователями (программисты Вася и Петя одновременно с разных терминалов, подключённых к одной ЭВМ, отлаживают свои программы, см. рис. 13.1).

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

 

Рис. 13.1. Одновременное нахождение в памяти

нескольких программ пользователей.

 

 

На рис. 13.2 показана временная диаграмма переключения времени работы центрального процессора ЭВМ между находящимися в памяти программами.

 

  

Рис. 13.2. Диаграмма загрузки центрального процессора ЭВМ

 

Если отвлечься от несколько шутливого примера с Васей и Петей, то можно заметить, что потребность в таком псевдо-одновременном счёте нескольких программ на компьютере с одним центральным процессором весьма распространена. Пусть, например, наш компьютер предназначен для управления несколькими различными химическими реакторами на каком-нибудь заводе, или обслуживает запросы сразу многих абонентов в библиотеке и т.д. Заметим, что даже если центральных процессоров на компьютере несколько (наиболее широко сейчас распространены так называемые многоядерные процессоры), но одновременно находящихся в памяти задач может быть много больше, чем процессоров, поэтому этот вопрос по-прежнему актуален.

Другая причина широкого распространения мультипрограммного режима заключается в следующем. Наряду с главной частью – центральным процессором и оперативной памятью – в компьютере существует и большое количество так называемых периферийных (внешних) устройств, это диски, клавиатура, мышь, печатающие устройства, сетевые карты для работы с линиями связи и т.д. (см. рис. 13.3). Все эти периферийные устройства предназначены для связи центральной части машины с"внешним миром", и работают значительно более медленно, чем центральный процессор и оперативная память. Имеется в виду, что все они значительно медленнее манипулируют данными. Например, за то время, за которое лазерный принтер напечатает на бумаге всего один символ, оперативная память способна выдать центральному процессору порядка нескольких миллионов байт, а сам центральный процессор способен за это время выполнить около одного миллиона команд.

 

Рис. 13.3. Центральная и периферийная части компьютера.

 

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

 

Read(MyFile,X); Y:=X+1

 

Очевидно, что оператор присваивания Y:=X+1 не сможет начать выполняться, пока из файла не будет прочитано значение переменной X. Вот здесь нам и пригодится способность программыдиспетчера переключаться на выполнение других программ пользователей, тоже расположенных в оперативной памяти. Теперь, пока одна программа пользователя выполняет свои команды на центральном процессоре, другая может выводить свои данные на принтер, третья – читать массив с диска в оперативную память, четвёртая – ждать ввода символа с клавиатуры и т.д. Правда, для того, чтобы обеспечить такую возможность, мало наличия на компьютере одной системы прерываний. Прежде всего, необходимо научить периферийные устройства компьютера работать параллельно и относительно независимо от центрального процессора. Действительно, вспомните, что в машине Фон Неймана всеми операциями с внешними устройствами управлял именно центральный процессор по командам ввода/вывода, посылая им особые управляющие сигналы, которые мы изображали на схеме одинарными стрелками, и, естественно, занимаясь этой работой, у центрального процессора уже не было возможности выполнять ещё и другие команды программы.

Итак, мы обосновали полезность режима мультипрограммирования. Как уже говорилось, на первых ЭВМ этого режима работы не было. Сейчас мы сформулируем необходимые требования, которые предъявляются к аппаратуре компьютера, чтобы на этом компьютере было возможно реализовать мультипрограммный режим работы.

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

 Требования к аппаратуре для обеспечения возможности работы в мультипрограммном режиме. Итак, сформулируем необходимые требования к аппаратуре ЭВМ для обеспечения возможности мультипрограммной работы. Особо подчеркнём, что это требования именно к аппаратуре ЭВМ, а не к программному обеспечению.

Система прерываний. Система прерываний необходима как для режима разделения времени, так и для обеспечения параллельной работы центрального процессора и периферийных устройств, так как она обеспечивает саму возможность реакции на события и автоматического переключения с одной программы на другую.

Механизм защиты памяти. Этот механизм обеспечивает безопасность одновременного нахождения в оперативной памяти нескольких независимых программ. Защита памяти гарантирует, что одна программа не сможет случайно или же предумышленно обратиться в память другой программы (по записи или даже по чтению данных). Очевидно, что без такого механизма мультипрограммный режим просто невозможен. Даже если не принимать во внимание "вредных" программистов, которые специально захотят испортить или незаконно прочитать данные других программ, всегда существуют большая вероятность таких действий из-за семантических ошибок в программах даже у "добропорядочных" программистов (например, при выходе индекса за границу массива). Незаконное обращение к чужым ресурсам (в частности, к чужой оперативной памяти) "по научному" называется несанкционированным доступом. Механизм защиты оперативной памяти на современных ЭВМ устроен весьма сложно, и часто связан с механизмом так называемой виртуальной памяти, который в полном объёме изучается в курсе, посвящённом операционным системам. Сейчас мы рассмотрим одну из простейших реализаций механизма защиты памяти, так эта защита была сделана на некоторых первых ЭВМ 3-го поколения, способных работать в мультипрограммном режиме.

В центральный процессор добавляются два новых регистра защиты памяти, обозначим их Анач и Акон. На каждый из этих регистров можно загрузить любой адрес оперативной памяти (или адрес начала и конца любого сегмента при сегментной организации памяти). Предположим теперь, что после загрузки некоторой программы в оперативную память она занимает сплошной участок памяти с адресами от 20000010 до 50000010 включительно. Тогда загрузчик, перед передачей управления на первую команду программы (у нас это часто была команда с меткой Start), присваивал регистрам защиты памяти соответственно значения

Анач:=20000010 и Акон:=50000010

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

А нач ≤ А физ ≤ А кон

Если условие истинно, т.е. программа обращается в свою область памяти, выполняется требуемое обращение к памяти по записи или чтению данных. В противном случае доступ в оперативную память не производится, и центральный процессор вырабатывает сигнал прерывания по событию "попытка нарушения защиты памяти".

Описанный механизм защиты памяти очень легко реализовать, однако он обладает существенным недостатком: каждая программа может занимать только один сплошной участок в оперативной памяти. В то же время, как мы знаем, архитектура нашего компьютера допускает, чтобы каждый сегмент программы мог быть размещён на любом свободном месте оперативной памяти. В современных ЭВМ это ограничение есущественно, так как на них реализован уже упоминавшейся механизм виртуальной памяти, который позволяет выделять для каждой программы любые участки адресов памяти, независимо от того, заняты ли эти, как говорят, логические адреса другими программами или нет.

С другой стороны, если реализован механизм виртуальной памяти, то на его базе легко сделать и другой, более совершенный механизм защиты памяти.

Аппарат привилегированных команд. Сейчас мы рассмотрим ещё одно необходимое свойство аппаратуры, без которого невозможно реализовать мультипрограммный режим работы ЭВМ. Это свойство иногда называется аппаратом привилегированных команд, а иногда – защищённым режимом работы центрального процессора, и заключается оно в следующем: все команды, которые может выполнять центральный процессор, разбиваются на два класса. Команды из одного класса называются обычными командами или командами пользователя, а команды из другого класса – привилегированными или запрещёнными командами.

Далее, в центральном процессоре располагается специальный одноразрядный регистр режима работы, который может, естественно, принимать только два значения: 0 и 1. Значение этого регистра и определяют тот режим, в котором в данный момент работает центральный процессор: обычный режим (или режим пользователя) или привилегированный режим.(В архитектуре нашего компьютера регистр режима работы содержит два разряда и может принимать значения 0, 1, 2 и 3. Практически всегда, однако, для указанных выше целей реализации защищённого режима работы используются только два из этих четырёх значений (0 и 3)).

В привилегированном режиме центральному процессору разрешается выполнять все команды языка машины, а в режиме пользователя – только обычные (не привилегированные) команды. При попытке выполнить привилегированную команду в пользовательском режиме центральным процессором вырабатывается сигнал преры-                                                   вания, а сама команда, естественно, не выполняется. Из этого правила выполнения команд легко понять и другое название для привилегированных команд – запрещённые команды, так как их выполнение запрещено в режиме пользователя. Объясним теперь, почему без аппарата привилегированных команд невозможно реализовать мультипрограммный режим работы ЭВМ.

Легко понять, что, например, команды, которые для рассмотренного выше механизма защиты памяти заносят на регистры защиты Анач и Акон новые значения, должны быть привилегированными.

Действительно, если бы это было не так, то любая программа могла бы занести на эти регистры адреса начала и конца всей оперативной памяти, после чего получила бы возможность записывать данные в любые области памяти. Ясно, что при этом и описанный выше механизм защиты памяти становится совершенно бесполезным.

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

Итак, в мультипрограммном режиме программе пользователя запрещается выполнять многие "опасные" команды, в частности команды, работающие с внешними устройствами (дисками, принтерами, линиями связи и т.д.). Как же тогда быть, если программе необходимо, например, считать данные из своего файла на диске в оперативную память? Выход один – программа пользователя должна обратиться к определённым служебным процедурам, с просьбой выполнить для неё ту работу, кото-рую сама программа пользователя сделать не в состоянии. Эти служебные процедуры, естественно, должны работать в привилегированном режиме. Перед выполнением запроса из программы пользователя, такая служебная процедура проверяет, имеет ли эта программа пользователя право на запрашиваемое действие, например, что эта программа имеет необходимые полномочия на чтение из указанного файла.

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

Таймер. Встроенные в компьютер электронные часы (таймер) появились ещё до возникновения мультипрограммного режима



Поделиться:


Последнее изменение этой страницы: 2021-12-15; просмотров: 59; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.22.51.241 (0.071 с.)