Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Концепция программной системы
Операционная система является сложной программной системой. Под термином программная система понимают системное программное обеспечение, которое выполняется непрерывно, поддерживает работу других программ (процессов, функциональных задач) и взаимодействует с пользователем. Одной из характеристик программной системы является способность к параллельному выполнению набора программных единиц, которые, с точки зрения операционной системы, являются задачами. Обычно программные системы рассматриваются в двух аспектах – статическом и динамическом, что соответствует модульной структуре системы и анализу поведения системы. Большие программные системы разбивают на более простые части или модули – функционально законченные программные единицы, выполняющие определенную работу и выполненные в соответствии с принятым межмодульным интерфейсом. Понять большую систему, изучая ее программный код – задача невероятной сложности. При разработке нового программного обеспечения используется интегрированный подход, согласно которому система рассматривается с нескольких точек зрения. Программа сначала описывается в общих чертах, решение рассматривается с концептуальной точки зрения, не имеющей ничего общего с языками программирования и реализацией решения, выработанного в результате этого анализа, на конкретном языке программирования с использованием его синтаксиса и семантики. Затем это описание в течение нескольких этапов преобразуется в программный код, который называется реализацией. Т. е. решение рассматривается сначала с концептуальной точки зрения, а затем с точки зрения реализации. В обоих представлениях используется идея модульности. С точки зрения реализации модуль - это единица программного кода, а с концептуальной точки зрения выполняемая программная операция. При разработке и сопровождении операционных систем в настоящее время используется объектная модель системы. Рассмотрим сначала структуру системы концептуально и введем понятия абстрактного типа данных, интерфейса абстрактного типа данных и состояния экземпляра абстрактного типа данных. Анализируя некоторую задачу в области ее применения, выделяют группы элементов со сходными свойствами – например, ресурсы вычислительной системы: файлы, сегменты оперативной памяти, адаптеры внешних устройств и так далее. Можно говорить о типе «файлы», представляющем множество всех файлов системы. Т. е. можно сказать, что тип – это название, присвоенное множеству элементов, обладающих некоторым общим свойством. Это общее свойство можно определить, как список операций, которые могут выполняться этими элементами. Такую совокупность операций называют их поведением, что лежит в основе идеи абстрактного типа данных. Абстрактный тип данных определяют, как множество элементов с определенным набором операций, которые могут выполняться этими элементами. Единственный способ взаимодействия с экземпляром абстрактного типа данных является вызов одной из его операций. Т. е. абстрактный тип данных представляется внешнему миру, как набор операций при этом взаимодействующие с ним субъекты вычислительной системы не имеют представления о его внутренней структуре. Набор операций, определяющих абстрактный тип данных, называют интерфейсом. Под состоянием экземпляра абстрактного типа данных понимают набор значений, характеризующих этот экземпляр. Для конкретного файла его состоянием может быть – объем, открыт (закрыт), тип и т. д. Операции, составляющие интерфейс абстрактного типа данных, при их вызове изменяют состояние экземпляров данного типа данных. Обычно в системе одновременно существует множество экземпляров разнообразных типов данных. При этом абстрактный тип данных обычно играет две роли: - поставщика сервисов - пользователя сервисов В качестве поставщика сервисов абстрактный тип данных предоставляет свой интерфейс другим абстрактным типам данных, а в качестве клиента пользуется интерфейсами других типов. Идеи абстрактного типа данных, экземпляра абстрактного типа данных, интерфейса абстрактного типа данных и состояния экземпляра абстрактного типа данных реализованы в объектно-ориентированных языках программирования. Абстрактные типы данных реализованы в языках как классы, а объекты классов представляют экземпляры абстрактных типов данных. В программировании модуль определяется как программная единица, используемая исключительно через ее интерфейс. Объектно-ориентированное программирование связывает с интерфейсом не модуль, а объект. Программный код этого интерфейса относится к классу. После определения интерфейса класса (идентификации методов, которые можно вызывать для объектов этого класса) следует определить те действия, которые должны выполняться при вызове каждого из методов. Реализация метода - это процесс определения его действий. Реализация класса – набор реализаций всех методов класса. Методы вызываются для объектов и набор методов объекта определяет его поведение. Для изучения динамики системы (события, в ответ на которые вызываются методы) наряду с объектной моделью потребуется вычислительная модель с понятиями активных элементов (выполняющихся задач), которые в ходе своей работы вызывают методы объектов для выполнения необходимых вычислений. Эти активные элементы могут называться по - разному: процессы, потоки, задачи. Чтобы правильно работать с объектом активный элемент (процесс) должен следовать определенному протоколу (набору правил, определяющим порядок выполнения операций интерфейса этого объекта). Например, протокол для объекта - файла предполагает открытие файла, затем работу с ним (чтение или запись) и затем закрытие файла. Если процесс не будет следовать этому протоколу, то результатом будет ошибка. Таким же образом, попытка процесса выполнить метод выталкивания из пустого объекта-стека приведет к ошибке.
|
Последнее изменение этой страницы: 2019-03-22; Просмотров: 432; Нарушение авторского права страницы