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



ЗНАЕТЕ ЛИ ВЫ?

Эволюция операционных систем

Поиск

Эволюция операционных систем

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

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

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

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

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

 

Рис. 2. Состав функций ОС

 

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

К функциям операционной системы относят также обеспечение высоких показателей по двум важнейшим характеристикам вычислительных систем: эффективности и надежности (рис. 3).

 

Рис. 3. Функции повышения эффективности и надежности

 

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

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

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

Следует особо упомянуть о функциях операционных систем по обеспечению различных режимов использования вычислительной системы— режима пакетной обработки, диалоговых режимов, режима реального времени, режима разделения времени (рис. 4), а также о важных при этом функциях по обеспечению различных категорий пользователей вычислительных систем: инженеров, операторов, административных работников и в первую очередь программистов и проектировщиков (рис. 5).

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

 

Рис. 4. Режимы работы, обеспечиваемые ОС

 

 

Рис.5. Категории пользователей ОС

 

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

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

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

Операционная система является посредником (связующим звеном, интерфейсом) между ЭВМ, с одной стороны, и человеком (пользователем, программистом, оператором, инженером и т.д.) —с другой. Другими словами, операционная система — логическое расширение функций аппаратуры в сторону человека. Она позволяет от «физического» уровня аппаратуры перейти к более высокому «логическому» уровню, который становится уровнем вычислительной системы и который более удобен для человека (рис. 6).

При разработке операционной системы или отдельных ее компонентов приходится исходить из требований решения тех или иных проблем, стоящих перед системами обработки данных, и отображать их на возможности аппаратуры. Иными словами, приходится строить мост между «человеческими» потребностями и «машинными» возможностями.

Круг рассматриваемых проблем при изложении настоящего материала ограничивается универсальными общецелевыми операционными системами и не затрагивает специализированных.

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

 

 

Рис. 6. Логические уровни общения человек — ЭВМ

 

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

 

 

Общая информация

 

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

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

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

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

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

 

 

Рис. 7 Состав ОС.

 

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

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

Управление восстановлением регистрирует машинные сбои и отказы и восстанавливает работоспособность системы после сбоев, если это возможно.

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

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

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

алгоритмов и структурных схем и заканчивая отладкой и выполнением программ.

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

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

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

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

 

Рис. 8 Система программирования.

 

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

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

Формат объектных модулей — стандартный для всех трансляторов, что позволяет одинаково обрабатывать их редактором связей и объединять модули, написанные на разных языках программирования.

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

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

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

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

Методы объединения программных модулей. Модульный принцип программирования предполагает разбиение проекта на отдельные программные модули в начальной стадии проектирования и объединение независимо разработанных программных модулей на конечной стадии. Существует несколько видов объединения программ. Рассмотрим некоторые из них более подробно.

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

Объединение программ во время ввода заданий заключается в последовательном выполнении пунктов задания — результаты предыдущего пункта передаются следующему. Предположим, что задание состоит из трех пунктов: трансляция, редактирование связей и выполнение. Результатом выполнения первого пункта (трансляции) является объектный модуль. Он передается второму пункту, результатом выполнения которого является загрузочный модуль. Загрузочный модуль передается третьему пункту, где он загружается в основную память и выполняется. В общем случае пункт задания может выполнять любую работу.

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

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

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

Загрузочный модуль простой структуры не использует динамически другие загрузочные модули. Однако программы простой структуры можно динамически вызывать из других (динамических) загрузочных модулей.

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

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

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

В динамических параллельных структурах вызываемый и вызывающий модули выполняются параллельно.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Виртуальные системы.

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

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

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

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

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

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

2. Пользователь отделен от вычислительной машины сложной «прослойкой» управляющей программы. Взаимодействие пользователя с техническими средствами осуществляется через сложные алгоритмы УП; УП теряет «прозрачность».

 

 

Рис. 9. Структура «традиционных» ОС III поколения

 

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

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

5. Объемы отдельных ресурсов являются недостаточными. Желательно расширение объема ресурса, что относится в первую очередь к основной памяти.

6. Часто возникают потребности на одной реальной ЭВМ использовать одновременно различные операционные системы, или несколько вариантов одной и той же I операционной системы, или независимые программы, что не может быть реализовано «традиционной» УП. I Введение концепции логического или виртуального ресурса, а также виртуальной машины значительно продвинуло вперед решение этих проблем. Концепция виртуального ресурса (машины), появившаяся в 60-х годах, в настоящее время распространена достаточно широко. Однако она требует дальнейшего развития и изучения. Виртуальные ресурсы обычно соответствуют некоторым реально существующим (программным или аппаратным). Их моделирование осуществляется программно-аппаратным или чисто программным способом. Использование виртуального ресурса осуществляется через более простой и/или более эффективный интерфейс. Использование виртуального ресурса позволяет снять ряд «досадных» ограничений или недостатков, которыми обладают реальные ресурсы. Примером может служить введение понятия виртуальной памяти, размер которой считается практически неограниченным. В результате при разработке программного проекта не возникает задачи размещения программ и данных в ограниченном объеме реальной памяти. Это ограничение снимается также и для операционной системы, что может повысить ее эффективность.

Обработка прерываний.

Управление задачами

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

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

Супервизор прерываний. Супервизор прерываний выполняет следующие функции:

1) первичную обработку прерываний: анализ причин прерываний; выбор программы, которая должна реагировать на прерывание;

2) диспетчирование задач, связанное с их переключением в активное состояние;

3) процедуру выхода после завершения выполнения определенных функций супервизора.

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



Поделиться:


Последнее изменение этой страницы: 2016-06-26; просмотров: 881; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

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