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

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

Голосов: 2

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

Приведенный ниже текст получен путем автоматического извлечения из оригинального PDF-документа и предназначен для предварительного просмотра.
Изображения (картинки, формулы, графики) отсутствуют.
         Кроме того, если в ОС отсутствуют или присутствуют средства
поддержки многопроцессорной обработки, они могут быть разделены на
многопроцессорные и однопроцессорные. Как правило, функции муль-
типроцессирования имеются в операционных системах Solaris 2.x фир-
мы Sun, Open Server 3.x компании Santa Crus Operations, OS/2 фирмы
IBM, Windows NT фирмы Microsoft, NetWare 4.1 фирмы Novell, однако,
очевидно, их наличие усложняет алгоритмы управления ресурсами. В
свою очередь, многопроцессорные ОС могут классифицироваться по
способу организации вычислительного процесса в системе с многопро-
цессорной архитектурой: асимметричные ОС и симметричные ОС.
Асимметричная ОС целиком выполняется только на одном из процессо-
ров системы, распределяя прикладные задачи по остальным процессо-
рам. Симметричная ОС полностью децентрализована и использует весь
пул процессоров, разделяя их между системными и прикладными зада-
чами.
     Следует отметить еще один признак, по которому разделяют ОС –
организация работы с вычислительной сетью. По этому признаку выде-
ляют сетевые ОС и распределенные ОС (следует отметить, что иногда в
литературе такое разделение отсутствует). Сетевая ОС характеризуется
тем, что наделена развитыми функциями работы с сетью, а также кон-
троля доступа к файлам (систему прав доступа). К сетевым ОС относят
как системы для рабочих мест (Novell for DOS, MS Windows, GNU/Linux),
так серверные ОС (GNU/Linux, семейство BSD-систем, серверные версии
MS Windows, NetWare), а также специализированные ОС сетевого обо-
рудования (Cisco IOS5) [17].
     При использовании распределенной ОС пользователь не знает, на
локальной или удаленной машине хранятся его файлы и выполняются
его программы, он может не знать, подключен ли его компьютер к сети.
Внешне распределенная ОС выглядит как обычная автономная система,
а ее внутреннее строение имеет существенные отличия от автономных
систем.
     Также ОС классифицируют по архитектуре, в которой они реализо-
ваны. Виды архитектур, в которых реализуются ОС, достаточно подроб-
но изложены выше в п. 2.1.

    2.3 Вопросы для самопроверки
    1. В каких архитектурах реализуют операционные системы?
    2. Чем характеризуется ОС, реализованная в архитектуре «моно-
литное ядро»?


5
    Первоначально – Internetwork Operating System
                                                    31


     3. В чем отличие работы аппаратуры компьютера в пользователь-
ском режиме и в режиме ядра?
     4. Какие недостатки вызывает использование ОС в архитектуре мо-
нолитное ядро? Что означает модульное ядро?
     5. Чем характеризуется ОС, реализованная в микроядерной архи-
тектуре?
     6. В чем заключаются достоинства и недостатки ОС, реализован-
ных в микроядерной архитектуре?
     7. Чем характеризуется многоуровневая ОС? В чем ее достоинства
и недостатки?
     8. Какова обобщенная структура виртуальной машины? Назовите
примеры современных виртуальных машин?
     9. Что такое смешанные (гибридные) ОС? Какие ОС реализованы в
этой архитектуре?
     10. По каким признакам классифицируют ОС?
     11. В чем отличие мультипрограммного режима работы ОС от
мультизадачного?
     12. Что означают понятия вытесняющая и невытесняющая многоза-
дачность?
     13. Что означает симметричная и ассиметричная мультипроцессор-
ная обработка?
     14. В чем отличие сетевых и распределенных ОС?




                                 32


             3. УПРАВЛЕНИЕ ПРОЦЕССАМИ
     3.1 Мультипрограммирование
     Мультипрограммирование – это режим обработки данных, при ко-
тором ресурсы вычислительной системы предоставляются каждому
процессу из группы процессов обработки данных, находящихся в вы-
числительной системе, на интервалы времени, длительность и очеред-
ность предоставления которых определяется управляющей программой
этой системы с целью обеспечения одновременной работы в интерак-
тивном режиме.
     Суть мультипрограммного режима работы ОС заключается в том,
что пока одна программа (один вычислительный процесс) ожидает за-
вершения очередной операции ввода-вывода (подпись «Вв» на оси ор-
динат), другая программа (процесс) может быть поставлена на решение
(рис. 5). Это позволяет более полно использовать имеющиеся ресурсы
(например, как видно из рисунка, центральный процессор начинает
меньше простаивать) и уменьшить общее (суммарное) время, необходи-
мое для решения некоторого множества задач.

    Вв



  CPU
               Задача А                           Задача B
                                              а

    Вв


  CPU

                   Задача А


    Вв


  CPU

                              Задача B


Рисунок 5 – Пример выполнения двух программ в мультипрограммном режи-
                                   ме
    На рис. 5 в качестве примера изображена гипотетическая ситуация,
при которой благодаря совмещению во времени двух вычислительных
                                         33


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


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


бодят процессор. Всем приложениям попеременно выделяется квант
процессорного времени, поэтому пользователи, запустившие программы
на выполнение, получают возможность поддерживать с ними диалог.
     Системы разделения времени призваны исправить основной недо-
статок систем пакетной обработки – изоляцию пользователя-
программиста от процесса выполнения его задач. Каждому пользовате-
лю в этом случае предоставляется терминал, с которого он может вести
диалог со своей программой. В связи с тем, что в системах разделения
времени каждой задаче выделяется только квант процессорного време-
ни, ни одна задача не занимает процессор надолго и время ответа оказы-
вается приемлемым. Если квант выбран небольшой, то у всех пользова-
телей, одновременно работающих на одной и той же машине, складыва-
ется впечатление, что каждый из них использует ее единолично.
     Очевидно, что системы разделения времени обладают меньшей
пропускной способностью, чем системы пакетной обработки, так как на
выполнение принимается каждая запущенная пользователем задача, а не
та, которая «выгодна» системе. Кроме того, производительность систе-
мы снижается из-за возросших накладных расходов вычислительной
мощности на более частое переключение процессора с задачи на задачу.
Это вполне соответствует тому, что критерием эффективности систем
разделения времени является не максимальная пропускная способность,
а удобство и эффективность работы пользователя. Вместе с тем мульти-
программное выполнение интерактивных приложений повышает про-
пускную способность компьютера (пусть и не в такой степени, как па-
кетные системы). Аппаратура загружается более эффективно, поскольку
в то время, пока одно приложение ждет сообщения пользователя, другие
приложения могут обрабатываться процессором.
    3.1.3   Мультипрограммирование в системах реального времени
     Еще одна разновидность мультипрограммирования используется
ОСРВ, предназначенных, как отмечено выше в п. 2.2, для управления с
помощью компьютера различными техническими объектами или техно-
логическими процессами. Критерием эффективности этих систем явля-
ется способность выдерживать заранее заданные интервалы времени
между запуском программы и получением результата (управляющего
воздействия). Это время называется временем реакции системы, а соот-
ветствующее свойство системы – реактивностью. Требования ко време-
ни реакции зависят от специфики управляемого процесса.
     В ОСРВ «мультипрограммная смесь» представляет собой фиксиро-
ванный набор заранее разработанных программ, а выбор программы на
выполнение осуществляется по прерываниям (исходя из текущего со-
стояния объекта) или в соответствии с расписанием плановых работ.
                                  36


     Способность аппаратуры компьютера и ОСРВ к быстрому ответу
зависит в основном от скорости переключения одной задачи на другую
и, в частности, от скорости обработки сигналов прерывания. Если для
обработки прерывания процессор должен опросить сотни потенциаль-
ных источников прерывания, то реакция системы будет слишком мед-
ленной. Время обработки прерывания в ОСРВ часто определяет требо-
вания к классу процессора даже при небольшой его загрузке.
     В ОСРВ не стремятся максимально загружать все устройства,
наоборот, при проектировании программного управляющего комплекса
обычно закладывается некоторый «запас» вычислительной мощности на
случай пиковой нагрузки. Статистические аргументы о низкой вероят-
ности возникновения пиковой нагрузки, основанные на том, что вероят-
ность одновременного возникновения большого количества независи-
мых событий очень мала, не применимы ко многим ситуациям в реаль-
ных системах управления. Например, в системе управления атомной
электростанцией в случае возникновения крупной аварии атомного ре-
актора многие аварийные датчики сработают одновременно и создадут
коррелированную нагрузку. Если ОСРВ не спроектирована для под-
держки подобной пиковой нагрузки, то может случиться так, что систе-
ма не справится с работой именно тогда, когда она нужна в наибольшей
степени.
    3.1.4 Мультипрограммирование при мультипроцессорной обра-
    ботке
     Мультипроцессорная обработка – это способ организации вычис-
лительного процесса в системах с несколькими процессорами, при кото-
ром несколько задач (процессов, потоков) могут одновременно выпол-
няться на разных процессорах системы.
     Мультипроцессорные вычислительные системы начали появляться
с середины 80-х гг. и к настоящему моменту обычным делом является
наличие нескольких процессоров даже в архитектуре персонального
компьютера. Более того, многопроцессорность теперь является одним из
необходимых требований, которые предъявляются к компьютерам, ис-
пользуемым в качестве центрального сервера крупной вычислительной
сети.
     В мультипроцессорных системах несколько задач могут реально
выполняться одновременно, так как имеется несколько обрабатываю-
щих устройств – процессоров. Очевидно, что мультипроцессирование не
исключает мультипрограммирования – на каждом из процессоров может
попеременно выполняться некоторый закрепленный за данным процес-
сором набор задач.

                                 37


     Мультипроцессорная организация системы приводит к усложнению
всех алгоритмов управления ресурсами. Так, например, требуется пла-
нирование работы процессов не для одного, а для нескольких процессо-
ров, что гораздо сложнее. Сложности заключаются и в возрастании чис-
ла конфликтов по обращению к устройствам ввода-вывода, данным, об-
щей памяти и совместно используемым программам. Необходимо
предусмотреть эффективные средства блокировки при доступе к разде-
ляемым информационным структурам ядра. Все эти проблемы должна
решать ОС путем синхронизации процессов, ведения очередей и плани-
рования ресурсов. Более того, сама ОС должна быть спроектирована
так, чтобы уменьшить существующие взаимозависимости между соб-
ственными компонентами.
     Мультипроцессорные системы разделяют на симметричные и
несимметричные (асимметричные). При этом следует четко разделять,
к какому аспекту мультипроцессорной системы относится эта характе-
ристика – к типу архитектуры или к способу организации вычислитель-
ного процесса. Сначала рассмотрим особенности такого разделения с
точки зрения архитектуры.
     Симметричная архитектура мультипроцессорной системы предпо-
лагает однородность всех процессоров и единообразие включения про-
цессоров в общую схему системы. Традиционные симметричные муль-
типроцессорные конфигурации разделяют одну большую память между
всеми процессорами и используют одну схему отображения памяти.
Они могут очень быстро обмениваться данными так, что обеспечивается
достаточно высокая производительность для тех приложений (напри-
мер, при работе с базами данных), в которых несколько задач должны
активно взаимодействовать между собой.
     В настоящее время функции поддержки симметричной мультипро-
цессорной обработки данных имеются во всех популярных ОС, таких
как MS Windows NT Workstation 4.0, Microsoft Windows Server 2003,
Windows XP Professional, QNX Neutrino.
     Возможность наращивания числа процессоров (масштабируе-
мость) в симметричных системах ограничена вследствие того, что все
они пользуются одной и той же оперативной памятью и, следовательно,
должны располагаться в одном корпусе. Такая конструкция, называемая
масштабируемой по вертикали, практически ограничивает число про-
цессоров до четырех или восьми.
     В асимметричной архитектуре разные процессоры могут отли-
чаться как своими характеристиками (производительностью, надежно-
стью, системой команд и т.д., вплоть до модели микропроцессора), так и
функциональной ролью, которая поручается им в системе. Например,
одни процессоры могут предназначаться для работы в качестве основ-
                                  38


ных вычислителей, другие – для управления подсистемой ввода-вывода,
третьи – для каких-то иных целей.
     Функциональная неоднородность в асимметричных архитектурах
влечет за собой структурные отличия во фрагментах системы, содержа-
щих разные процессоры системы. Например, они могут отличаться схе-
мами подключения процессоров к системной шине, набором перифе-
рийных устройств и способами взаимодействия процессоров с устрой-
ствами.
     Масштабирование в асимметричной архитектуре реализуется ина-
че, чем в симметричной. В связи с тем, что требование «единого корпу-
са» отсутствует, система может состоять из нескольких устройств, каж-
дое из которых содержит один или несколько процессоров –
масштабирование по горизонтали. Каждое такое устройство называется
кластером, а вся мультипроцессорная система – кластерной.
     Рассмотрев особенности организации мультипроцессорных систем
с точки зрения архитектуры, отметим особенности их организации с
точки зрения вычислительного процесса.
     Асимметричное мультипроцессирование является наиболее про-
стым способом организации вычислительного процесса в системах с не-
сколькими процессорами. Этот способ иногда условно называют «веду-
щий-ведомый». Функционирование системы по принципу «ведущий-
ведомый» предполагает выделение одного из процессоров в качестве
«ведущего», на котором работает ОС и который управляет всеми
остальными «ведомыми» процессорами. В этом случае «ведущий» про-
цессор берет на себя функции распределения задач и ресурсов, а «ведо-
мые» процессоры работают только как обрабатывающие устройства и
никаких действий по организации работы вычислительной системы не
выполняют. Учитывая то, что ОС работает исключительно на одном
процессоре и функции управления централизованы, то такая система по
сложности схожа с ОС однопроцессорной системы.
     Следует отметить, что асимметричная организация вычислительно-
го процесса может быть реализована как для симметричной мультипро-
цессорной архитектуры, в которой все процессоры аппаратно неразли-
чимы, так и для несимметричной, для которой характерна неоднород-
ность процессоров, их специализация на аппаратном уровне. В архи-
тектурно-асимметричных системах на роль ведущего процессора мо-
жет быть назначен наиболее надежный и производительный процессор.
Если в наборе процессоров имеется специализированный процессор,
ориентированный, например, на матричные вычисления, то при плани-
ровании процессов ОС, реализующая асимметричное мультипроцесси-
рование, должна учитывать специфику этого процессора. Такая специа-

                                 39


лизация снижает надежность системы в целом, так как процессоры не
являются взаимозаменяемыми.
     Симметричное мультипроцессирование как способ организации
вычислительного процесса (процессоры работают с общими устрой-
ствами и разделяемой основной памятью) может быть реализовано ис-
ключительно в системах с симметричной мультипроцессорной архитек-
турой. Симметричное мультипроцессирование реализуется ОС, общей
для всех процессоров.
     При симметричной организации все процессоры равноправно
участвуют и в управлении вычислительным процессом, и в выполнении
прикладных задач. Например, сигнал прерывания от принтера, который
распечатывает данные прикладного процесса, выполняемого на некото-
ром процессоре, может быть обработан совсем другим процессором.
Разные процессоры могут в какой-то момент одновременно обслужи-
вать как разные, так и одинаковые модули общей ОС, однако при этом
ОС должна обладать свойством реентерабельности6. Следует отметить,
что большим преимуществом симметричных систем перед асимметрич-
ными системами является то, что в случае отказа одного из процессоров,
симметричные системы, как правило, значительно легче реконфигури-
руются.
      3.1.5    Роль прерываний при мультипрограммировании
     Прерывания представляют собой механизм, позволяющий коорди-
нировать параллельное функционирование отдельных устройств вычис-
лительной системы и реагировать на особые состояния, возникающие
при работе процессора, то есть прерывание – это принудительная пере-
дача управления от выполняемой программы к системе (а через нее – к
соответствующей программе обработки прерывания), происходящая при
возникновении определенного события.
     Идея прерывания была предложена в середине 50-х годов и можно
без преувеличения сказать, что она внесла наиболее весомый вклад в
развитие вычислительной техники. Основная цель введения прерыва-
ний – реализация асинхронного режима функционирования и распарал-
леливание работы отдельных устройств вычислительного комплекса.
     Механизм прерываний реализуется аппаратно-программными сред-
ствами вычислительной системы. Структуры систем прерывания (в за-
висимости от аппаратной архитектуры) могут быть самыми разными, но
все они имеют одну общую особенность – прерывание непременно вле-

6
 Реентерабельность – свойство программы или отдельной процедуры, которая разработана так, что
одна и та же копия инструкций программы в памяти может быть совместно использована нескольки-
ми пользователями или процессами.

                                             40



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