Республики Беларусь «24»

Вид материалаПояснительная записка

Содержание


Системное программирование
К.В. Плюгачев
Рекомендована к утверждению в качестве типовой
Пояснительная записка
Содержание дисциплины
Тема 1. СРЕДСТВА РЕАЛИЗАЦИИ ПРОГРАММНЫХ СИСТЕМ
Тема 2. АССЕМБЛЕР В СИСТЕМНОМ ПРОГРАММИРОВАНИИ
Тема 3. ЯЗЫК СИСТЕМНОГО ПРОГРАММИРОВАНИЯ C
Тема 4. ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНЫХ СИСТЕМ
Тема 5. ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ СИСТЕМНОГО ПРОГРАММИРОВАНИЯ
Примерный перечень курсовых работ
Примерный перечень компьютерных программ
Подобный материал:
1   ...   11   12   13   14   15   16   17   18   19




Утверждаю

Председатель УМО вузов Республики Беларусь по образованию в области информатики и радиоэлектроники

« 03 » июня 2003 г.


Регистрационный № ТД-53-023/тип.


СИСТЕМНОЕ ПРОГРАММИРОВАНИЕ



Учебная программа для высших учебных заведений

по специальности 1-53 01 02 Автоматизированные

системы обработки информации


Согласовано:

Учебно-методическое управление БГУИР

« 28 » мая 2003 г.


Составители:

М.П. Ревотюк, доцент кафедры информационных технологий автоматизированных систем Учреждения образования «Белорусский государственный университет информатики и радиоэлектроники», кандидат технических наук


Рецензенты:

Б.М. Киселев, доцент кафедры информационных процессов и технологий Учреждения образования «Белорусский государственный аграрный технический университет», кандидат технических наук;

К.В. Плюгачев, заведующий кафедрой робототехнических систем Учреждения образования «Белорусская государственная политехническая академия», доцент, кандидат технических наук


Рекомендована к утверждению в качестве типовой:

Кафедрой информационных технологий автоматизированных систем Учреждения образования «Белорусский государственный университет информатики и радиоэлектроники» (протокол № 11 от 04.02.2002 г.);


Научно-методическим советом по направлению 1-53 Автоматизация УМО вузов Республики Беларусь по образованию в области информатики и радиоэлектроники (протокол № 1 от 11.02.2002 г.)


Разработана на основании Образовательного стандарта РД РБ 02100.5.111-98


Ответственный за редакцию: Т.А. Лейко

Ответственный за выпуск: Ц.С. Шикова


ПОЯСНИТЕЛЬНАЯ ЗАПИСКА



Типовая программа «Системное программирование» разработана в соответствии с Образовательным стандартом РД РБ 02100.5.111-98 по специальности 1-53 01 02 Автоматизированные системы обработки информации высших учебных заведений.

Целью преподавания дисциплины «Системное программирование» является изучение теоретических основ и приобретение практических навыков проектирования, реализации и сопровождения системных программных средств современных ЭВМ.

В результате освоения материала курса студент должен:

знать методы и средства проектирования программных систем, компоненты системного программного обеспечения и технологию их разработки;

уметь ставить и решать задачи, возникающие в процессе проектирования, тестирования, отладки, испытаний и эксплуатации программных систем, обеспечивать заданные характеристики программ, свободно владеть языком системного программирования С.

Базовыми дисциплинами для изучения курса «Системное программирование» являются «Программирование», «Операционные системы».

Знание и навыки, полученные студентами по курсу «Системное программирование», используются в дисциплинах «Объектно-ориентированное программирование», «Микропроцессоры и микрокомпьютеры» и «Аппаратное и программное обеспечение сетей», а также при курсовом и дипломном проектировании.

Программа рассчитана на объем 136 учебных часов. Примерное распределение учебных часов по видам занятий: лекций – 68 часов, лабораторных работ – 68 часов. По дисциплине предусматривается выполнение курсовой работы.


СОДЕРЖАНИЕ ДИСЦИПЛИНЫ

ВВЕДЕНИЕ


Задачи прикладного и системного программирования. Использование машинно-ориентированных и универсальных языков программирования в системном программировании. Обзор компонент системного программного обеспечения.

Тема 1. СРЕДСТВА РЕАЛИЗАЦИИ ПРОГРАММНЫХ СИСТЕМ


Архитектура и логическое устройство ЭВМ с точки зрения программиста. Характеристика памяти и схем адресации. Форматы данных и машинных инструкций. Система прерываний. Система команд ЭВМ. Пример характеристики вычислительной среды ПЭВМ класса IBM PC XT/AT.

Тема 2. АССЕМБЛЕР В СИСТЕМНОМ ПРОГРАММИРОВАНИИ


Понятие ассемблера. Место ассемблера в системном программировании. Команды и директивы языка ассемблера. Ассемблирование, редактирование связей и выполнение программ. Макросредства языка ассемблера. Макрокоманды и макроопределения. Способы построения подпрограмм. Методы передачи параметров и данных между подпрограммами. Рекурсивный вызов подпрограмм. Связь с примитивами операционной системы.

Тема 3. ЯЗЫК СИСТЕМНОГО ПРОГРАММИРОВАНИЯ C


Характеристика языка С и областей его применения. Основные сведения о синтаксисе записи исходного текста. Комментарии. Основные операционные объекты языка С. Описание данных и указателей. Константы. Размещение объектов в памяти. Структуры данных. Массивы, строки, структуры и объединения. Перечислимые типы. Определение производных типов.

Выражения и операции, приоритеты выполнения операций. Операторы присваивания, условные операторы, оператор-переключатель, операторы цикла, управляющие операторы.

Функции. Определения функций, их вызов. Передача результатов выполнения функций через параметры. Классы памяти и область действия объектов программы. Автоматическая, статическая и управляемая память. Псевдорегистры. Инициализация объектов программы.

Препроцессор языка С. Возможности препроцессора языка: лексемное замещение идентификаторов, макрозамещение, включение файлов исходного текста, условная компиляция, изменение нумерации строк и текущего имени файла. Конкатенация лексем. Способы вызова препроцессора.

Способы модульного программирования. Характеристика программ на основе функций и макрокоманд. Модули-файлы и модули-функции в языке С.

Обзор структуры библиотек стандартных функций. Библиотечные функции ввода-вывода. Функции для работы с файлами, клавиатурой и экраном дисплея. Системные функции в языке C. Библиотека графических функций.

Системно-зависимые конструкции языка С. Обзор современных систем программирования на языке С. Стандартные утилиты систем программирования на языке С. Редакторы связей. Библиотекари. Управление проектами. Отладчики. Редакторы текста и контекстные связи программ. Интегрированные среды систем программирования.

Мобильность программных систем и ее обеспечение на языке С.

Правила надежного программирования.

Тема 4. ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНЫХ СИСТЕМ


Методы структурного программирования. Принцип пошаговой детализации. Уровни описания и реализации структур данных. Абстрактные структуры данных. Множества, строки, стеки, очереди, деревья, списки, графы, матрицы, таблицы. Примеры представления структур данных на языке С.

Модульный принцип построения программных систем. Типы и свойства модулей. Способы передачи информации между программными модулями. Методы комплексирования программ.

Тема 5. ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ СИСТЕМНОГО ПРОГРАММИРОВАНИЯ


Характеристика вычислительных сред. Уровни доступа к системной информации и управления ресурсами. Анализ схемы распределения памяти. Установленные драйверы и администраторы устройств. Получение информации о системных ресурсах. Схема стандартного распределения памяти, регистры состояния оборудования, порты обмена. Схема обработки прерываний. Библиотечные функции управления ресурсами. Обработка прерываний в ПЭВМ типа IBM PC/XT/AT. Функции - обработчики прерываний на языках С и ассемблера. Резидентные программы.

Базовые понятия многозадачных вычислительных сред. Операционные среды систем семейства Windows и UNIX. Процессы, сообщения, порты, исключения. Потоки и каналы. Таймеры. Порождение и синхронизация задач. Механизмы межзадачного обмена. Построение систем типа "клиент–сервер". Администраторы устройств.

ЗАКЛЮЧЕНИЕ


Основные тенденции развития методов и средств автоматизации проектирования и реализации программных систем. Обзор возможностей объектно-ориентированного программирования.


Примерный перечень лабораторных работ
  1. Интегрированная среда Borland C/C++.
  2. Операторы управления языка C.
  3. Функции в языке C.
  4. Файловый ввод-вывод.
  5. Техника работы с указателями.
  6. Структуры данных.
  7. Логические операции.
  8. Текстовый ввод-вывод.
  9. Основы программирования на ассемблере.
  10. Связь ассемблера и языка C.
  11. Препроцессор языка С.
  12. Обработка прерываний на языке С.
  13. Утилиты систем программирования на языках C/С++.
  14. Управление процессами и потоками.
  15. Синхронный и асинхронный ввод-вывод.
  16. Межзадачное взаимодействие и обмен.
  17. Графический ввод-вывод.


ПРИМЕРНЫЙ ПЕРЕЧЕНЬ КУРСОВЫХ РАБОТ

Тема курсовых работ может определяться содержательной задачей, требующей использования доступа к системным механизмам современных вычислительных сред. Например, для широко используемой среды Win32 API предметом изучения могут быть:
  1. Win32: Мониторинг потока событий (Hooks).
  2. Win32: Сетевое окружение (Windows Networking).
  3. Win32: Консоли в Windows (Consoles).
  4. Win32: Работа с реестром (Registry).
  5. Win32: Процессы и потоки (Processes and Treads).
  6. Win32: Управление энергосбережением (Power Management).
  7. Win32: Синхронизация процессов (Synchronization).
  8. Win32: Обработка исключений (Structured Exception Handling).
  9. Win32: Локальный обмен данными (DDEML).
  10. Win32: Механизмы межпроцессных взаимодействий (IPC).
  11. Win32: Обмен данными на сети (Network DDE).
  12. Win32: Доступ к системе (Accessibility).
  13. Win32: Выгрузка системы (System Shutdown).
  14. Win32: Получение сведений о системе (System Information).
  15. Win32: Оконные интерфейсы (Windows Station and Desktops).
  16. Win32: Интерфейс интерпретатора команд (Shell Library).
  17. Win32: Хранитель экрана (Screen Saver).
  18. Win32: Отображение файлов (File Mapping).
  19. Win32: Работа с файлами (Files).
  20. Win32: Протоколирование событий (Event Logging).
  21. Win32: Динамически загружаемые библиотеки (DLL).
  22. Win32: Низкоуровневый ввод-вывод (Device Input and Output).
  23. Win32: Управление памятью (Memory Management).
  24. Win32: Отладка (Debugging).
  25. Win32: Сжатие данных (Data Decompression Library).


ПРИМЕРНЫЙ ПЕРЕЧЕНЬ КОМПЬЮТЕРНЫХ ПРОГРАММ
    1. Система программирования Microsoft Visual C++ 6.x.
    2. Система программирования Borland C++ 3.1, 5.x.
    3. Система программирования Inprise C++ Builder 5.x.
    4. Система электронной справочной документации MSDN.



ЛИТЕРАТУРА




Основная
  1. Бек Л. Введение в системное программирование. – М.: Мир,1988.
  2. Дьяконов В.Ю., Китов В.А., Калинчев И.А. Системное программирование: Учебн. пособие для втузов /Под ред. А.Л. Горелика. – М.: Высш. шк., 1990.
  3. Керниган Б., Ритчи Д., Фьюэр А. Язык программирования Си. – М.: Финансы и статистика, 1992.
  4. Рихтер Дж. Windows для профессионалов: создание эффективных Win32-приложений с учетом специфики 64-разрядной версии Windows NT: Пер. с англ. – СПб.: Питер; М.: Изд. дом “Русская редакция”, 2001.


Дополнительная
  1. Абель П. Язык ассемблера для IBM PC и программирования. – М.: Высш. шк., 1992.
  2. Болски М.И. Язык программирования Си: Справочник. – М.: Радио и связь, 1988.
  3. Голуб А.И. C и C++. Правила программирования. –М.: БИНОМ, 1996.
  4. Гук М., Юров В. Процессоры Pentium 4, Athlon и Duron. – СПб.: Питер, 2001.
  5. Джордейн Р. Справочник программиста персональных компьютеров типа IBM PC, XT и AT. – М.: Финансы и статистика, 1991.
  6. Иванчиков А.А., Ревотюк М.П. Лабораторный практикум по курсу "Системное программирование". – Мн.: БГУИР, 1995.
  7. Касаткин А.И., Вальвачев А.Н. Профессиональное программирование на языке Си: От Turbo-C к Borland C++: Справ. пособие. – Мн.: Выш. шк., 1992.
  8. Касаткин А.И. Профессиональное программирование на языке Си: Управление ресурсами: Справ. пособие. – Мн.: Выш. шк., 1992.
  9. Лазаревич Э.Г., Хорошавина Г.Ф. Аппаратурные и программные средства профессиональных персональных ЭВМ: Справ. пособие. – Мн.: Выш. шк., 1991.
  10. Касаткин А.И. Профессиональное программирование на языке Си: Системное программирование. – Мн.: Выш. шк., 1993.
  11. Лисков Б., Гатэг Дж. Использование абстракций и спецификаций при разработке программ: Пер. с англ. – М.: Мир, 1989.
  12. Липаев В.В. Проектирование программных средств. – М.: Высш. шк., 1990.
  13. Скляров В.А. Программное и лингвистическое обеспечение персональных ЭВМ: Системы общего назначения: Справ. пособие. – Мн.: Выш. шк., 1992.
  14. Скляров В.А. Программное и лингвистическое обеспечение персональных ЭВМ: Новые системы: Справ. пособие. – Мн.: Выш. шк., 1992.
  15. Скэнлон Л. Персональные ЭВМ IBM PC и XT. Программирование на языке ассемблера. – М.: Радио и связь, 1989.
  16. Уэйт М., Прата С., Мартин Д. Язык Си. Руководство для начинающих. – М.: Мир, 1988.
  17. Юлин В.А., Булатова И.Р. Приглашение к Си. – Мн.: Выш. шк., 1990.
  18. Ревотюк М.П. Системное программирование. Ч.1:. Язык системного программирования С: Конспект лекций. – Мн.: БГУИР, 1999.
  19. Ревотюк М.П. Системное программирование. Ч.2: Применение языка программирования С: Конспект лекций. –Мн.: БГУИР, 2000.