- •Учебно-методический комплекс дисциплины «Системное программирование»
- •Алматы, 2016
- •Опись содержания учебно-методического комплекса дисциплины
- •1. Цели и задачи дисциплины.
- •2. Содержание дисциплины
- •2.1.Лекционный курс
- •2.3. Лабораторные занятия
- •2.4. Самостоятельная работа студентов под руководством преподавателя
- •2.5. Самостоятельная работа студентов
- •3. Учебно-методические материалы по дисциплине
- •3.1.Список рекомендуемой литературы
- •3.2. Вопросы для подготовки к экзамену
- •1. Информация о дисциплине
- •2. Краткое описание дисциплины
- •4. Литература для изучения
- •5. Критерии оценки
- •Карта учебно-методической обеспеченности
- •Тезисы лекций
- •Лекция 2. Базовые конструкции структурного программирования
- •Лекция 3. Указатели и массивы
- •Лекция 4. Типы данных, определяемые пользователем
- •Лекция 5. Модульное программирование
- •Лекция 6. Объектно-ориентированное программирование
- •Лекция 7. Операционные системы и их интерфейсы
- •Лекция 8. Управление потоками и процессами
- •Лекция 9. Синхронизация потоков и процессов
- •Лекция 10. Обмен данными между параллельными процессами
- •Лекция 11. Структурная обработка исключений
- •Лекция 12. Работа с виртуальной памятью
- •Лекция 13. Динамически подключаемые библиотеки
- •Планы семинарских, практических, лабораторных и студийных занятий
- •4.1. Индивидуальное задание:
- •4.2. Описание метода решения
- •4.3. Описание логической структуры
- •4.4. Данные для тестирования
- •4.5. Текст программы
- •5.1. Описание методов решения
- •5.1.1. Представление в памяти
- •5.1.2. Модульная структура программного изделия
- •5.2. Описание логической структуры
- •5.2.1. Общие переменные
- •5.3. Программа пользователя
- •5.4. Тексты программных модулей
- •5.5. Варианты.
- •5. Варианты индивидуальных заданий
- •6. Пример решения задачи
- •6.1. Индивидуальное задание:
- •6.2. Описание методов решения
- •6.3. Описание логической структуры
- •6.4. Текст программы
- •5.1. Структура данных программы
- •5.2. Структура программы
- •5.3. Описание переменных
- •5.4. Описание алгоритма программы
- •5.5. Текст программы
- •5.6. Результаты работы программы
- •5.1. Индивидуальное задание.
- •5.2. Разработка алгоритма
- •5.3. Текст программы
- •5.4. Результаты работы программы
- •4. Порядок выполнения
- •5. Индивидуальные задания
- •6. Пример решения задачи
- •6.3. Индивидуальное задание.
- •6.4. Разработка алгоритма решения
- •6.4.1. Структура программы
- •6.5. Текст программы
- •6.6. Результаты работы программы
- •4. Порядок выполнения
- •5. Пример решения задачи
- •5.1. Индивидуальное задание.
- •5.4. Разработка алгоритм решения
- •5.5. Текст программы
- •5.6. Результаты работы программы
- •5.1. Разработка алгоритма решения
- •5.2. Текст программы
- •5.3. Результаты работы программы
- •5.1. Разработка алгоритма решения
- •5.1.1. Структура программы
- •5.1.2. Описание переменных
- •5.1.3. Описание алгоритм программы
- •5.2. Текст программы
- •5.3. Результаты работы программы
- •5.1. Разработка алгоритма решения
- •5.1.1. Структура программы
- •5.1.2. Описание переменных
- •5.1.3. Описание алгоритма программы
- •5.2. Текст программы
- •5.6. Результаты работы программы
- •5.1. Разработка алгоритма решения
- •5.1.1. Структура программы
- •5.1.2. Описание переменных
- •5.1.3. Описание алгоритма программы
- •5.2. Текст программы
- •5.3. Результаты работы программы
- •5.1. Разработка алгоритма решения
- •5.1.3. Описание алгоритма программы
- •5.2. Текст программы
- •5.1. Разработка алгоритма решения
- •5.1.1. Структура программы
- •5.1.2. Описание переменных
- •5.3. Результаты работы программы
- •5.1.3. Описание алгоритма программы
- •5.2 Текст программы
- •5.3. Результаты работы программы
- •Материалы для мониторинга и контроля образованности обучающихся (уровня сформированности предметных компетенций):
- •Методические разработки (рекомендации)
- •Официально изданные преподавателями учебные и учебно-методические пособия (при условии публикации)
- •Перечень:
- •Учебная литература и/или материалы на электронных носителях
5.3. Результаты работы программы
В процессе работы программы на экран была выведена следующая информация о распределении памяти:
-----------------------------------------------------------------------------
------------ Лабораторная работа N12 ---------------
------------ Управление памятью ---------------
Карта распределяемой памяти.
Addr=025B:0000 PID=0008 Size=9130 Dos
Addr=0496:0000 PID=0008 Size=64 Dos
Addr=049B:0000 PID=04A0 Size=48 Data COMMAND.COM
Addr=049F:0000 PID=04A0 Size=2640 Pgm COMMAND.COM
Addr=0545:0000 PID=04A0 Size=64 Data COMMAND.COM
Addr=054A:0000 PID=04A0 Size=513 Env COMMAND.COM
Addr=056B:0000 PID=0008 Size=32 Dos
Addr=056E:0000 PID=06CB Size=160 Env NC C:\NC\NC.EXE
Addr=0579:0000 PID=057A Size=5376 Pgm KEYRUS C:\NC\NC.EXE
Addr=06CA:0000 PID=06CB Size=13152 Pgm NC C:\NC\NC.EXE
Addr=0A01:0000 PID=0AFA Size=160 Data COMMAND.COM
Addr=0A0C:0000 PID=0AFA Size=256 Env COMMAND.COM
Addr=0A1D:0000 PID=0BA0 Size=160 Env TC_LAB12 D:\TC\TC_LAB12.EXE
Addr=0A28:0000 PID=0000 Size=2464 Free
Addr=0AC3:0000 PID=0ACF Size=160 Env COPY_ECR D:\TC\COPY_ECR.COM
Addr=0ACE:0000 PID=0ACF Size=672 Pgm COPY_ECR D:\TC\COPY_ECR.COM
Addr=0AF9:0000 PID=0AFA Size=2640 Pgm COMMAND D:\TC\COPY_ECR.COM
Addr=0B9F:0000 PID=0BA0 Size=17408 Pgm TC_LAB12 D:\TC\COPY_ECR.COM
Addr=0FE0:0000 PID=0000 Size=65008 Free
Нажмите любую клавишу для возврата в DOS.
Лабораторная работа № 13. Управление памятью
1. Цель работы
Просмотр таблицы векторов прерываний, которая в данный момент находится в ПЭВМ на рабочем месте.
2. Темы для предварительной проработки
Таблица векторов прерываний.
Управление памятью.
3. Постановка задачи
Определить, какие вектора прерываний на данном компьютере перехвачены программами не из состава DOS/BIOS и имена этих программ.
4. Порядок выполнения работы
5. Пример решения задачи
5.1. Разработка алгоритма решения
5.1.1. Структура программы
Программа состоит из основной программы main() и пяти вспомогательных функций.
void *readvect(int in) - функция читает вектор прерывания с номером in и возвращает его значение.
void get_memtop(void) - функция возвращает адрес начала цепочки MCB csegm.
void dos_version_h(void) - функция возвращает номер версии DOS.
void name_handler(void) - функция находит какой программой было перехвачено текущее прерывание.
void PrintVec(int num) - функция выводит на экран номера прерываний и программы которые их перехватили начиная с номера num.
5.1.2. Описание переменных
Переменные глобальные для всей программы:
memtop - сегментный адрес начала памяти;
csegm - сегментный адpес текущего MCB;
othersegm - сегментный адрес другого MCB; 8
fathersegm - сегментный адрес родител0я;
*envstr - адpес стpоки окружения;
envlen - длина очередной строки окружения;
envsize - размер блока окружения;
dos - номер версии DOS;
*vect - вектор;
intnum - номер прерывания.
Стpуктуpа MCB:
struct MCB {
byte type; /* тип */
word owner; /* владелец */
word size; /* размер */
byte reserved[3]; /* не используется */
char pgmname[8]; /* имя (только DOS 4.0 и выше) */
};
