
- •Операционные системы. Часть 2 Учебное пособие
- •Содержание
- •6.1.1. Общие понятия 58
- •4.Память
- •4.1.Управление оперативной памятью
- •4.1.1.Виртуальная и физическая память
- •4.1.2.Схема управления памятью
- •4.1.3.Управление памятью в однозадачной системе
- •4.1.4.Управление памятью в многозадачной системе
- •4.1.5.Подкачка процессов целиком
- •4.1.6.Страничная подкачка
- •4.1.7.Управление виртуальной памятью
- •4.2.Носители памяти для долговременного хранения данных
- •4.2.1.Накопители на жестких дисках
- •4.2.2.Оптические диски
- •4.2.3.Голографические диски
- •4.2.4.Флэш-память
- •4.2.5.Перспективные носители информации
- •Контрольные вопросы
- •5.Разработка надстроек к операционным системам
- •5.1.Общие понятия
- •5.2.Многозадачная оболочка с синхронной заменой контекста
- •5.3.Многозадачная система с принудительной заменой контекста
- •5.4.Дополнения к асинхронной надстройке
- •Контрольные вопросы
- •6.Краткий обзор операционных систем
- •6.1. Операционная система unix
- •6.1.1.Общие понятия
- •6.1.2. Структура unix
- •6.2.Операционные системы реального времени
- •6.2.1.Понятие об операционной системе qnx
- •6.2.2.Введение в ос VX Works
- •6.3.Особенности ос для универсальных многопроцессорных систем
- •6.3.1.Операционная система helios
- •6.4.Операционная система Windows 2000
- •Варианты выпуска Windows 2000
- •Контрольные вопросы
- •Литература
- •Предметный указатель
6.1.2. Структура unix
На Error: Reference source not found Рис. 6 .16 отображена примерная архитектура верхнего уровня операционной системы UNIX. Исполнительным устройством ОС являются технические средства. Связующим звеном между техническими средствами и прикладным уровнем является ядро. Особенностью данной операционной системы является наличие нескольких уровней прикладных программ. При этом программы более высокого уровня могут использовать программы нижних уровней. Состав программ внутреннего уровня является более или менее постоянным, хотя программы, которые входят в его состав, могут варьироваться в разновидностях систем этого типа. Два уровня прикладных программ имеются, практически, во всех версиях UNIX. Следует подчеркнуть, что прикладными эти программы являются относительно ядра. С точки зрения пользовательских программ эти программы являются внутренними программами системы, особым образом связанные с ядром, что позволяет оптимизировать их по скорости исполнения.
Число этих уровней может быть увеличено конкретными разработчиками, что особенно характерно для коммерческих систем. На верхних уровнях, как правило, находятся программы, представляющие собой комплексы, предназначенные для решения практических задач.
Рис. 6.16 Архитектура верхнего уровня UNIX
Так как при таком построении прикладные программы не зависят от аппаратных средств, они легко переносимы в другие системы.
Взаимодействие с техническими средствами. Все прикладные программы могут выполняться в двух режимах:
в режиме задачи (доступны только собственные инструкции и данные; запрещены привилегированные команды);
в режиме ядра (доступно адресное пространство ядра и других процессов; возможно выполнение привилегированных команд).
Операционная система выбирает режим, соответствующий данному этапу выполнения программы, а технические средства осуществляют обработку процесса согласно определенному ОС режиму
Структура ядра. Моноядро, представленное на рис. 6.2, ведёт свою родословную от ранних версий операционных систем UNIX. Его структура, изображенная на рис. 6.2, включает в себя подсистему управления процессами во время их выполнения и подсистему управления файлами (см. разд. 3.4), предоставляя им в порядке очередности время процессора.
Подсистема управления процессами. Эта подсистема управляет прикладными программами.
Исполняемые файлы, запускаемые на выполнение, регистрируются как процессы, под контекст которых выделяется память. После этого ядро планирует работу процессов и управляет их выполнением и взаимодействием (под взаимодействием понимается синхронизация процессов и обмен сообщениями между ними).
Рис. 6.17 Структура ядра UNIX
Подсистема управления файлами. Основное назначение этой подсистемы – управление вводом и выводом информации в многозадачном режиме. Подсистема управления файлами обращается к данным, которые хранятся в файле, используя буферный механизм, управляющий потоком данных между ядром и устройствами внешней памяти. Суть буферного механизма заключается в следующем:
внешние устройства с точки зрения операционной системы представляются последовательными файлами (буферами) и задачей системы является записать или считать из них передаваемую информацию;
при помощи драйверов передаваемая информация обменивается между буфером и периферийным устройством.
Фактически буферный механизм – это машина ввода/вывода (разд. 2.4), адаптированная к многозадачному режиму.
Информация может обрабатываться по одному символу, либо целыми блоками. В последнем случае информация записывается в память и на уровне контроллера периферийного устройства также обрабатывается по одному байту.
Примерный состав внутреннего уровня прикладных программ. На этом уровне располагаются наиболее часто используемые программы (см. рис. 6.1). Как правило, они тесно связаны с ядром.
Стандартный СС компилятор языка СИ располагается во втором слое. Это позволяет вызывать предпроцессор СРР для СИ, ассемблер (AS) и загрузчик LD (компоновщик), расположенные в первом слое, как отдельные программы.
Программа обработки окончания A.out, доступная пользователям, находится на одном уровне с командами.
Shell. Эта команда представляет собой командный интерпретатор. В UNIX подобных операционных системах командные оболочки могут варьироваться. Однако все они являются многозадачными интерпретаторами и предоставляют пользователям столь мощные средства, что многие программисты даже при наличии графической оболочки X Window предпочитают пользоваться командной строкой. Это объясняется тем, что в этом режиме реализована одна из основных идей данной ОС – собирать более сложную программу из простых на низком уровне. Вообще говоря, это и определяет положение Shell на ближайшем к ядру уровне.
NROOF. Команда NROOF предназначена для преобразования байтовой последовательности, поступающей с уровня ядра, в заданный формат.
Команды WHO и WC соответственно позволяют определить пользователей, работающих в системе и их количество. Учитывая число пользователей, которые могут работать на удаленных терминалах в операционной системе UNIX, эти две операции трудно назвать лишними.
Назначение команды DATA очевидно по её названию – она поддерживает работу с датами и временем.
ED и VI – текстовые редакторы. Редактор VI считается лучшим в своем классе. Редактирование проводится в режиме командной строки. Вряд ли такая особенность может произвести впечатление на поколение программистов, воспитанных на интегрированных системах программирования. Однако, в редакторе VI на поддержание указанной возможности тратятся столь незначительные ресурсы, что в современном мире «больших объемов» такая трата оказалась бы просто незамеченной.
Ссылки на литературу по ОС UNIX можно найти по адресу http://linux-ve.chat.ru/books.htm