Операционные системы 2011, страница 6
Описание файла
PDF-файл из архива "Операционные системы 2011", который расположен в категории "". Всё это находится в предмете "операционные системы" из 3 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 6 страницы из PDF
Драйверы виртуальных устройств, которым затруднительно поставить всоответствие физическое устройство или группу физических устройствопределенного типа. Примером могут служить драйверы различных файловых14систем (файловая система — программный компонент вычислительной системы,обеспечивающий именованное хранение и доступ к данным).Основным результатом появления уровня управления виртуальными устройствамивычислительной системы стала многоуровневая унификация интерфейсов доступа кресурсам вычислительной системы, что существенно упростило проблемупрограммирование устройств компьютера, а также предоставило качественно новыевозможности в функционировании вычислительных систем и в создании их программногообеспечения.
Примером могут служить файловые системы, которые обеспечиваютпростые и надежные интерфейсы именованного хранения и использования данных,полностью скрывая от пользователя проблемы ее внутренней организации. К примеру,пользователь современной вычислительной системы может не только не знать, на какомвнешнем запоминающем устройстве размещены данные его файлов, он может не знать итерриториальное расположение и тип компьютера, на котором хранятся его данные.Существенное развитие получили средства управления виртуальными устройствами(ресурсами), которые обеспечивают контроль за созданием и использованием ресурсоввычислительной системы.Операции ввода/выводаopen(), close(), read(), write()«С:»HD IBM....«F:»Виртуальный дискдрайвервиртуальногодискадрайверHD IBMдрайвероперативнойпамятиФайловаясистемадрайверфайловойсистемыгруппа «B»группа «C»группа «А»УстройствоHDD IBMРис.
6.ОперативнаяпамятьСхема организации ввода-вывода в системе.Итак, мы рассмотрели два первых программных уровня структуры вычислительнойсистемы — это уровни, обеспечивающие функционирование ресурсов в вычислительнойсистеме. Под ресурсами вычислительной системы мы будем понимать совокупностьвсех физических и виртуальных ресурсов. Одной из характеристик ресурсоввычислительной системы является их конечность. То есть рано или поздно в системе15возникает конкуренция за обладание ресурсом между его программными потребителями.При этом если речь идет о таком виртуальном ресурсе, как файловая система, токонечным является размер файловой системы на устройствах хранения данных,ограничения на предельное количество зарегистрированных в файловой системе файлов.Именно за эти параметры возможно возникновение конкуренции при использованиифайловой системы.
А теперь попытаемся вернуться к проблеме определения понятияоперационной системы. Операционная система — это комплекс программ,обеспечивающий управление ресурсами вычислительной системы. Это основнаяконцепция данного понятия. Позднее мы будем уточнять это определение, рассматриватьотдельные функции ОС. В структурной организации вычислительной системыоперационная система представляется уровнями управления физическими ивиртуальными ресурсами.С точки зрения средств программирования, доступных на уровне управлениявиртуальными ресурсами, пользователю предоставляются система команд компьютера, атакже интерфейсы, обеспечивающие доступ к устройствам компьютера (как физическим,так и виртуальным).
Доступная пользователю совокупность интерфейсов устройствкомпьютера может включать в себя как аппаратные интерфейсы доступа к устройствам,так и драйверы физических и/или виртуальных устройств. Конкретный составинтерфейсов определяется свойствами вычислительной системы, соответствующими,уровнями управления ресурсами, а также привилегиями пользователя (об этом подробнеемы будем говорить несколько позднее).1.1.5 Системы программированияПрежде чем начать рассматривать следующий уровень структурной организациивычислительных систем, обратимся к последовательности этапов, традиционносвязываемых с разработкой и внедрением программных систем. Совокупность этих этаповсоставляют жизненный цикл программы в вычислительной системе.
Остановимся наосновных задачах, решаемых на каждом из этапов жизненного цикла программы. Следуетотметить, что мы будем рассматривать традиционное, неформальное определение этаповжизненного цикла программы, которые сформировались естественным образом впроцессе появления и развития вычислительной техники и программного обеспечения. Насегодняшний день существуют международные стандарты, которые формализуютпонимание жизненного цикла программы (например, ISO/IEC 12207: 1995 “InformationTechnology — Software Life Cycle Processes), но это стандарты, соответствующиеисключительно сегодняшнему пониманию этого термина и связанные во многом ссуществующими на сегодня технологиями программирования.Проектирование программной системы.
На данном этапе принимаются решения,традиционно включающие в себя следующие шаги.Исследование решаемой задачи, формирование концептуальных требований кразрабатываемой программной системе.Определение характеристик объектной вычислительной системы — характеристикаппаратных и программных компонентов вычислительной системы, в рамках которойбудет работать создаваемая программная система.Построение моделей функционирования автоматизируемого объекта.Определение характеристик инструментальной вычислительной системы —вычислительной системы, которая будет использоваться при создании программнойсистемы.
Зачастую характеристики объектной и инструментальной вычислительнойсистемы совпадают: тип вычислительных систем, на которых в дальнейшем будетработать программная система, совпадает с типом вычислительной системы, котораяиспользовалась при разработке. Однако, в общем случае это не совсем так. Тип икачества инструментальных вычислительных систем могут в корне отличаться от16соответствующих характеристик объектных ВС. Примером может служитьпрограммирование специализированных вычислительных систем, предназначенныхдля управления технологическими процессами.
Очевидно, что специализированнаявычислительная система, которая управляет навигационной системой космическогоспутника, не должна обладать возможностями разработки на ней программногообеспечения. Специализация данной системы ориентирована на решение конкретных,достаточно специальных задач (например, обработки сигналов, поступающих отрадаров). Программное обеспечение для подобной вычислительной системы можетразрабатываться отдельно, на вычислительной системе, предназначенной для этихцелей.Выбор основных алгоритмов, инструментальных средств, которые будутиспользованы при программировании, а также разработка архитектуры программногорешения, включающей разбиение программного решения на основные модули иопределение информационных связей между модулями системы, а также правилавзаимодействия с объектной вычислительной системой.Априорная оценка ожидаемых результатов.
Один из важнейших шаговпроектирования программной системы, заключающийся в предварительной оценкехарактеристик проектируемого решения до начала его практической реализации. Дляэтих целей используются различные методы моделирования. Наличие априорнойоценки ожидаемых результатов проектирования программной системы позволяетсущественно повысить качество программного продукта, который будет создан наосновании результатов этапа проектирования, а также сократить затраты на егосоздание.Данная последовательность шагов является достаточно укрупненной, и не всегдапроектирование разбивается на линейную последовательность этих шагов. Частопроектирование представляет собою итерационный процесс, в котором возможнынеоднократные возвраты к тем или иным шагам (Рис.
7).ИсследованиеХарактеристики объектнойвычислительной системыМодель функционированияХарактеристики инструментальнойвычислительной системыАлгоритмы,инструментальные средстваАприорная оценкаРис. 7.Этапы проектирования.Следующий этап жизненного цикла программы — кодирование (программнаяреализация, или реализация). Это этап построения кода программой системы на17основании спецификаций, полученных при ее проектировании. На данном этапеиспользуются инструментальные средства программирования:трансляторы языков программирования, средства поддержки и использованиябиблиотек программ, формирования модулей, которые могут исполняться ввычислительной системе;средствауправленияразработкойпрограммныхпродуктовколлективомразработчиков.Результатом этапа кодирования является реализация программной системы,которая может представляться в виде совокупности исходных модулей программы,объектных или библиотечных модулей, а также модулей исполняемого кодаразрабатываемой программной системы (Рис.
8). Большое значение для разработкибольших, логически сложных программных систем имеют средства управленияразработкой программных продуктов, которые позволяют организовать эффективнуюколлективную работу над реализацией программного проекта. Традиционно онивключают в себя следующие компоненты:МодулиСпецификацияИсполняемый кодКОДИРОВАНИЕИсходные текстыТрансляторыСредства дляиспользованиябиблиотекРис. 8.Средства дляразработкипрограммныхпродуктовБиблиотекиКодирование.средства автоматизации контроля использования межмодульных интерфейсов,которые обеспечивают контроль правильности использования в программеспецификаций, регламентирующих межмодульные связи (количество, тип, правадоступа к параметрам, обеспечивающим межмодульной взаимодействие в программе);средства автоматизации получения объектных и исполняемых модулей программы,обеспечивающие автоматический контроль за соответствием исходных модулейобъектным и исполняемым модулям (так, если в проекте появилась новая редакциянекоторого исходного модуля, то при запуске этого средства автоматическипроизойдет последовательность действий, обновляющих объектные и исполняемыемодули, зависящие от данного исходного модуля);система поддержки версий — система, позволяющая фиксировать состояниеразработки программного проекта (создание версии проекта) и, при необходимости,возвращаться в разработке к той или иной версии проекта.Этап тестирования и отладки программной системы.
Можно представитьпрограмму в виде некоторого автомата, получающего на входе исходные данные, а навыходе формирующий результат (Рис. 9). Одной из задач проектирования программнойсистемы является определение ее правил функционирования, точнее, правил, по которымдля входных данных формируются выходные данные (или результаты). Тестирование18программы — процесс проверки правильности функционирования программы на заранееопределенных наборах входных данных — тестах, или тестовых нагрузках.