Курынин Р.В., Машечкин И.В., Терехин А.Н. - Конспект лекций по ОС, страница 6
Описание файла
PDF-файл из архива "Курынин Р.В., Машечкин И.В., Терехин А.Н. - Конспект лекций по ОС", который расположен в категории "". Всё это находится в предмете "операционные системы" из 3 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 6 страницы из PDF
Одной из характеристик ресурсов вычислительной системы является ихконечность. То есть рано или поздно в системе возникает конкуренция за обладание ресурсоммежду его программными потребителями. При этом если речь идет о таком виртуальном ресурсе,как файловая система, то конечным является размер файловой системы на устройствах храненияданных, ограничения на предельное количество зарегистрированных в файловой системе файлов.Именно за эти параметры возможно возникновение конкуренции при использовании файловойсистемы. А теперь попытаемся вернуться к проблеме определения понятия операционнойсистемы. Операционная система — это комплекс программ, обеспечивающий управлениересурсами вычислительной системы. Это основная концепция данного понятия.
Позднее мы будемуточнять это определение, рассматривать отдельные функции ОС. В структурной организациивычислительной системы операционная система представляется уровнями управленияфизическими и виртуальными ресурсами.С точки зрения средств программирования, доступных на уровне управлениявиртуальными ресурсами, пользователю предоставляются система команд компьютера, а такжеинтерфейсы, обеспечивающие доступ к устройствам компьютера (как физическим, так ивиртуальным).
Доступная пользователю совокупность интерфейсов устройств компьютера можетвключать в себя как аппаратные интерфейсы доступа к устройствам, так и драйверы физическихи/или виртуальных устройств. Конкретный состав интерфейсов определяется свойствами16вычислительной системы, соответствующими, уровнями управления ресурсами, а такжепривилегиями пользователя (об этом подробнее мы будем говорить несколько позднее).1.1.5Системы программированияПрежде чем начать рассматривать следующий уровень структурной организациивычислительных систем, обратимся к последовательности этапов, традиционно связываемых сразработкой и внедрением программных систем. Совокупность этих этапов составляютжизненный цикл программы в вычислительной системе. Остановимся на основных задачах,решаемых на каждом из этапов жизненного цикла программы.
Следует отметить, что мы будемрассматривать традиционное, неформальное определение этапов жизненного цикла программы,которые сформировались естественным образом в процессе появления и развития вычислительнойтехники и программного обеспечения. На сегодняшний день существуют международныестандарты, которые формализуют понимание жизненного цикла программы (например, ISO/IEC12207: 1995 “Information Technology — Software Life Cycle Processes), но это стандарты,соответствующие исключительно сегодняшнему пониманию этого термина и связанные вомногом с существующими на сегодня технологиями программирования.Проектирование программной системы. На данном этапе принимаются решения,традиционно включающие в себя следующие шаги.− Исследование решаемой задачи, формирование концептуальных требований кразрабатываемой программной системе.− Определение характеристик объектной вычислительной системы — характеристикаппаратных и программных компонентов вычислительной системы, в рамках которой будетработать создаваемая программная система.− Построение моделей функционирования автоматизируемого объекта.− Определениехарактеристикинструментальнойвычислительнойсистемы —вычислительной системы, которая будет использоваться при создании программной системы.Зачастую характеристики объектной и инструментальной вычислительной системысовпадают: тип вычислительных систем, на которых в дальнейшем будет работатьпрограммная система, совпадает с типом вычислительной системы, которая использоваласьпри разработке.
Однако, в общем случае это не совсем так. Тип и качества инструментальныхвычислительных систем могут в корне отличаться от соответствующих характеристикобъектных ВС. Примером может служить программирование специализированныхвычислительных систем, предназначенных для управления технологическими процессами.Очевидно, что специализированная вычислительная система, которая управляетнавигационной системой космического спутника, не должна обладать возможностямиразработки на ней программного обеспечения. Специализация данной системы ориентированана решение конкретных, достаточно специальных задач (например, обработки сигналов,поступающих от радаров). Программное обеспечение для подобной вычислительной системыможет разрабатываться отдельно, на вычислительной системе, предназначенной для этихцелей.− Выбор основных алгоритмов, инструментальных средств, которые будут использованы припрограммировании, а также разработка архитектуры программного решения, включающейразбиение программного решения на основные модули и определение информационныхсвязей между модулями системы, а также правила взаимодействия с объектнойвычислительной системой.− Априорная оценка ожидаемых результатов.
Один из важнейших шагов проектированияпрограммной системы, заключающийся в предварительной оценке характеристикпроектируемого решения до начала его практической реализации. Для этих целейиспользуются различные методы моделирования. Наличие априорной оценки ожидаемыхрезультатов проектирования программной системы позволяет существенно повысить качество17программного продукта, который будет создан на основании результатов этапапроектирования, а также сократить затраты на его создание.Данная последовательность шагов является достаточно укрупненной, и не всегдапроектирование разбивается на линейную последовательность этих шагов. Часто проектированиепредставляет собою итерационный процесс, в котором возможны неоднократные возвраты к темили иным шагам (1.1.5).ИсследованиеХарактеристики объектнойвычислительной системыМодель функционированияХарактеристики инструментальнойвычислительной системыАлгоритмы,инструментальные средстваАприорная оценкаРис.
7. Этапы проектирования.Следующий этап жизненного цикла программы — кодирование (программнаяреализация, или реализация). Это этап построения кода программой системы на основанииспецификаций, полученных при ее проектировании. На данном этапе используютсяинструментальные средства программирования:− трансляторы языков программирования, средства поддержки и использования библиотекпрограмм, формирования модулей, которые могут исполняться в вычислительной системе;− средства управления разработкой программных продуктов коллективом разработчиков.Результатом этапа кодирования является реализация программной системы, которая можетпредставлятьсяв виде совокупности исходных модулей программы, объектных илибиблиотечных модулей, а также модулей исполняемого кода разрабатываемой программнойсистемы (1.1.5).
Большое значение для разработки больших, логически сложных программныхсистем имеют средства управления разработкой программных продуктов, которые позволяюторганизовать эффективную коллективную работу над реализацией программного проекта.Традиционно они включают в себя следующие компоненты:18МодулиСпецификацияИсполняемый кодКОДИРОВАНИЕИсходные текстыТрансляторыСредства дляиспользованиябиблиотекСредства дляразработкипрограммныхпродуктовБиблиотекиРис. 8. Кодирование.− средства автоматизации контроля использования межмодульных интерфейсов, которыеобеспечивают контроль правильности использования в программе спецификаций,регламентирующих межмодульные связи (количество, тип, права доступа к параметрам,обеспечивающим межмодульной взаимодействие в программе);− средства автоматизации получения объектных и исполняемых модулей программы,обеспечивающие автоматический контроль за соответствием исходных модулей объектным иисполняемым модулям (так, если в проекте появилась новая редакция некоторого исходногомодуля, то при запуске этого средства автоматически произойдет последовательностьдействий, обновляющих объектные и исполняемые модули, зависящие от данного исходногомодуля);− система поддержки версий — система, позволяющая фиксировать состояние разработкипрограммного проекта (создание версии проекта) и, при необходимости, возвращаться вразработке к той или иной версии проекта.Этап тестирования и отладки программной системы.
Можно представить программу ввиде некоторого автомата, получающего на входе исходные данные, а на выходе формирующийрезультат (1.1.5). Одной из задач проектирования программной системы является определение ееправил функционирования, точнее, правил, по которым для входных данных формируютсявыходные данные (или результаты). Тестирование программы — процесс проверки правильностифункционирования программы на заранее определенных наборах входных данных — тестах, илитестовых нагрузках. В общем случае, говорить о "правильности" программы вообще не совсемкорректно.
Мы можем говорить о правильности функционирования программы на некоторыхнаборах тестов. Таким образом, при тестировании выявляется работоспособность программы наданном тесте (или на наборе тестов) или имеющаяся в программе ошибка. Понятно, что для любойпрограммы абсолютно полным тестом является перебор всевозможных входных данныхпрограммы, но множество таких тестов настолько велико, что обработать их не представляетсявозможным. Поэтому актуальной задачей в тестировании является решение проблемыформирования минимального набора тестов или тестовых нагрузок, наиболее полно проверяющихфункциональность программы (тестовое покрытие).19Тест 1Тест 2Тест 3……Тест NИсходные данныеПрограммаРезультатРис. 9. Тестирование.Другим компонентом данного этапа является отладка. Отладка — это поиск, локализацияи исправление зафиксированных при тестировании или в процессе эксплуатации ошибок.