русс | укр

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

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

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

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


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

Структура операционной системы | Структура ОС

С добавлением в операционные системы все новых функций, а также с ростом возможностей управляемого операционными системами аппаратного обеспечения и его разнообразия возрастает степень их сложности. Операционная система CTSS, введенная в эксплуатацию в Массачусетском технологическом институте в 1963 году, занимала в памяти около 32000 36-битовых слов. Операционная система OS/360, выпущенная фирмой IBM через год, содержала более миллиона машинных команд. Система Multics, совместная разработка которой была завершена специалистами Массачусетского технологического института и компанией Bell Laboratories к 1975 году, разрослась до 20 миллионов команд. Ради справедливости отметим, что впоследствии на меньших машинах стали появляться операционные системы и попроще, но и они неуклонно усложнялись с развитием аппаратного обеспечения и ростом требований со стороны пользователей. Так, современная система UNIX по своей сложности намного превосходит свой почти игрушечный первоначальный вариант, разработанный несколькими талантливыми программистами в начале 70-х годов. То же самое произошло с простой системой MS-DOS, со временем переросшей в сложные и мощные операционные системы OS/2 и Windows 2000. Так, операционная система Windows NT содержит около 16 миллионов строк кода, а в Windows 2000 этот показатель увеличен более чем в два раза.

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

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

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

В каждой отдельно взятой операционной системе перечисленные принципы применяются по-разному. Для получения общего представления об операционных системах на данном этапе изложения представим пример обобщенной модели иерархической операционной системы, описанной в [BROW84] и [DENN84]. Она, несомненно, полезна для понимания сути дела, хотя и не соответствует ни одной реальной операционной системе. Сама модель приведена в табл. 2.4 и состоит из следующих уровней.

Уровень 1. В него входят электронные схемы; объектами данного уровня являются регистры, ячейки памяти и логические элементы. Над этими объектами выполняются различные действия, такие, как очистка содержимого регистра или считывание ячейки памяти.

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

Уровень 3. Содержит концепцию процедуры (подпрограммы), а также операции вызова и возврата.

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

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

Уровень 5. На этом уровне вводится понятие процесса, под которым подразумевается работающая программа. В число фундаментальных требований к операционной системе, способной поддерживать одновременную работу не скольких процессов, входят способность приостанавливать процессы и возобновлять их выполнение. Для этого необходимо сохранять содержимое регистров аппаратного обеспечения, чтобы можно было переключаться с одного процесса на другой. Кроме того, если процессы должны взаимодействовать между собой, необходим механизм их синхронизации. Одной из важнейших  концепций устройства операционных систем является семафор — простейший способ передачи сигналов, который рассмотрен в главе 5, "Параллельные вычисления: взаимоисключения и многозадачность".

Уровень 6. Компоненты этого уровня взаимодействуют со вспомогательными запоминающими устройствами компьютера. На этом уровне происходит позиционирование считывающих головок и физическая передача блоков данных. Для планирования работы и уведомления процесса о завершении запрошенной операции уровень 6 использует компоненты уровня 5.

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

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

Уровень 8. Отвечает за обмен информацией и сообщениями между процессами. На этом уровне происходит более богатый обмен информацией, чем на уровне 5, который обеспечивает работу первичного сигнального механизма для синхронизации процессов. Одним из наиболее мощных инструментов подобного типа является конвейер, представляющий собой логический канал передачи данных между процессами. Конвейер определяется как канал, передающий вывод одного процесса на вход другого; кроме того, он может быть использован и для связи с процессом внешних устройств или файлов. Эта концепция рассматривается в главе 6, "Взаимоблокировка и голодание".

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

Уровень 10. Предоставляет доступ к внешним устройствам с помощью стандартных интерфейсов.

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

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

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

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

Таблица 2.4. Иерархическая модель операционной системы2

Просмотров:

Вернуться в оглавление:Операционные системы




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


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

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

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


 


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

 
 

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