ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
Государственное образовательное учреждение
высшего профессионального образования
«Московский государственный технический
университет «МАМИ»
Кафедра «Автоматика и процессы управления»
Е.Г. Мурачев, И.Ю. Иванов, Ю.А. Савостьянок
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
по выполнению курсовых работ
по дисциплине
«Системное программное обеспечение»
для студентов, обучающихся по специальностям 210100, 210200 и направлению 550200.
Одобрено методической комиссией
по общепрофессиональным дисциплинам
1-е издание
Москва
2010
Разработано в соответствии с Государственным образовательном стандартом ВПО 2000 г. для направления (специальности) подготовки _______ на основе примерной (рабочей) программы дисциплины «Системное программное обеспечение»
Рецензенты: профессор кафедры «Автотракторное электрооборудование» МГТУ «МАМИ» Р.А. Малеев
профессор кафедры «Автомобили» им. Е.А. Чудакова
В.В. Селифонов
Работа подготовлена на кафедре «Автоматика и процессы управления»
Исследование систем автоматического регулирования: методические указания / Е.Г. Мурачев, И.Ю. Иванов, Ю.А.Савостьянок. – 1-е изд. – М. : МГТУ «МАМИ», 2009. – 39 с.
В методических указаниях рассматриваются общие принципы построения операционных систем, построение и использование библиотек системных программ в среде операционной системы Linux, принципы построения программ с помощью интерпретатора PostScript, а также с помощью алгоритмического языка С++, способы хранения и вызов системных программ.
© Е.Г. Мурачев, 2009
© И.Ю. Иванов, 2009
© Ю.А.Савостьянок, 2009
© МГТУ «МАМИ», 2009
Введение
Курсовая работа по дисциплине «Системное программное обеспечение» выполняется студентами специальности 210100, 210200 и направления 550200 в 6 семестре. В рамках курсовой работы должно быть разработано приложение для операционной системы UNIX, при выполнении курсовой работы используются знания, полученные студентами при изучении дисциплины «Программирование и основы алгоритмизации», а также дисциплины «Информатика».
СОДЕРЖАНИЕ
Введение 3
Содержание 4
1 Цель и задачи курсового проектирования 5
2 Организация и последовательность выполнения
курсовой работы 6
2.1 Задание на курсовую работу 6
2.2 Объем и содержание курсовой работы 6
2.3 Последовательность выполнения работы 7
3 Варианты заданий 8
4 Информация для выполнения курсовой работы 12
4.1 Демоны 12
4.2 Язык PostScript 14
4.3 Командный интерпретатор 26
Приложения 32
Литература 37
1 ЦЕЛЬ И ЗАДАЧИ КУРСОВОГО ПРОЕКТИРОВАНИЯ
1.1 Целью курсового проектирования является приобретение практических навыков по разработке структуры приложения, алгоритмов и программ для их реализации с использованием языков C++ и PostScript для операционной системы UNIX/Linux.
1.2 Задачей курсовой работы является разработка приложения по
заданным исходным данным:
- разработка программы-демона;
- построение грамматики для заданного языка и автомата для его
распознавания
- построение лексического анализатора;
- разработка программы обработки запроса ядром UNIX для
символьного устройства;
- разработка программы обработки запроса ядром UNIX для блочного
устройства;
- разработка программы вывода графиков на языке PostScript;
- разработка программ, использующих системный вызов.
2. ОРГАНИЗАЦИЯ И ПОСЛЕДОВАТЕЛЬНОСТЬ ВЫПОЛНЕНИЯ КУРСОВОЙ РАБОТЫ
Курсовое проектирование является формой самостоятельной работы студента и выполняется по индивидуальному заданию.
Задание на курсовую работу выдается преподавателем на первом занятии по курсу СПО 6 семестра, защита проводится в конце того же семестра перед экзаменом. На защите демонстрируется выполнение программы с соответствующими пояснениями. В ходе выполнения курсовой работы студент консультируется с руководителем, назначенным кафедрой.
За правильность проектных решений, качество оформления работы, своевременность выполнения отдельных этапов и представления к защите отвечает студент.
2.1 Задание на курсовую работу
Задание на курсовую работу выбирается студентом по номеру группы и порядковому номеру студента в журнале.
2.2 Объем и содержание курсовой работы
Работа состоит из расчетно-пояснительной записки (РПЗ) и программы, представленной на CD-диске.
Техническое задание включает общие и специальные требования к программе.
Объем пояснительной записки составляет 30-40 машинописных страниц (формат А4), РПЗ должна быть написана четко и кратко, содержать пояснения к разработанному приложению, обоснование принятых решений. РПЗ должна включать следующие разделы:
1) титульный лист (приложение А),
2) бланк задания, подписанный преподавателем и студентом (приложение Б),
3) содержание,
4) перечень условных обозначений и сокращений в алфавитном порядке в виде списка, в котором слева приводится сокращение, справа – его расшифровка,
5) основная часть РПЗ:
Краткие теоретические сведения: анализ существующих программ подобного класса; особенности создания приложений для ОС UNIX/Linux;
Разработка структуры приложения;
Разработка алгоритма решения задачи;
Разработка программы;
Проектирование интерфейса приложения (если это предусмотрено заданием на КР);
Заключение;
Список использованных источников;
Приложения:
- спецификация программного обеспечения (приложение В),
- текст программы (приложение Г),
- руководство пользователя (системного программиста) (приложение Д).
2.3 Последовательность выполнения работы
Курсовая работа разрабатывается в последовательности, соответствующей содержанию РПЗ (п. 2.2).
Расчетно-пояснительная записка и графический материал оформляются в соответствии с требованиями ЕСКД и ЕСПД (Единая система конструкторской документации, Единая система программной документации).
Подготовленная и оформленная работа, прошедшая экспертизу на выполнение требований ЕСКД и ЕСПД представляется преподавателю не позднее, чем за неделю до защиты.
Защита работы происходит на 16 или 17 неделе семестра.
3 ВАРИАНТЫ ЗАДАНИЙ
Вариант 1
Написать и отладить программу на языке С++, использующую системные вызовы для управления файлами в среде UNIX (тип файла - обычный, каталоги).
Вариант 2
Написать и отладить программу на языке С++, использующую системные вызовы для управления файлами в среде UNIX (тип файла - специальные, FIFO).
Вариант 3
Разработать на языке PostScript программу вывода графика функции f(), которая строит n периодов, соединяя точки, расположенные с интервалом m°,
отрезками прямых. Размер поля рисования 10x4 см, график расположен в
центре листа и обведен рамкой.
а) f= sin(2а+х), п=4 m=5°
б) f=cos(x), п=3, т=10°
в) f= sin(x)/2, n= 4; т=8°
Вариант 4
Написать процедуру на языке PostScript, которая вдоль ранее созданного графического пути строит штрих - пунктирную линию, состоящую из:
1) прямоугольных штрихов со срезанными краями и кружков между ними;
2) двукратное проведение штриховой линии с разными параметрами,..
Вариант 5
Разработать на языке PostScript программу, позволяющую строить различные графические изображения с использованием функций cos() и sin(), не используя при этом встроенные функции языка. Разработка данной программы предполагает вывод изображений функций cos () и sin() одновременно в различных проекциях и пространствах (двумерном, трехмерном), различным цветом, со смещенной системой координат на 90°. Изображения строятся по точкам, расположенным друг от друга с интервалом 5°, 10°, 36°, 126°, 181°, 359°. Для работы с цветом использовать процедуру изменения цвета изображений (по RGB- матрице).
Вариант 6
Написать на языке PostScript файл для печати рекурсивных геометрических объектов:
а) ковра Серпинского;
б) кривых Гильберта;
в) кривых Коха;
г) кривых Пеано.
Вариант 7
Разработать на языке PostScript программу построения и вывода на печать графика заданной функции:
а) f=tg(l+2a)/(a+b);
б) f=exp(3a+2);
в) f=log(1+a/4)/3
Вариант 8
Используя системный вызов stat, напишите программу, определяющую тип файла: обычный файл, каталог, устройство, FIFO-файл.
Вариант 9
Напишите программу удаления файлов и каталогов, заданных в argv. Делайте системный вызов stat, чтобы определить тип файла (файл/каталог). Программа должна отказываться удалять файлы устройств. Для удаления пустого каталога (не содержащего иных имен, кроме "." и "..") следует использовать системный вызов
rmdir(имя_каталога);(если каталог не пуст - errno получит значение EEXIST); а для удаления обычных файлов (не каталогов)
unlink(имя_файла);Программа должна запрашивать подтверждение на удаление каждого файла, выдавая его имя, тип, размер в килобайтах и вопрос "удалить ?".
Вариант 10
Напишите функцию печати текущего времени в формате ЧЧ:ММ:СС ДД-МЕС-ГГ. Используйте системный вызов time() и функцию localtime(). Рекомендуется использование стандартной функции ctime().
Вариант 11
Структура stat, заполняемая системным вызовом stat(), кроме прочих полей содержит поля типа time_t st_ctime, st_mtime и st_atime - время последнего изменения содержимого I-узла файла, время последнего изменения файла и время последнего доступа к файлу.