
|
|
Главная \ Методичні вказівки \ Системное программное обеспечение
Системное программное обеспечение« Назад
Системное программное обеспечение 28.07.2015 04:30
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Государственное образовательное учреждение высшего профессионального образования "Ижевский государственный технический университет"
МЕТОДИЧЕСКИЕ УКАЗАНИЯ для выполнения курсовой работы по дисциплине на тему
для студентов направления 230100 Форма обучения очная
Ижевск 2008 МЕТОДИЧЕСКИЕ УКАЗАНИЯ для выполнения курсовой работы по дисциплине на тему для студентов специальности направления 230100 «Информатика и вычислительная техника» Форма обучения очная
Кафедра "Программное обеспечение"
Составитель: Лусников Р.Г., к.т.н., доцент.
Методические указания составлены на основании государственного Протокол от " " 200 г. № .
Методические указания предназначены для использования студентами направления 230100 Информатика и вычислительная техника.
СОДЕРЖАНИЕ
ВВЕДЕНИЕ. 4 1. Сведения для выполнения работы.. 4 2. Организация проведения курсовой работы.. 9 2.1. Темы курсовых работ. 9 2.2. Порядок выполнения курсовой работы.. 10 2.3. Сроки выполнения отдельных этапов. 10 2.4. Порядок защиты курсовой работы.. 11 2.5. Правила оформления технического задания. 11 2.6. Содержание пояснительной записки. 12 СПИСОК ЛИТЕРАТУРЫ.. 14 Приложение 1. Пример технического задания................................................... 15 Приложение 2. Пример руководства программиста.......................................... 17 Приложение 3. Пример содержания пояснительной записки............................ 19
ВведениеСистемное программное обеспечение (СПО) часто создается для решения низкоуровневых задач, таких как управляющие программы (драйвера), системные утилиты низкого уровня, например дефрагментаторы, и т.д. Само СПО обычно пишется с использованием языков Си или Ассемблера, либо их комбинации. Важной задачей, даже в современном программировании, является знание аппаратной составляющей компьютера: набора регистров процессора и команд, взаимодействия с периферийным оборудованием. Одним из предметов СПО остается восполнение «пробелов» в аппаратной платформе вычислительных устройств, когда для расширения возможностей микропроцессора, часть его команд фактически выполняется не им самим, а с помощью программной эмуляции. Это относилось к процессорам Intel 8086 – 80386, это зачастую относится и существующим low-end платформам для недорогих устройств, например для мобильных телефонов. В рамках данной работы студентам необходимо изучить основы работы математического сопроцессора Intel 80x86 (FPU), набор его команд и регистров, и затем на этой базе создать программную эмуляцию FPU: набор регистров и заданную команду. Для выполнения курсовой работы предполагается использование среды Microsoft Visual C++ с ассемблерными вставками. 1. Сведения для выполнения работыСреда эмулируемого математического сопроцессора включает в себя следующие блоки данных:
Регистровый стек математического сопроцессора включает в себя 8 регистров, каждый длиной 80 бит, для размещения чисел с плавающей точкой во временном формате сопроцессора. Структура регистрового стека математического сопроцессора изображена на рис. 1.
Числа с плавающей точкой во временном формате представляются следующим образом: 1) с 0 по 63 бит: мантисса, целая часть которой в нормализованном виде равна 1 (всегда записывается в прямом коде); 2) с 64 по 78 бит: двоичный порядок, записываемый со смещением 16383. 3) 79 бит: бит знака числа. Если он равен 0 – число положительное, если бит равен 1 – число отрицательное. ┌───────────┐ │ R0 ║ ├───────────║ │ R1 ║ ├───────────║ │ R2 ║ ├───────────║ │ R3 ║ ├───────────║ │ R4 ║ ├───────────║ │ R5 ║ ├───────────║ │ R6 ║ ├───────────║ │ R7 ║ └═══════════╝
Рис.1. Структура регистрового стека
┌──┬─────────┬───────────────────────────┐ биты: │79│78 ... 64│63 ... 0║ └════════════════════════════════════════╝ знак порядок мантисса
Рис. 2. Временный формат вещественного числа
В памяти числа могут также храниться в коротком (32 бита) и длинном (64 бита) вещественных форматах. В этих форматах целая часть мантиссы не хранится, а всегда подразумевается равной 1.
┌──┬─────────┬───────────────────────────┐ биты: │31│30 ... 23│22 ... 0║ └════════════════════════════════════════╝ знак порядок мантисса Рис. 3. Короткий формат вещественного числа
┌──┬─────────┬───────────────────────────┐ биты: │63│62 ... 52│51 ... 0║ └════════════════════════════════════════╝ знак порядок мантисса Рис. 4. Длинный формат вещественного числа
FPU выполняет все вычисления в 80-битном расширенном формате, а 32- и 64-битные числа используются для обмена данными с основным процессором и памятью. Кроме обычных чисел формат IEEE предусматривает несколько специальных случаев, которые могут получаться в результате математических операций и над которыми также можно выполнять некоторые операции:
Целочисленные типы данных включают в себя целое слово (16 бит), короткое целое (32 бита), длинное целое (64 бита) и упакованное десятичное (BCD, 80 бит). BCD содержит в себе 18 десятичных цифр, каждая из которых кодируется четырьмя битами. Старший байт (в старшем бите) При загрузке в FPU все эти типы преобразуются в формат временного вещественного числа. Рис. 5. Формат упакованного десятичного числа
Слово состояния хранит информацию о текущем состоянии математического сопроцессора и содержит следующие данные:
1) C0,C1,C2,C3 – биты признаков (используются при сравнении чисел); 2) TOP – биты содержащие номер физического регистра стека (0..7), который в данный момент является вершиной; 3) биты особых ситуаций:
4) ES – бит суммарной ошибки; 5) SF – бит ошибки работы со стеком; 6) B – бит занятости (предусмотрен для совместимости с сопроцессором 8087).
Биты особых ситуаций устанавливаются в состояние 1, если эта ситуация возникла, иначе они содержат 0.
15 7 0 ┌─┬──┬─┬─┬─┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┐ │B│C3│T O P│C2│C1│ES│SF│PE│UE│OE│ZE│DE│IE║ └════════════════════════════════════════╝
Рис. 3. Структура слова состояния
Слово управления содержит данные, обеспечивающие контроль над работой математического сопроцессора. Оно включает в себя: 1) PC – биты управления округлением; 2) RC – биты управления точностью; 3) PM,UM,OM,ZM,DM,IM – маски особых ситуаций:
Биты RC определяют способ округления результатов команд FPU до заданной точности (табл. 1). Таблица 1. Способы округления
Биты PC определяют точность результатов команд FADD, FSUB, FSUBR, FMUL, FDIV, FDIVR и FSQRT (табл. 2). Таблица 2. Точность результатов
Биты 0 – 5 регистра CR маскируют соответствующие исключения — если маскирующий бит установлен, исключения не происходит, а результат вызвавшей его команды определяется правилами для каждого исключения специально.
15 7 0 ┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬──┬──┬──┬──┬──┬──┐ │░│░│░│░│R│C│P│C│░│░│PM│UM│OM│ZM│DM│IM║ └═════════════════════════════════════╝
Рис. 4. Структура слова управления
Слово признаков (тегов) математического сопроцессора содержит информацию о данных, находящихся в каждом регистре стека. Информация о данных кодируется следующим образом:
15 14 13 12 1 0 ┌───────────┬───────────┬─────┬───────────┐ │ признак 7 │ признак 6 │ ... │ признак 0 │ │ регистра │ регистра │ ... │ регистра │ └───────────┴───────────┴─────┴───────────┘
Рис. 5. Структура слова признаков 2. Организация проведения курсовой работы1.1. 2.1. Темы курсовых работТемы курсовых работ выбираются таким образом, чтобы при выполнении работы студенты могли приобрести практические навыки проектирования программных продуктов среднего уровня сложности. В связи с этим желательно наличие у разрабатываемого продукта развитого пользовательского интерфейса и нежелательно использование сложных специальных средств разработки, например, баз данных. Объем курсовой работы сильно зависит от сложности задачи: чем сложнее задача, тем меньше может быть объем. Средний объем составляет примерно 1-2 тыс. операторов C или С++. (Среду программирования студент выбирает самостоятельно, исходя из выбранной технологии программирования, решаемой задачи, а также личных предпочтений). Примерные темы курсовых работ (перед началом работы необходимо согласовать с преподавателем):
2.2. Порядок выполнения курсовой работыВ процессе выполнения курсовой работы студенты должны: 1) разработать развернутое техническое задание на программный продукт; 2) выполнить анализ задания, выбрать технологию проектирования и разработать проект программного продукта (логическую и физическую модели); 3) выбрать структуры данных для реализации предметной области программного продукта; 4) выбрать стратегию тестирования и разработать тесты; 5) выбрать язык и среду программирования, наиболее удовлетворяющий проведенным разработкам; 6) разработать алгоритмы и реализовать их в выбранной среде разработки; 7) выполнить тестирование и отладку; 8) разработать необходимую документацию, указанную в техническом задании. 2.3. Сроки выполнения отдельных этаповВыполнение курсовой работы осуществляется в несколько этапов. В конце каждого этапа студент демонстрирует преподавателю результаты выполнения работы в виде фрагментов расчетно-пояснительной записки и соответствующих текстовых или графических материалов, иллюстрирующих разработку. Основные этапы курсовой работы, сроки их выполнения, представляемые преподавателю результаты приведены в табл. 3.
Таблица 1. Этапы выполнения курсовой работы
2.4. Порядок защиты курсовой работыНа защиту студент предоставляет: Развернутое техническое задание. Программный продукт. Расчетно-пояснительную записку на 20-25 страницах в рукописном или отпечатанном виде (шрифт 12 через один интервал), содержащую описание разработки и соответствующие иллюстрации. Программную документацию, указанную в разделе «Требования к программной документации» технического задания. Программный продукт студент предварительно демонстрирует и сдает руководителю, который дает отзыв на работу и допускает студента к защите. В процессе демонстрации программного продукта проверяется:
На защите студент коротко (3-5 мин.) докладывает об основных проектных решениях, принятых в процессе разработки, и отвечает на вопросы членов комиссии. Оценка за курсовую работу выставляется с учетом:
2.5. Правила оформления технического заданияТехническое задание должно быть составлено в соответствии с ГОСТ 19.201-78 и включать следующие разделы (количество разделов сокращено относительно ГОСТ): 1. Введение. Во введении необходимо кратко обосновать актуальность разработки. В нем также указывается наименование продукта и дается краткая характеристика области применения программы. 2. Назначение разработки. В данном разделе указывается, для чего предназначена данная разработка (более подробно, чем во введении). 3. Требования к программе. Требования к программному продукту подразделяются на группы и указываются в соответствующих разделах: 3.1.Требования к функциональным характеристикам (составу выполняемых программой функций, характеристикам и форме представления входных и выходных данных). 3.2.Требования к надежности (контроль входной и выходной информации, создание резервных копий промежуточных результатов и т. п.). 3.3.Требования к составу и параметрам технических средств (необходимые параметры, используемых ЭВМ - тип микропроцессора, объем памяти, наличие внешних устройств, например, мыши). 3.4.Требования к информационной и программной совместимости (при необходимости здесь задаются методы решения, используемые языки программирования, а также используемая операционная система и другие системные и пользовательские программные средства).
В данном разделе указывается необходимость наличия руководства программиста, руководства пользователя и руководства системного программиста. Техническое задание оформляется в соответствии с образцом, приведенным в Приложении 1, и утверждается (подписывается) руководителем курсовой работы. 2.6. Содержание пояснительной запискиПояснительная записка должна содержать обоснование основных проектных решений, принятых студентом на каждом этапе разработки. Решения должны приниматься исходя из особенностей проектируемого продукта и специфики области его применения. Не должно быть обоснований типа «удобнее», «целесообразнее» и т. п. Необходимо пояснить, чем удобнее, почему целесообразно. По возможности необходимо четко формулировать основания для принятия того или иного решения. 1. Введение. В этом разделе обосновывается актуальность разработки, по возможности, анализируются существующие аналоги и проводится их сравнение с разрабатываемой системой.
Структурная схема - схема, отражающая состав и взаимодействие подпрограммам разрабатываемого продукта. Функциональная схема - схема взаимодействия частей системы с описанием информационных потоков, состава данных в потоках и указанием используемых файлов и устройств. Большое значение при разработке структуры программного продукта имеет выбор алгоритмов предметной области и структур данных. Для заданий, при выполнении которых приходится использовать сложные математические методы, и заданий, при реализации которых студентом предлагался собственные оригинальные алгоритмы, обязательным является присутствие в записке обоснование выбора метода (по вычислительной сложности или другим соображениям). В этом же разделе приводятся и сами алгоритмы (в виде схем или псевдокодов), и пояснения к ним. Выбор структур данных осуществляется на основе анализа основных процессов обработки информации (статические или динамические, массивы или другие структуры). При необходимости создаются новые структуры данных или модифицируются уже известные. Обычно при выборе структур учитываются следующие параметры: объем и типы данных, а также основные операции над данными (хранение, поиск, сортировка) и частота обращения к ним в процессе выполнения программы. Если возможны варианты, то производится их оценка по объему требуемой памяти и вычислительной сложности выполнения основных операций. 4. Описание реализации программного продукта. В данном разделе приводятся обобщенные алгоритмы и описывается межпрограммный интерфейс подпрограмм. Всего в записке приводятся три-четыре из наиболее интересных алгоритмов, включая алгоритм основной программы. Примечание. Каждый алгоритм должен быть представлен:
Описание каждого алгоритма должно включать:
Тексты описания алгоритмов должны быть структурными, предложения короткими. Описание алгоритма должно отражать суть процесса обработки. В завершении раздела реализации описывается декомпозиция разрабатываемой программы на модули и приводится схема взаимодействия модулей. 6. Подготовка тестовых данных. В этом разделевыбираетсястратегия и методы тестирования. В соответствии с выбранной стратегией и методами строятся примеры тестов (обязательно с предполагаемыми результатами тестирования). Данные тестов целесообразно представить в виде таблиц. 7. Заключение. Раздел содержит выводы по разработанному продукту, рекомендации по его использованию и возможные направления дальнейшего усовершенствования . Примечание. В зависимости от выбранной технологии и особенностей разрабатываемого продукта могут иметь место отклонения от рекомендуемой структуры записки. Разделы записки могут объединяться, опускаться, меняться местами. Возможно добавление новых разделов, если этого требует логика изложения. Все интересные материалы, выходящие за пределы рекомендуемого объема записки выносятся в приложение. Объем приложения не лимитируется.
Список литературы
ПРИЛОЖЕНИЕ 1 Пример технического задания 1. Введение Напряженный график контрольных мероприятий учебного семестра требует от студента регулярной ежедневной работы. Наличие контроля выполнения графика со стороны деканата и куратора позволяет существенно повысить успеваемость студентов. Автоматизированная система учета текущей успеваемости позволить улучшить качество контроля успеваемости со стороны куратора и деканата, так как позволит получать сведения о динамике работы каждого студента. 2. Назначение Система предназначена для хранения и обработки сведений о текущей успеваемости студентов учебной группы. Система может быть использована при проведении смотров и для оценки текущей успеваемости каждого студента и группы в целом. 3. Требования к программе или программному изделию 3.1. Требования к функциональным характеристикам Система должна обеспечивать возможность выполнения следующих функций: инициализацию системы (ввод списка группы и т.п.); ввод и коррекцию текущей информации о ходе выполнения учебного графика конкретным студентом; хранение информации в течение длительного времени; получение сведений о текущем состоянии выполнения учебного графика студентами в следующих вариантах: а) процент успеваемости по конкретному студенту по всем предметам; б) процент успеваемости по всем студентам по конкретному заданию; в) проценты успеваемости по всем студентам и группе в целом по всем предметам; г) список студентов, не сдавших конкретное задание; д) процент успеваемости каждого студента и группы по конкретному предмету. Исходные данные: ¨ список студентов группы; ¨ перечень предметов, перечень заданий по каждому предмету и сроки их сдачи; ¨ текущие данные (еженедельно): процент выполнения каждым студентом каждого задания учебного графика. 3.2. Требования к надежности 1. Программный продукт должен соответствовать современному уровню требований к разработке программного обеспечения (структурному и объектно-ориентированному подходам). 2. Предусмотреть контроль вводимой информации. 3. Предусмотреть блокировку некорректных действий пользователя при работе с системой. 4. Обеспечить сохранение результатов предыдущей корректировки файла данных в файле с расширением .bak. 3.3. Требования к составу и параметрам технических средств Система должна работать на IBM-совместимых персональных компьютерах. Минимальная конфигурация: ¨ тип процессора Intel 586 и выше ¨ объем ОЗУ 32 Мб и более ¨ тип монитора VGA и выше ¨ тип манипулятора мышь 3.4. Требования к информационной и программной совместимости Система должна работать под управлением Windows NT и выше. 4. Требования к программной документации ¨ Разрабатываемые программные модули должны быть самодокументированны, т.е. тексты программ должны содержать все необходимые комментарии. ¨ В состав сопровождающей документации должны входить: а) расчетно-пояснительная записка; б) руководство программиста. ПРИЛОЖЕНИЕ 2 Пример руководства программиста П3.1. Назначение программы Программа MAIN.EXE предназначена для тестирования разработанной процедуры _FCHS эмуляции команды сопроцессора FCHS. Программа написана на языке программирования Borland C++ 5.01 с использованием подпрограмм, написанных на языке программирования Turbo Assembler версия 3.3.
П3.2. Условия применения программы Данная программа реализована для работы под операционной системой MS-DOS v.3.3 и выше или совместимой с ней (PC-DOS, DR-DOS и т.д.). Для компоновки исполнительного файла должны быть в наличии трансляторы языка ассемблера TASM.EXE версии 3.0, компилятор языка Си BCC.EXE версии 3.1 и выше. Также обязательно наличие компоновщика программ TLINK.EXE версии 4.0 и выше. Для функционирования данной программы может быть использован IBM-совместимый персональный компьютер с процессором Intel 386 или выше.
П3.3. Характеристика программы Объем исполнимого файла программы (MAIN.EXE) 35Kb. Так как скорость работы вычислительной части программы пренебрежимо мала, то скорость работы программы зависит от скорости ввода/вывода данных. Программа "Тестирование процедуры программной эмуляции команды FCHS устройства FPU" представляет собой пакет программ, состоящий из пяти файлов: GLOBAL.ASM - содержит объявления глобальных переменных системы "Эмулятор устройства FPU"; FCHS.ASM - содержит процедуру эмуляции команды FCHS (_FCHS); MAIN.C - содержит функции MAIN и viewstat для вызова процедуры FCHS и осуществляет ввод и вывод информации на экран и диалог с пользователем, а также отображение состояния системы эмуляции устройства FPU с помощью вызова функции viewstat. TEST.ASM – содержит процедуру _TEST тестирования подпрограммы эмуляции FCHS. HEAD.H - содержит текст макроса FCHS.
П3.4. Обращение к программе Для компоновки исполнительного модуля необходимо выполнить следующие действия: tasm global.asm tasm fchs.asm tasm test.asm tcc -c -I<drive>:<path>\include test tcc [-f| -f87] -L<drive>:<path>\lib test.obj global.obj fchs.obj
П3.5. Сообщения Сообщения, а также действия пользователя при их появлении.
ПРИЛОЖЕНИЕ 3 Пример содержания пояснительной записки [Аннотация....(в содержании не указывается.)........................................ 2] [Содержание... ....(в содержании не указывается).................................. 3] Введение................................................................................................... 4 1. Анализ задания и выбор технологии, языка и среды разработки.... 6 2. Определение структуры программного продукта............................. 7 2.1. Анализ процесса обработки информации и выбор структур данных для ее хранения............................................................... 7 2.2. Выбор методов решения задачи и разработка основных алгоритмов предметной области................................................. 9 2.3. Построение структурной схемы программного продукта....... 11 3. Разработка основных алгоритмов программы.................................. 19 4. Выбор стратегии тестирования и разработка тестов........................ 21 Заключение............................................................................................... 24 Литература............................................................................................... 25 Приложение 1. Техническое задание...................................................... 26 Приложение 2. Руководство программиста........................................... 27
КомментарииКомментариев пока нет Пожалуйста, авторизуйтесь, чтобы оставить комментарий. |