Единое окно доступа к образовательным ресурсам

Операционные системы. Теория и практика: Учебное пособие

Голосов: 2

В учебном пособии изложены особенности функционирования, назначения и архитектуры современных операционных систем (ОС). В работе отражены: понятие и эволюция операционных систем, архитектурные особенности и классификация ОС по различным критериям, особенности управления процессами и памятью, основы организации файловых систем и некоторые их конкретные примеры, рассмотрены консолидированные серверные системы хранения данных большого объема RAID. Для получения практических навыков работе в операционных системах (на примере систем семейства Unix-Linux) учебное пособие освещает вопросы разработки программных проектов с использованием специализированных утилит, а также по управлению процессами и потоками и средствами их синхронизации. Предназначено для студентов, обучающихся по направлению 230100 Информатика и вычислительная техника.

Приведенный ниже текст получен путем автоматического извлечения из оригинального PDF-документа и предназначен для предварительного просмотра.
Изображения (картинки, формулы, графики) отсутствуют.
        1.2.3   Особенности современного этапа развития ОС
     В 90-е годы практически все ОС, занимающие заметное место на
рынке, стали сетевыми. Сетевые функции сегодня встраиваются в ядро
ОС, являясь ее неотъемлемой частью. Операционные системы получили
средства для работы со всеми основными технологиями локальных
(Ethernet, Fast Ethernet, Gigabit Ethernet, Token Ring, FDDI, ATM) и гло-
бальных (Х.25, frame relay, ISDN, ATM) сетей, а также средства для со-
здания составных сетей (IP, IPX, AppleTalk, RIP, OSPF, NLSP). В ОС ис-
пользуются средства мультиплексирования нескольких стеков протоко-
лов, за счет которого компьютеры могут поддерживать одновременную
сетевую работу с разнородными клиентами и серверами. Появились
специализированные ОС, которые предназначены исключительно для
выполнения коммуникационных задач. Например, сетевая ОС IOS ком-
пании Cisco Systems, работающая в маршрутизаторах, организует в
мультипрограммном режиме выполнение набора программ, каждая из
которых реализует один из коммуникационных протоколов.
     Во второй половине 90-х годов все производители ОС резко усили-
ли поддержку средств работы с Internet (кроме производителей Unix-
систем, в которых эта поддержка всегда была существенной). Кроме са-
мого стека TCP/IP в комплект поставки начали включать утилиты, реа-
лизующие такие популярные сервисы Internet как telnet, ftp, DNS и Web.
Влияние Internet проявилось и в том, что компьютер превратился из чи-
сто вычислительного устройства в средство коммуникаций с развитыми
вычислительными возможностями.
     Особое внимание в течение всего последнего десятилетия уделя-
лось корпоративным сетевым ОС. Очевидно, что и в обозримом буду-
щем они продолжат свое развитие. Корпоративная ОС характеризуется
единой информационной структурой, включающей пользователей си-
стемы с указанием всех доступных им ресурсов, предоставляемых, в
частности, другими серверами корпоративной сети. Такие ОС способны
устойчиво работать в крупных сетях, характерных для больших пред-
приятий, имеющих отделения в десятках городов и, возможно, в разных
странах. Таким сетям органически присуща высокая степень гетероген-
ности программных и аппаратных средств, поэтому корпоративная ОС
должна успешно взаимодействовать с ОС разных типов и работать на
различных аппаратных платформах.
     На современном этапе развития операционных систем на передний
план вышли средства обеспечения безопасности. Это связано с возрос-
шей ценностью информации, обрабатываемой компьютерами, а также с
повышенным уровнем угроз, существующих при передаче данных по
сетям, особенно по публичным, таким как Интернет. Многие операци-
онные системы обладают сегодня развитыми средствами защиты ин-
                                   21


формации, основанными на шифрации данных, аутентификации и авто-
ризации.
    Современным операционным системам присуща многоплатфор-
менностъ, то есть способность работать на совершенно различных типах
компьютеров. Многие операционные системы имеют специальные вер-
сии для поддержки кластерных архитектур, обеспечивающих высокую
производительность и отказоустойчивость. Исключением пока является
ОС NetWare, все версии которой разработаны для платформы Intel, а ре-
ализации функций NetWare в виде оболочки для других ОС, например
NetWare for AIX, успеха на имели.

    1.3 Вопросы для самопроверки
    1. Какие основные компоненты входят в обобщенную структуру
вычислительной системы?
    2. Что такое техническое и программное обеспечение ЭВМ?
    3. В чем отличие системного и прикладного программного обеспе-
чения?
    4. Какие основные цели преследуют разработчики ОС?
    5. Какие определения операционной системы вам известны?
    6. Что понимают под ОС как виртуальной машиной?
    7. Что понимают под ОС как системой управления ресурсами?
    8. Что понимают под ОС как «защитника» пользователей и про-
грамм?
    9. Что понимают под ОС как постоянно функционирующее ядро?
    10. Какие этапы эволюции вам известны? В чем их суть?
    12. В чем преимущества пакетной обработки заданий? Что такое
spooling?
    13. В чем заключается основная идея мультипрограммирования?
    14. Какие изменения потребовало мультипрограммирование в стро-
ении вычислительной системы? В чем их суть?
    15. Какие основные операции при организации мультипрограмми-
рования реализуются ОС?
    16. Что такое операционная система реального времени? Какое ее
предназначение и основные характеристики?
    17. Что такое системы разделения времени?
    18. Какие функции ОС относят к интерфейсным, а какие к внутрен-
ним?




                                 22


           2. АРХИТЕКТУРНЫЕ ОСОБЕННОСТИ ОС.
                    КЛАССИФИКАЦИЯ ОС
    2.1 Архитектурные особенности ОС
    Рассмотрев эволюцию развития вычислительных и операционных
систем, функции ОС «извне», рассмотрим, что представляют собой ОС
«изнутри» и какие подходы существуют к их построению.
      2.1.1    Монолитное ядро
    По сути, ОС – это программа, которую можно реализовать с ис-
пользованием процедур и функций. Если при этом ОС компонуется как
одна программа, работающая в привилегированном режиме1 и исполь-
зующая быстрые переходы с одной процедуры на другую, не требую-
щие переключения из привилегированного режима в пользовательский
режим, и наоборот, то такая архитектура построения ОС называется
монолитным ядром (англ. monolithic kernel).
    Архитектура «монолитное ядро» характеризуется тем, что:
     каждая процедура может вызвать каждую;
     все процедуры работают в привилегированном режиме;
     все части монолитного ядра работают в одном адресном про-
странстве;
     ядро «совпадает» со всей ОС;
     сборка (компиляция) ядра осуществляется отдельно для каждого
компьютера, при установке, добавлении или исключении отдельных
компонент требуется перекомпиляция;
     старейший способ организации ОС.
    Архитектура «монолитное ядро» имеют долгую историю развития
и усовершенствования и, на данный момент, являются наиболее архи-
тектурно зрелыми и пригодными к эксплуатации. Вместе с тем, моно-
литность ядер усложняет их отладку, понимание кода ядра, добавление
новых функций и возможностей, удаление кода, унаследованного от
предыдущих версий. «Разбухание» кода монолитных ядер также повы-
шает требования к объѐму оперативной памяти, требуемому для функ-
ционирования ядра ОС. Это делает монолитные ядерные архитектуры
мало пригодными к эксплуатации в системах, сильно ограниченных по

1
 Аппаратура компьютера должна поддерживать как минимум два режима работы — пользователь-
ский режим (user mode) и привилегированный режим, который также называют режимом ядра (kernel
mode) или режимом супервизора (supervisor mode). Подразумевается, что ОС или некоторые ее части
работают в привилегированном режиме (с доступом к оборудованию и ресурсам), а приложения — в
пользовательском режиме.

                                              23


объѐму ОЗУ, например, встраиваемых системах, производственных
микроконтроллерах и т.д.
    Старые монолитные ядра требовали перекомпиляции при любом
изменении состава оборудования. Следует отметить, что большинство
современных ядер позволяют во время работы динамически подгружать
модули, выполняющие части функции ядра. Такие ядра называются мо-
дульными ядрами. Возможность динамической подгрузки модулей не
нарушает монолитности архитектуры ядра, так как динамически под-
гружаемые модули загружаются в адресное пространство ядра и в даль-
нейшем работают как интегральная часть ядра. Не следует путать мо-
дульность ядра с гибридной или микроядерной архитектурой (см. ниже).
    Примером систем с монолитным ядром служит большинство Unix–
подобных систем, таких как BSD, Linux или NetWare.
    2.1.2   Микроядерная архитектура
     При разработке ОС используют подход, при котором значительную
часть системного кода переносят на уровень пользователя с одновре-
менной минимизацией ядра. Системы, разработанные с использованием
такого подхода, называют реализованными в микроядерной архитектуре
(англ. microkernel architecture). В этом случае построение ядра ОС осу-
ществляется так, что большинство составляющих ОС являются самосто-
ятельными программами, а взаимодействие между ними обеспечивает
специальный модуль ядра – микроядро, работающее в привилегирован-
ном режиме и обеспечивающее взаимодействие между программами,
планирование использования процессора, первичную обработку преры-
ваний, операции ввода-вывода и базовое управление памятью (рис. 2).
                                                Менеджер
            Прило-                              файловой
            жение В                             системы
                              Микроядро


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


управляющие модули, которые и выполнят затребованную функцию.
Микроядро – это минимальная главная (стержневая) часть ОС, служа-
щая основой модульных и переносимых расширений. Микроядро само
является модулем системного ПО, работающим в наиболее приоритет-
ном состоянии компьютера и поддерживающим связи с остальной ча-
стью операционной системы, которая рассматривается как набор сер-
верных приложений (служб).
     Основная идея, заложенная в технологию микроядра, заключается в
том, чтобы создать необходимую среду верхнего уровня иерархии, из
которой можно легко получить доступ ко всем функциональным воз-
можностям уровня аппаратного обеспечения. При этом микроядро явля-
ется стартовой точкой для создания всех остальных модулей системы.
Остальные модули, реализующие необходимые системе функции, вызы-
ваются из микроядра и выполняют сервисную роль, получая при этом
статус обычного процесса.
     Важнейшая задача при разработке микроядра заключается в выборе
базовых примитивов, которые должны находиться в микроядре для
обеспечения необходимого и достаточного сервиса. В микроядре содер-
жится и исполняется минимальное количество кода, необходимое для
реализации основных системных вызовов. В число этих вызовов входят
передача сообщений и организация другого общения между внешними
по отношению к микроядру процессами, поддержка управления преры-
ваниями, а также ряд других весьма немногочисленных функций.
Остальные системные функции, характерные для «обычных» (не микро-
ядерных) операционных систем, обеспечиваются как модульные допол-
нения-процессы, взаимодействующие главным образом между собой
посредством передачи сообщений.
     К преимуществам построения ОС в данной архитектуре относят:
      упрощенное добавление и отладка компонентов ОС без необхо-
димости перезапуска системы за счет высокой степени модульности яд-
ра;
      возможность без прерывания работы системы, загружать и вы-
гружать новые драйверы, файловые системы и т.д.
      возможность отладки компонентов ядра с помощью обычных
программных средств;
      повышенная надежность системы (ошибка на уровне непривиле-
гированной программы менее опасна, чем отказ на уровне режима ядра).
     К недостаткам построения ОС в данной архитектуре относят:
      дополнительные накладные расходы, связанные с передачей со-
общений и возникающие за счет частого переключения из защищенного


                                 25


режима ядра в незащищенный, в котором функционируют остальные
модули;
      усложнение процесса проектирования при попытке снижения
возможных накладных расходов (требуется «аккуратное» проектирова-
ние, разбиение системы на компоненты, минимизация взаимодействия
между ними).
    2.1.3   Многоуровневые системы
     Обеспечивая строгую структуризацию, можно представить всю вы-
числительную систему в виде ряда уровней с хорошо определенными
связями между ними. При этом объекты уровня N могут вызывать толь-
ко объекты уровня N-1. Чем ниже уровень, тем более привилегирован-
ные команды и действия может выполнять модуль, находящийся на
этом уровне. Впервые такой подход был применен при создании систе-
мы THE (Technishe Hogeschool Eindhoven) в 1968 г. Дейкстрой (Dijkstra)
и его студентами (рис. 3).
            5 Интерфейс пользователя
            4 Управление вводом-выводом
            3 Драйвер устройства связи оператора и консоли
            2 Планирование задач и процессов
            1 Управление памятью
            0 Аппаратное обеспечение

                   Рисунок 3 – Структура системы THE
    Вычислительные системы, реализованные в подобной архитектуре,
называют многоуровневыми системами (англ. layered systems).
    В качестве достоинства многоуровневых систем отмечают:
     простоту реализации (за счет того, что при использовании опе-
раций нижнего слоя не нужно знать, как они реализованы, нужно лишь
понимать, что они делают);
     простоту тестирования (отладка осуществляется послойно и при
возникновении ошибки всегда легко локализовать ошибку);
     простоту модификации (при необходимости можно заменить
лишь один слой, не трогая остальные).
    К недостаткам относят:
     сложность разработки (непросто верно определить порядок и
состав каждого из слоев);


                                   26


     меньшая по сравнению с монолитными системами эффектив-
ность за счет необходимости прохождения целого ряда слоев (например,
для выполнения операций ввода-вывода программе пользователя при-
дется последовательно проходить все слои от верхнего до нижнего).
      2.1.4    Виртуальные машины
      Виртуальной машиной (англ. virtual machine) называют программ-
ную или аппаратную среду, исполняющую некоторый код (например,
байт-код2 или машинный код реального процессора). Зачастую вирту-
альная машина эмулирует работу реального компьютера. На виртуаль-
ную машину, так же как и на реальный компьютер можно инсталлиро-
вать ОС, у виртуальной машины может быть BIOS, оперативная память,
жѐсткий диск (выделенное место на жѐстком диске реального компью-
тера), могут эмулироваться периферийные устройства. На одном ком-
пьютере может функционировать несколько виртуальных машин. На
рис. 4 представлена обобщенная структура некоторой виртуальной ма-
шины с тремя различными ОС.
      Виртуальная машина реализует для пользователя имитацию
hardware в вычислительной системе (процессор, привилегированные и
непривилегированные команды, устройства ввода-вывода, прерывания и
т.д.). При обращении к «виртуальному hardware» на уровне привилеги-
рованных команд в действительности происходит системный вызов3 ре-
альной ОС, которая и производит все необходимые действия.
                    Программа    Программа    Программа
                   пользователя пользователя пользователя
                      MS-DOS               Linux          Windows NT
                   Виртуальное Виртуальное Виртуальное
                    hardware    hardware    hardware
                          Реальная операционная система
                         Реальное аппаратное обеспечение

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

2
  Байт-код (англ. byte-code) – машинно-независимый код низкого уровня, генерируемый транслято-
ром и исполняемый интерпретатором. Большинство инструкций байт-кода эквивалентны одной или
нескольким командам ассемблера. Трансляция в байт-код занимает промежуточное положение между
компиляцией в машинный код и интерпретацией.
3
  Системный вызов (англ. system call) – обращение прикладной программы к ядру ОС для выполне-
ния какой-либо операции с использованием привилегированных команд.
                                             27


компьютером, и, как правило, их громоздкость. Преимуществом являет-
ся использование в рамках одной вычислительной системы программ,
созданных для разных ОС. Примерами ОС, реализованных в подобной
архитектуре, являются CP/CMS (VM/370) для семейства машин IBM/370,
VMWare Workstation компании VMWare.
    2.1.5   Смешанные системы
    В большинстве случаев современные ОС используют различные
комбинации подходов, рассмотренных в пп. 2.1.1-2.1.4, реализуя сме-
шанные (гибридные) ОС. Например, ядро ОС Linux представляет собой
монолитную систему с элементами микроядерной архитектуры. Систе-
мы 4.4BSD и MkLinux – монолитные ОС, работающие на микроядре
Mach (микроядро обеспечивает управление виртуальной памятью и ра-
боту низкоуровневых драйверов; остальные функции, в том числе взаи-
модействие с прикладными программами, осуществляется монолитным
ядром). Совместно элементы микроядерной архитектуры и элементы
монолитного ядра используются в ядре Windows NT:
     компоненты ядра Windows NT располагаются в вытесняемой па-
мяти и взаимодействуют друг с другом путем передачи сообщений, как
и положено в микроядерных ОС;
     все компоненты ядра работают в одном адресном пространстве и
активно используют общие структуры данных.

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



                                 28


     По режиму обработки задач различают ОС, обеспечивающие од-
нопрограммный и мультипрограммный4 (мультизадачный, многозадач-
ный) режимы. Любая задержка в решении программы (например, для
осуществления операций ввода-вывода данных) используется для вы-
полнения других программ. Однозадачные ОС (например, MS-DOS,
MSX) выполняют функцию предоставления пользователю виртуальной
машины, делая более простым и удобным процесс взаимодействия
пользователя с компьютером, а также включают средства управления
периферийными устройствами, средства управления файлами, средства
общения с пользователем.
     Следует различать понятия «мультипрограммный режим» и
«мультизадачный режим». Принципиальное отличие этих понятий за-
ключается в том, что мультипрограммный режим обеспечивает парал-
лельное выполнение нескольких приложений, и при этом программи-
сты, создающие эти программы, не должны заботиться о механизмах ор-
ганизации их параллельной работы (эти функции берет на себя сама
ОС). Мультизадачный режим, наоборот, предполагает, что забота о па-
раллельном выполнении и взаимодействии приложений ложится как раз
на прикладных программистов. Современные ОС для персональных
компьютеров реализуют мультипрограммный и мультизадачный режи-
мы работы.
     Среди множества существующих вариантов реализации многоза-
дачности можно выделить две группы:
     1) Невытесняющая многозадачность (NetWare, Windows 3.x). В
этом случае активный процесс выполняется до тех пор, пока он сам, по
собственной инициативе, не отдаст управление ОС для того, чтобы та
выбрала из очереди другой готовый к выполнению процесс.
     2) Вытесняющая многозадачность (Windows NT, OS/2, Unix). При
вытесняющей многозадачности решение о переключении процессора с
одного процесса на другой принимается ОС, а не самим активным про-
цессом.
     Также многозадачные ОС подразделяют на различные типы в соот-
ветствии с использованными при их разработке критериями эффектив-
ности:
      системы пакетной обработки (например, EC, критерий – коэф-
фициент загрузки процессора);
      системы разделения времени (Unix, VMS, критерий – удобство и
эффективность работы пользователей при одновременном выполнении
нескольких пользовательских приложений);


4
    Способ организации выполнения нескольких программ одновременно на одном компьютере.
                                               29


      системы реального времени (QNX, RT/11, критерий – реактив-
ность).
     Информация о системах пакетной обработки и разделения времени
приведена выше в п. 1.2. Как отмечено выше, основной особенностью
ОСРВ является обеспечение обработки поступающих заданий в течение
заданных интервалов времени, которые нельзя превышать. Поток зада-
ний в общем случае не является планомерным и не может регулировать-
ся оператором (характер следования событий можно предсказать лишь в
редких случаях), то есть задания поступают в непредсказуемые моменты
времени и без всякой очередности. Лучшие характеристики по произво-
дительности для систем реального времени обеспечиваются однотерми-
нальными ОСРВ. Средства организации мультитерминального режима
всегда замедляют работу системы в целом, но расширяют функциональ-
ные возможности системы. Одной из наиболее известных ОСРВ для
персональных компьютеров является ОС QNX [16].
     Если принимать во внимание способ взаимодействия с компьюте-
ром, то можно говорить о диалоговых системах и системах пакетной
обработки. Доля последних хоть и не убывает в абсолютном исчисле-
нии, но в процентном отношении она существенно сократилась по срав-
нению с диалоговыми системами.
     При организации работы с вычислительной системой в диалоговом
режиме можно говорить об однопользовательских (однотерминальных)
и многопользовательских (мультитерминальных) ОС. В мультитерми-
нальных ОС с одной вычислительной системой одновременно могут ра-
ботать несколько пользователей, каждый со своего терминала. При этом
у пользователей возникает иллюзия, что у каждого из них имеется соб-
ственная вычислительная система. Очевидно, что для организации
мультитерминального доступа к вычислительной системе необходимо
обеспечить мультипрограммный режим работы. В качестве одного из
примеров мультитерминальных ОС для персональных компьютеров
можно назвать Linux. Некая имитация мультитерминальных возможно-
стей имеется и в системе Windows XP. В этой ОС каждый пользователь
после регистрации (входа в систему) получает свою виртуальную ма-
шину. Если необходимо временно предоставить компьютер другому
пользователю, вычислительные процессы первого можно не завершать,
а просто для этого другого пользователя система создает новую вирту-
альную машину. В результате компьютер будет выполнять задачи и
первого, и второго пользователя. Количество параллельно работающих
виртуальных машин определяется имеющимися ресурсами. Главным
отличием многопользовательских систем от однопользовательских яв-
ляется наличие средств защиты информации каждого пользователя от
несанкционированного доступа других пользователей.
                                 30



    
Яндекс цитирования Яндекс.Метрика