- •Алматы 2011
- •Наименование темы
- •Лекция 1. Введение. Основные понятия. Основы программирования в операционной системе Windows.
- •Классическое системное программирование рассматривает круг вопросов, связанных с синхронизацией и диспетчеризацией потоков и процессов, обменом данными между процессами, управлением устройствами компьютера и файлами, обеспечением безопасности данных.
- •Несколько общих положений о программировании в Windows.
- •TranslateMessage (&msg);
- •DispatchMessage(&msg);
- •Дополнительная литература: 14[31-54, 551-559]
- •Дополнительная литература: 14[167-179]
- •Глоссарий по курсу
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РЕСПУБЛИКИ КАЗАХСТАН
Казахский национальный технический университет имени К.И.Сатпаева
Институт информационных и телекоммуникационных технологий Кафедра вычислительной техники
Х.И. Юбузова
ТЕХНОЛОГИИ СИСТЕМНОГО ПРОГРАММИРОВАНИЯ
Учебно-методический комплекс дисциплины
(для специальности 5В100200 «Системы информационной безопасности»)
Алматы 2011
1
СОСТАВИТЕЛЬ: Юбузова ., Х.ТехнологииИ системного программирования. Учебно-методический комплекс дисциплины(для специальности 5В100200 - Системы информационной безопасности). - Алматы: КазНТУ имени К. И. Сатпаева, 2011. С. 1 - 91
Аннотация: Учебно-методический комплекс дисциплины студента(УМК ДС) представляет собой документ, определяющий концепцию конкретного курса. Учебно-методический комплекс составляется тьютором на основе типовой программы, издается типографским способом и предназначается для студентов, обучающихся по кредитной системе. Учебно-методический комплекс выдается студенту перед началом изучения дисциплины и содержит учебную программу дисциплины (Syllabus), тематический план курса, систему заданий для самостоятельной работы студентов, график выполнения отчетных работ по дисциплине, тестовые задания для самоконтроля, тематику письменных работ и перечень экзаменационных вопросов. Ценность данного УМК состоит в распределении учебного времени по темам и видам учебных занятий, организации самостоятельной работы студентов в аудиторное и внеаудиторное время, активизации познавательной и творческой деятельности студентов и обеспечения взаимосвязи учебного и исследовательского процессов.
Табл. – 9. рис. – 6.
Рецензент к.т.н., профессор Абдуллина В.З.
Печатается по Типовой учебной программе, утвержденной Министерством образования и науки Республики Казахстан на 2011 год
© КазНТУ имени К. И. Сатпаева, 2011
2
1 Учебная программа дисциплины – Syllabus
1. 1 Данные о преподавателях-разработчиках:
Преподаватель, ведущий занятия:
Юбузова Халича Ибрагимовна, старший преподаватель кафедры ВТ. Контактная информация: 7(727)-57-71-60 Время пребывания на кафедре: 211 ГУК, 213 а ГУК 9.00-18.00
1. 2 Данные о дисциплине:
Название: Технологии системного программирования Количество кредитов: 3
Место проведения: компьютерные лаборатории кафедры Вычислительная техника
Таблица 1 Выписка из рабочего учебного плана
Курс |
Семестр |
Кредиты |
1 |
2 |
3 |
3 |
5 |
3 |
|
|
|
|
Академических часов в неделю |
|
|
|
|||||
Лекций |
|
Лаб. занятия |
|
СРО |
СРОП |
|
Всего |
||
|
|
|
|
|
|
|
|
|
Форма контроля |
4 |
|
5 |
|
6 |
|
7 |
8 |
9 |
|
2 |
|
1 |
|
3 |
|
3 |
9 |
|
Экзамен |
|
|
|
|
|
|
|
|
|
|
1. 3 Пререквизиты: предшествующие дисциплины необходимые для изучения данной дисциплины: «Информатика», «Программирование на алгоритмических языках», «Практикум программирования на Си», «Программирование на С++»
1.4 Постреквизиты: Дисциплина «Технологии системного программи-
рования» взаимосвязана с такими дисциплинами как«Операционные системы», «Администрирование сетевых технологий», «Администрирование систем безопасности».
1. 5 Краткое описание дисциплины Целью преподавания дисциплины «Технологии системного программиро-
вания» является изучение вопросов построения сложных систем, таких, как ОС, управления общими ресурсами в распределенных вычислительных системах, управления техническими средствами ПК и организацией работы программных систем, а также формирование у студентов знаний по этим вопросам и навыков по их применению.
3
Задачи изучения дисциплины. В результате изучения курса студент должен приобрести систематизированные знания в вопросах: архитектуры и управления процессоров, состава операционных систем, функционирования и взаимодействия элементов ОС, управления и синхронизации памяти, потоков, процессов и т.д.
1. 6 Перечень и виды заданий и график их выполнения
Таблица 2 Виды заданий и сроки их выполнения
Виды |
Вид |
Тема работы |
|
Ссылки |
на |
рекомендуе- |
Сроки |
||||
контроля |
работы |
|
мую литературу |
|
сдачи |
||||||
|
|
|
|
|
|
||||||
1 |
2 |
|
|
3 |
|
|
|
4 |
|
|
5 |
Текущий |
СР1 |
Unicode- и ANSI-функции |
3осн.[11-35],2осн.[116- |
1 |
нед. |
||||||
контроль |
|
Windows. Unicode- и ANSI- |
123] |
|
|
|
|
||||
|
|
функции в библиотеке С, С++ |
|
|
|
|
|
||||
Текущий |
Л1 |
«Управлением курсором, построе- |
11доп.[3-69], 13доп.[208- |
2 |
нед. |
||||||
контроль |
|
ние рамки» |
|
|
|
|
255, 257-270, 318-332] |
|
|
||
Текущий |
СР2 |
Организация и особенности Win32 |
1осн.[28-50], |
|
3 |
нед |
|||||
контроль |
|
и Win64. Реестр ОС Windows Vis- |
14доп.[19-36] |
|
|
|
|||||
|
|
ta, Windows Seven |
|
|
|
|
|
|
|
||
Текущий |
Л2 |
«Разработка |
|
меню, |
управление |
11доп.[3-69], 13доп.[208- |
4 |
нед |
|||
контроль |
|
курсором в меню» |
|
|
255, 257-270, 318-332] |
|
|
||||
Текущий |
СР3 |
Структурная |
обработка |
исключе- |
1осн.[126-153], 3осн[747- |
5 |
нед. |
||||
контроль |
|
ний. Использование |
фильтров |
795], 14доп[90-111] |
|
|
|||||
|
|
обработчиков исключений. |
|
|
|
|
|
||||
Текущий |
Л3 |
«Разработка интерфейса пользова- |
2осн.[31-92], 11доп.[3-69], |
6 |
нед. |
||||||
контроль |
|
теля» |
|
|
|
|
16доп.[5-86] |
|
|
|
|
Рубеж- |
РК |
Тест по модулю 1 |
|
|
|
|
|
7 |
нед. |
||
ный кон- |
|
|
|
|
|
|
|
|
|
|
|
троль |
|
|
|
|
|
|
|
|
|
|
|
Текущий |
СР4 |
Отладчики |
|
и |
дизассемб. |
2осн. [641-708, 711-754] |
7 |
нед. |
|||
контроль |
|
Драйверы, разработка драйверов |
|
|
|
|
|
||||
Текущий |
Л4 |
«Работа |
с |
файлами. Создание |
3осн.[51-123], 5осн.[348- |
8 |
нед. |
||||
контроль |
|
файла, манипуляция |
с |
файло, |
353], |
11доп.[31-100], |
|
|
|||
|
|
поиск записи в файле» |
|
|
13доп.[62-68, 211-222] |
|
|
||||
Текущий |
СР5 |
Внедрение DIL и перехват API - |
3осн.[689-747] |
|
9 |
нед. |
|||||
контроль |
|
вызовов |
|
|
|
|
|
|
|
|
|
Текущий |
Л6 |
«Работа с директориями. Понятия |
3осн.[87-123], 14доп.[62- |
10 нед |
|||||||
контроль |
|
об атрибутах записей в директо- |
89] |
|
|
|
|
||||
|
|
рии. Вывести |
текущий |
директо- |
|
|
|
|
|
||
|
|
рий» |
|
|
|
|
|
|
|
|
|
Текущий |
СР6 |
Механизмы |
защиты |
ОСWindows |
1осн.[483-509], |
|
11 нед |
||||
контроль |
|
Vista, Windows Seven. |
|
|
14доп.[112-131] |
|
|
|
|||
Текущий |
Л7 |
«Табличное преобразование сим- |
11доп.[4-69], 13доп.[160- |
12 нед |
|||||||
контроль |
|
волов из одного вида кодировки в |
208, 312-318, |
335-339], |
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
4
|
|
другой вид» |
23доп. [32, 305-309] |
|
|
|
|
|
|
Текущий |
СР7 |
Сокеты и сетевое программирова- |
1осн. [394-429] |
13нед |
контроль |
|
ние. |
14доп.[313-340] |
|
Текущий |
Л8 |
«Шифрование, расшифровывание |
11доп. [4-69], 13доп.[160- |
14 нед. |
контроль |
|
информации, с применением ал- |
208, 312-318, 335-339.)], |
|
|
|
горитмов Виженера, RSA, Гронс- |
23доп. [32, 305-309 |
|
|
|
фельда, Цезаря и т.д.» |
|
|
Рубеж- |
РК |
Тест по модулю 2 |
|
15 нед. |
ный кон- |
|
|
|
|
троль |
|
|
|
|
Итоговый |
Экза- |
|
|
16 нед. |
контроль |
мен |
|
|
|
1.7 Список литературы Основная литература
1.Джонсон М. Харт. Системное программирование в среде Win32, 2-е изд.
-М.: Вильямс, 2005. – 592 с.
2.Пирогов В.Ю. Ассемблер для Windows. – 2-е изд. – СПб.: БХВ – Петер-
бург, 2003. – 656 с.
3.Рихтер Дж. Windows для профессионалов: создание эффективных Win32 приложений с учетом специфики 64-разрядной версии Windows. – СПб: Пи-
тер, 2009. – 896 с.
4.Румянцев П.В. Азбука программирования в Win-32 API. – М.:Горячая линия – Телеком, 2001. – 312 с.
5.Саймон Р. Microsoft Windows 2000 API. Энциклопедия программиста. –
Киев: ДиаСофт, 2001. – 1008 с.
6.Финогенов К.Г. Основы программирования. – М.: ДИАЛОГ-МИФИ, 2002. – 146 с.
7.Фленов М.Е. Программирование на С++ глазами хакера. – СПб.: БХВ-
Петербург, 2007. – 336 с.
10.Щупак Ю.А. Win32 API. Разработка приложений для Windows. – СПб.: ПИТЕР. 1-е издание, 2008 - 592 с.
Дополнительная литература
11.Литвиненко Н.А. Технология программирования на С++. Win32 API приложения. - СПб.: БХВ-Петербург, 2010.
12.Сучкова Л.И. Win32 API: основы программирования. - Барнаул, АлтГ-
ТУ, 2010.
13.Культин Н. С/С++ в задачах и примерах. - СПб.: БХВ-Петербург, 2005.
14.Джонсон М. Харт. Системное программирование в средеWin32, 2-е изд.: - М.: Вильямс, 2001.
15.Вильямс М. Программирование в Windows 2000. Энциклопедия пользователя. – Киев: ДиаСофт, 2000. – 640 с.
5
16.Ганеев Р.М. Проектирование интерфейса пользователя средствами Win32 API: учеб. пособие для вузов. - М.: Горячая линия - Телеком, 2007.-357 с.
17.Клименко Р. А. Windows Vista. Для профессионалов. - СПб.: Питер,
2008.
18.Клименко Р. Тонкости реестра Windows Vista. Трюки и эффекты. - М.: Горячая Линия - Телеком, 2002.
19.Ирвин Кип. Язык Ассемблера для процессоров INTEL. - М.: Вильямс,
2005.
20.Давыдов В.Г. Visual C++. Разработка Windows-приложений с помощью MFC API функций. - СПб.: BHV,Санкт - Петербург, 2008.
21.Комиссарова В. Программирование драйверов дляWindows. - СПб.: BHV - Петербург, 2007.
22.Несвижский В. Программирование аппаратных средств вWindows. - СПб.: BHV - Петербург, 2004.
23.Зубков С.В. Assembler для DOS, Windows и UNIX. – М.:ДМК Пресс,
2000.
1. 8 Контроль и оценка знаний
В процессе обучения для всех курсов и по всем дисциплинам Казахского национального технического университета имени К. И. Сатпаева применяется рейтинговый контроль знаний студентов. Сведения об оценке знанийосуществляются по балльной рейтинговой системе в виде шкалы с указанными всеми видами контроля.
Для каждой дисциплины устанавливаются следующие виды контроля: текущий контроль, рубежный контроль, итоговый контроль.
Видами текущего контроля являются контрольные работы, рефераты, семестровые задания, коллоквиумы, выполнение лабораторных работ и др. К итоговому контролю относятся курсовой проект или курсовая работа и экзамен. В зависимости от видов итогового контроля применяются различные виды контроля (таблица 3).
Таблица 3 Распределение рейтинговых процентов по видам контроля
Вид итогового контроля |
Виды контроля |
Проценты |
Экзамен |
Итоговый контроль |
100 |
|
Рубежный контроль |
100 |
|
Текущий контроль |
100 |
Сроки сдачи результатов текущего контроля определяются календарным графиком учебного процесса по дисциплине(таблица 4). Количество текущих
6
контролей определяется содержанием дисциплины и ее объемом, которое указывается в учебно-методическом комплексе дисциплины.
Таблица 4 Календарный график сдачи всех видов контроля
по дисциплине «Технологии системного программирования»
Недели |
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Недельное |
количество |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
контроля |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Виды контроля |
СР |
Л1 |
СР |
Л2 |
СР |
Л3 |
РК |
Л4 |
СР |
Л5 |
СР |
Л6 |
СР |
Л7 |
РК |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Виды контроля: Л – лабораторная работа, СР - самостоятельная работа, РК – рубежный контроль
Итоговая оценка по дисциплине определяется по шкале (таблица 5).
Таблица 5 Оценка знаний обучающихся
Оценка |
Буквенный |
Рейтинговый балл |
В баллах |
|
эквивалент |
(в процентах %) |
|||
|
|
|||
Отлично |
А |
95-100 |
4 |
|
А- |
90-94 |
3,67 |
||
|
||||
Хорошо |
В+ |
85-89 |
3,33 |
|
В |
80-84 |
3,0 |
||
|
В- |
75-79 |
2,67 |
|
Удовлетворительно |
С+ |
70-74 |
2,33 |
|
|
С |
65-69 |
2,0 |
|
|
С- |
60-64 |
1,67 |
|
|
D+ |
55-59 |
1,33 |
|
|
D |
50-54 |
1,0 |
|
Неудовлетворительно |
F |
0-49 |
0 |
Перечень вопросов для проведения контроля по модулям и промежуточной аттестации:
Вопросы для проведения контроля по модулю 1:
1.Классическая структура программы для Windows.
2.Интерфейс Windows-приложения.
3.Каркас Windows-приложения.
4.Сообщения. Обработка сообщений.
5.Консольные приложения.
6.Понятия «процесс» и «поток».
7.Создание процессов и потоков.
8.Назначение процесса синхронизации.
7
9.Методы синхронизации процессов и потоков.
10.Средства синхронизации.
11.Приоритеты потоков.
12.Динамическое изменение уровня приоритета потока.
13.Классификация функций API.
14.Архитектура Windows.
15.Адресация памяти.
16.Режимы работы процессора и адресация.
17.Линейно-сегментная модель памяти.
18.Многосегментная модель памяти.
19.Страничная организация памяти.
20.Планирование потоков.
Вопросы для проведения контроля по модулю 2:
1.Файловая система. Управление каталогами. Реестр.
2.Архитектура управления памятью Win32.
3.Разделы адресного пространства.
4.Архитектура памяти. Динамически распределяемая память.
5.Механизм управления памятью
6.Использование куч в программах на C++ .
7.Проецируемые в память файлы.
8.Создание объекта ядра «проекция файла».
9.Проецирование файловых данных на адресное пространство процесса.
10.Базовый адрес файла, проецируемого в память.
11.Библиотеки. Динамически подключаемые библиотеки.
12.DLL и адресное пространство процесса.
13.Неявное связывание. Создание DLL-модуля.
14.Создание ЕХЕ-модуля.
15.Явная загрузка DLL и связывание идентификаторов.
16.Взаимодействие между процессами.
17.Анонимные каналы.
18.Именованные каналы.
19.Структурная обработка исключений.
20.Система информационной безопасности.
Вопросы для подготовки к промежуточной аттестации:
1.Процессы. Управление процессами.
2.Параметры функции CreateProcess
3.Идентификация процессов.
4.Приостановка и возобновление процессов.
5.Функции Win32 АPI и Win64 АPI
6.Базовые функции интерфейсов программирования
7.Входная функция создания вторичного потока.
8