Операционные системы 2011 (1114689), страница 9
Текст из файла (страница 9)
кромевозможности работы с системой команд компьютера, с аппаратными интерфейсамипрограммного управления внешними устройствами пользователю предоставляютсяинтерфейсы драйверов физических устройств (ресурсов) компьютера. С позицийпрограммиста, он работает с компьютером, имеющим расширенные, по сравнению спредыдущим уровнем, возможности. Кроме стандартных аппаратных средств27программирования компьютера (система команд, аппаратные интерфейсы взаимодействияс физическими внешними устройствами) появились интерфейсы драйверов физическихустройств (ресурсов) компьютера.Уровень управления логическими или виртуальными ресурсами.
На данномуровне структурной организации вычислительной системы спектр средствпрограммирования расширяется за счет интерфейсов драйверов виртуальных/логическихустройств (или ресурсов). В общем случае, для программиста, работающего с системой наданном уровне, средства программирования компьютера представляются:системой команд компьютера;аппаратными интерфейсами программного управления физическими устройствами;интерфейсами драйверов физических устройств;интерфейсами драйверов виртуальных устройств.Операционная система может ограничить доступ пользователей к аппаратнымсредствам управления внешними устройствами, к драйверам физических устройств, кнекоторым драйверам виртуальных устройств.
Однако, "условный" пользователь уровняуправления виртуальными устройствами вычислительной системы работает скомпьютером, имеющим расширенные возможности. При этом пользователь может незнать о том, какие устройства, используемые в его программе, являются физическими,реально существующими, а какие — виртуальными. А даже если он и знает, что какое-тоустройство является, к примеру, физическим, то, скорее всего, он не имеет никакогопредставления о деталях организации управления этого устройства на уровне аппаратныхинтерфейсов.Уровень систем программирования. Для иллюстрации проблемы упростимструктуру системы программирования, рассмотрим практически вырожденный случай.Пусть система программирования, с которой работает пользователь ВС, состоит только изтранслятора языка высокого уровня и стандартной библиотеки программ, — например,языка Си.
В этом случае представление пользователя о компьютере, на котором онработает, может свестись к языковым конструкциям языка Си и возможностям,предоставляемым стандартной библиотекой языка Си. Происходит очередное"расширение" возможностей компьютера за счет конструкций языка Си и его стандартнойбиблиотеки. Более того, пользователь может работать на данном "расширенном"компьютере, не подозревая о реальной архитектуре аппаратного уровня ВС, о физическихи виртуальных устройствах, поддерживаемых операционной системой, о системе команди внутренней организации данных реального компьютера.Уровень прикладных систем.
Тенденция "расширения" возможностейкомпьютера продолжается и на прикладном уровне. При этом для каждой категориипользователей прикладного уровня вычислительной системы существует свое расширениекомпьютера. Так, например, для оператора прикладной системы компьютерпредставляется набором функциональных средств прикладной системы, доступной черезпользовательский интерфейс. Рассмотрим работу кассира в современном супермаркете,кассовый аппарат которого может являться специализированным персональнымкомпьютером, работающим в составе системы автоматизации деятельности всегомагазина. Для кассира работа с этим компьютером и, соответственно, возможности этогокомпьютера представляются в виде возможностей прикладной подсистемы,автоматизирующей его рабочее место.
Заведомо кассир магазина может не иметь никакихпредставлений о внутренней организации специализированной вычислительной системы,на которой он работает (тип компьютера, тип операционной системы, состав драйверовОС и т.п.).Не будет преувеличением утверждение, что не менее 90% современныхпользователей персональных компьютеров не имеют представления о системе командкомпьютера, о структуре компьютерных данных, об аппаратных интерфейсах управленияфизическими устройствами — все это скрывают расширения компьютера, которые28образуются за счет соответствующих уровней вычислительной системы. Мы будемговорить, что каждый пользователь, работая в соответствующем расширении компьютера,работает в виртуальной машине или виртуальном компьютере.
Реальный компьютериспользуется непосредственно исключительно на аппаратном уровне. Во всех остальныхслучаях пользователь работает с программным расширением возможностей реальногокомпьютера — с виртуальным компьютером. Причем "виртуальность" этого компьютера(или этих компьютеров) возрастает от уровня управления физическими ресурсами ВС доуровня прикладных систем.Вернемся к замечаниям, с которых начали данный раздел, касающихсянеоднозначности определений многих компонентов вычислительных систем и, вчастности, неоднозначности определения термина «операционная система».В некоторых изданиях ошибочно ассоциируют понятие виртуального компьютераисключительно с операционной системой. Это не так.
Только что мы показали, что"виртуальность компьютера", с которым работает пользователь вычислительной системы,начинается с уровня управления физическими устройствами и завершается на уровнеприкладных систем.Также не совсем правильным является утверждение, что операционная системапредоставляет пользователю удобства работы с вычислительной системой или простоту еепрограммирования. На самом деле эти свойства в большей степени принадлежатприкладным системам или системам программирования. Одной из возможных причинподобной неоднозначности является то, что на ранних периодах развития вычислительнойтехники системы программирования рассматривались в качестве компонентаоперационных систем. Вычислительная система является продуктом глубокой интеграцииее компонентов, и, безусловно, на удобства работы с ВС и на простоту программированияоказывают влияние и аппаратура компьютера, и операционная система, но эти свойства всущественно большей степени характеризуют системы программирования и прикладныесистемы.В настоящем разделе были рассмотрены следующие базовые определения,понятия.Вычислительная система — совокупность аппаратных и программных средств,функционирующих в единой системе и предназначенных для решения задачопределенного класса.
Рассмотрена пятиуровневая модель организации вычислительнойсистемы: аппаратный уровень, уровень управления физическими ресурсами ВС, уровеньуправления логическими/виртуальными ресурсами, уровень систем программирования иуровень прикладных систем. Круг задач, на решение которых ориентированавычислительная система, определяется наполнением уровня прикладных систем, однаковозможность реализации тех или иных прикладных систем определяется всемиостальными уровнями, составляющими структурную организацию ВС.Физические ресурсы (устройства) — компоненты аппаратуры компьютера,используемые на программных уровнях ВС или оказывающие влияние нафункционирование всей ВС. Совокупность физических ресурсов составляет аппаратныйуровень вычислительной системы.Драйвер физического устройства — программа, основанная на использованиикоманд управления конкретного физического устройства и предназначенная дляорганизации работы с данным устройством.
Драйвер физического устройства скрывает отпользователя детальные элементы управления конкретным физическим устройством ипредоставляет пользователю упрощенный программный интерфейс работы с устройством.Логические, или виртуальные, ресурсы (устройства) ВС — устройство/ресурс,некоторые эксплутационные характеристики которого (возможно все) реализованыпрограммным образом.Драйвер логического/виртуального ресурса — это программа, обеспечивающаясуществование и использование соответствующего ресурса, для этих целей при его29реализации возможно использование существующих драйверов физических ивиртуальных устройств.Ресурсы вычислительной системы — это совокупность всех физических ивиртуальных ресурсов данной вычислительной системы.Операционная система — это комплекс программ, обеспечивающий управлениересурсами вычислительной системы.
В структурной организации вычислительнойсистемы операционная система представляется уровнями управления физическими ивиртуальными ресурсами.Жизненный цикл программы в вычислительной системе — проектирование,кодирование (программная реализация или реализация), тестирование и отладка, вводпрограммной системы в эксплуатацию (внедрение) и сопровождение.Системапрограммирования —комплекспрограмм,обеспечивающийподдержание этапов жизненного цикла программы в вычислительной системе.Прикладная система — программная система, ориентированная на решение илиавтоматизацию решения задач из конкретной предметной области.1.2Основы компьютерной архитектурыИзучение принципов структурной организации и функционирования основныхкомпонентов операционной системы невозможно без рассмотрения основ архитектурыкомпьютера.
Настоящая глава посвящена рассмотрению концепций организациикомпьютера в контексте его функционирования в составе вычислительной системы(вычислительная система – это совокупность взаимосвязанных аппаратных ипрограммных компонентов, функционирующих в единой системе и предназначенных длярешения задач определенного класса).
Многие функциональные возможностиоперационных систем (такие как организация асинхронной работы с внешнимиустройствами, защита памяти от несанкционированного доступа, организациявиртуальной оперативной памяти) невозможно рассматривать вне поддержки этихфункций в аппаратуре компьютера. На самом деле верно и обратное: многие возможностиаппаратуры компьютера сложно представить вне их использования в рамкахоперационной системы. В процессе рассмотрения основ архитектуры мы будемиспользовать обобщенную модель организации и свойств основных компонентов,составляющих компьютер, достаточную для построения представления о существующихвзаимосвязях аппаратных и программных компонентов вычислительной системы, а такжедля понимания принципов построения операционных систем.1.2.1 Структура, основные компонентыСередина 40-х годов 20-го века может вправе считаться сроком зарождениясовременной вычислительной техники.