Раздел 4. Системное программирование
|
| МДК 01.04 Системное программирование
|
|
1,2
| Программирование на языке низкого уровня. Подсистемы управления ресурсами.
| Лекция презентация
| Оперативная память. Распределение памяти. Структура памяти. Ячейки памяти. Размерность ячеек памяти.
| 2
| 3
|
3,4
| Программирование на языке низкого уровня. Использование потоков. Управление процессами в одноядерной системе.
| Практическая работа 1
| Процессы и потоки в одноядерной системе.
| 2
|
|
5,6
| Программирование на языке низкого уровня. Управление процессами.
| Лекция презентация
| Основные сведения о процессах
| 2
| 3
|
7,8
| Программирование на языке низкого уровня. Управление потоками.
| Лекция презентация
| Основные сведения о потоках.
| 2
| 3
|
9,10
| Программирование на языке низкого уровня. Параллельная обработка потоков.
| Лекция презентация
| Обзор потоков. Перспективы и проблемы.
| 2
| 3
|
11,12
| Программирование на языке низкого уровня. Использование потоков. Управление процессами в многоядерной системе.
| Практическая работа 2
| Процессы и потоки в многоядерной системе.
| 2
|
|
13,14
| Программирование на языке низкого уровня. Синхронизация потоков.
| Самостоятельная работа с применением дистанционных форм. Составление конспекта лекции.
| Методы синхронизация потоков.
| 2
|
15,16
| Программирование на языке низкого уровня. Взаимодействие потоков.
| Самостоятельная работа с применением дистанционных форм. Составление конспекта лекции.
| Обмен данными между приложениями Windows.
| 2
|
17,18
| Программирование на языке низкого уровня. Создание процессов и потоков. Потоки Windows
| Лекция презентация
| Процессы и потоки Windows. Создание процесса.
| 2
| 3
|
19,20
| Программирование на языке низкого уровня. Использование потоков. Реализация процессов и потоков в Windows.
| Практическая работа 3
| Завершение и прекращение выполнения процесса. Ожидание завершения процесса. Защита процесса.
| 2
|
|
21,22
| Программирование на языке низкого уровня. Создание процессов и потоков. Исполняемый модуль
| Лекция презентация
| Указание исполняемого модуля и командной строки
| 2
| 3
|
23,24
| Программирование на языке низкого уровня. Обмен данными между процессами
| Лекция презентация
| Сетевое программирование сокетов. Работа с периферийными устройствами
| 2
| 3
|
25,26
| Программирование на языке низкого уровня. Передача сообщений.
| Лекция презентация
| Виртуальная память. Выделение памяти процессам.
| 2
| 3
|
27,28
| Программирование на языке низкого уровня. Использование потоков. Реализация процессов и потоков. Исполняемый модуль
| Практическая работа 4
| Указание исполняемого модуля и командной строки.
| 2
|
|
29,30
| Программирование на языке низкого уровня. Анонимные каналы.
| Лекция презентация
| Перенаправление ввода/вывода с использованием анонимного канала.
| 2
| 3
|
31,32
| Программирование на языке низкого уровня. Сегментация.
| Самостоятельная работа с применением дистанционных форм. Составление конспекта лекции.
| Виды сегментов памяти. Вычисление адреса. Особенности записи чисел в память компьютера
| 2
|
|
33,34
| Программирование на языке низкого уровня. Именованные каналы.
| Лекция презентация
| Использование именованных каналов
Директивы определения данных. Виды операндов в директивах определения данных. Описание констант и запись выражений.
| 2
| 3
|
35,36
| Программирование на языке низкого уровня. Сетевое программирование сокетов. Программные сегменты
| Лекция презентация
| Понятие и сущность программных сегментов. Описание программных сегментов. Указание видов программных сегментов.
| 2
| 3
|
37,38
| Программирование на языке низкого уровня. Сетевое программирование сокетов. Структура программы
| Лекция презентация
| Принципы построения программы. Структура программы. Пример простой программы
| 2
| 3
|
39,40
| Программирование на языке низкого уровня. Обмен данными. Порты ввода-вывода.
| Практическая работа 5
| Организация ввода-вывода информации на компьютер. Порты ввода-вывода. Функции MS-DOS по вводу-выводу информации. Операции ввода-вывода
| 2
|
|
41,42
| Программирование на языке низкого уровня. Сетевое программирование сокетов. Команды пересылки.
| Лекция презентация
| Команды пересылки. Арифметические команды. Команды сравнения и условного перехода. Виды команд условного перехода. Команды безусловного перехода. Команды управления циклом.
| 2
| 3
|
43,44
| Программирование на языке низкого уровня. Обмен данными. Адресация
| Практическая работа 6
| Режимы адресации. Регистровая адресация. Прямая адресация. Непосредственная адресация. Косвенная адресация. Виды адресаций по базе.
| 2
|
|
45,46
| Программирование на языке низкого уровня. Сетевое программирование сокетов. Прямая адресация
| Лекция презентация
| Адресация с использованием индексирования. Прямая адресация с индексированием. Адресация по базе с индексированием.
| 2
| 3
|
47,48
| Программирование на языке низкого уровня. Сетевое программирование сокетов. Таблица векторов прерываний.
| Лекция презентация
| Понятие приоритета. Таблица векторов прерываний. Векторы прерывания микроконтроллера 8259. Входные точки системы BIOS.
| 2
| 3
|
49,50
| Программирование на языке низкого уровня. Сетевое программирование сокетов. Прерывания
| Лекция презентация
| Обработчики аппаратных прерываний. Обработчики программных прерываний. Работа процедур обработки прерываний. Возврат из процедуры прерывания.
| 2
| 3
|
51,52
| Программирование на языке низкого уровня. Обмен данными. Перенаправление ввода/вывода
| Практическая работа 7
| Анонимные и именованные каналы. Перенаправление ввода/вывода с использованием анонимного канала
| 2
|
|
53,54
| Программирование на языке низкого уровня. Устройства вывода информации
| Самостоятельная работа с применением дистанционных форм. Составление конспекта лекции.
| Управление видеоадаптером
| 2
|
55,56
| Программирование на языке низкого уровня. Переадресация данных
| Самостоятельная работа с применением дистанционных форм. Составление конспекта лекции.
| Адресация с использованием индексирования
| 2
|
57,58
| Программирование на языке низкого уровня. Обмен данными. Каналы.
| Практическая работа 8
| Именованные каналы. Использование именованных каналов
| 2
|
59,60
| Программирование на языке низкого уровня. Обмен данными. Устройства ввода данных
| Практическая работа 9
| Работа с таймером. Устройство и принцип работы клавиатуры. Скан кода клавиш. Работа с буфером клавиатуры. Порты для работы с клавиатурой.
| 2
|
61,62
| Программирование на языке низкого уровня. Обмен данными. Утилиты операционной системы
| Практическая работа 10
| Взаимодействия операционной системы с драйверами.
| 2
|
63,64
| Программирование на языке низкого уровня. Обмен данными. Принципы реализации драйверов
| Практическая работа 11
| Основные этапы разработки драйверов. Порядок написания стандартных драйверов.
| 2
|
65, 66
| Программирование на языке низкого уровня. Сетевое программирование сокетов. Бинарный код
| Лекция презентация
| Системы счисления. Перевод чисел из одной системы в другую. Биты, байты.
| 2
| 3
|
67,68
| Программирование на языке низкого уровня. Динамически подключаемые библиотеки DLL. Регистры
| Лекция презентация
| Структура и адресация памяти, процессор. Назначение регистров. Понятие сегмента, стека. Система прерываний процессора.
| 2
| 3
|
69,70
| Программирование на языке низкого уровня. Динамически подключаемые библиотеки DLL. Команды
| Лекция презентация
| Представление команд процессора. Форматы команд
| 2
| 3
|
71, 72
| Программирование на языке низкого уровня. Принципы перевода в различных системах счисления
| Самостоятельная работа с применением дистанционных форм. Составление конспекта лекции.
| Работа с двоично-десятичными, шестнадцатеричными числами и символами кода ASCII.
| 2
|
|
73,74
| Программирование на языке низкого уровня. Ассемблер. Назначения, характеристики
| Лекция презентация
| Основные понятия языка Ассемблер. Требования к программе. Ассемблирование, компоновка, выполнение программ
| 2
| 3
|
75,76
| Программирование на языке низкого уровня. Ассемблер. Директивы
| Лекция презентация
| Директивы языка Ассемблер. Формат кодирования. Основные команды языка процессора
| 2
| 3
|
77,78
| Программирование на языке низкого уровня. Сервисы. Классификация
| Лекция презентация
| Классификация сервисов при реализации программ системного уровня
| 2
| 3
|
79,80
| Программирование на языке низкого уровня. Сервисы. Отладчики
| Лекция презентация
| Назначение отладчиков, классификация, характеристики
| 2
| 3
|
81,82
| Программирование на языке низкого уровня. Сервисы. Тестировщики
| Лекция презентация
| Назначение тестировщиков, классификация, характеристики
| 2
| 3
|
83,84
| Программирование на языке низкого уровня. Сетевое программирование сокетов.
| Практическая работа 12
| Принципы построения сокетов
| 2
|
|
85,86
| Программирование на языке низкого уровня. Отладчик DEBUG
| Самостоятельная работа с применением дистанционных форм. Составление конспекта лекции.
| Работа в отладчике DEBUG: ввод данных разного типа: числовые, символьные
| 2
|
87,88
| Программирование на языке низкого уровня. Дополнительные ресурсы Windows
| Самостоятельная работа с применением дистанционных форм. Составление конспекта лекции.
| Ресурсы Windows, редакторы ресурсов: изучение возможностей редакторов ресурсов: Restorator resource editor, XN resource editor. Отработка приемов работы с интерпретатором Cmd.exe.
| 2
|
89,90
| Программирование на языке низкого уровня. Сетевое программирование сокетов. Разветвление
| Практическая работа 13
| Организация разветвлений
| 2
|
91,92
| Программирование на языке низкого уровня. Сетевое программирование сокетов. Циклы
| Практическая работа 14
| Создание программ с использованием циклов
| 2
|
93,94
| Программирование на языке низкого уровня. Сетевое программирование сокетов. Логические команды
| Практическая работа 15
| Понятие процедуры. Команды логических операций.
| 2
|
95,96
| Программирование на языке низкого уровня. Создание EXE-программы
| Самостоятельная работа с применением дистанционных форм. Составление конспекта лекции.
| Работа в отладчике AfdPro
| 2
|
97, 98
| Программирование на языке низкого уровня. Виртуальная память. Концепция виртуальной памяти.
| Лекция презентация
| Определение виртуальной памяти, назначение, принципы работы и реализации
| 2
| 3
|
99,100
| Программирование на языке низкого уровня. Виртуальная память. Страничная организация виртуальной памяти.
| Лекция презентация
| Способы реализации виртуальной памяти: страничная организация по требованию (paging on demand), сегментная организация по требованию (segmentation on demand)
| 2
| 3
|
101,102
| Программирование на языке низкого уровня. Виртуальная память. Обработка отсутствия страницы в памяти (page fault).
| Лекция презентация
| Принципы обработка ситуации отсутствия страницы в памяти
| 2
| 3
|
103,104
| Программирование на языке низкого уровня. Виртуальная память. Обработка страниц по требованию; совместное использование страниц процессами.
| Лекция презентация
| Отсутствие свободного фрейма. Оценка производительности стратегии обработки страниц по требованию.
| 2
| 3
|
105,106
| Программирование на языке низкого уровня. Виртуальная память. Файлы, отображаемые в память (memory-mapped files).
| Лекция презентация
| Преимущества виртуальной памяти при создании процессов
| 2
| 3
|
107,108
| Программирование на языке низкого уровня. Виртуальная память. Стратегии замещения страниц.
| Лекция презентация
| Проблема замещения страниц. Алгоритмы замещения страниц
| 2
| 3
|
109,110
| Программирование на языке низкого уровня. Работы с буфером экрана. Реализация модели страничной организации по требованию.
| Практическая работа 16
| Программное обеспечение ввода-вывода пространства пользователя.
| 2
|
|
111,112
| Программирование на языке низкого уровня. Виртуальная память. Выделение фреймов
| Лекция презентация
| Понятие фрейма. Назначение, выделение.
| 2
| 3
|
113,114
| Программирование на языке низкого уровня. Работы с буфером экрана. Реализация алгоритма замещения страниц
| Практическая работа 17
| Модальные на уровне приложения. Модальные на уровне окна. Стандартные элементы управления.
| 2
|
|
115,116
| Программирование на языке низкого уровня. Работы с буфером экрана. Реализация модели стратегии рабочего множества
| Практическая работа 18
| Графический список. Индикатор прогресса. Наборный счетчик. Редакторы ресурса. Иконки. Курсоры. Битовые картинки (*.BMP).
| 2
|
117,118
| Программирование на языке низкого уровня. Варианты размещения подпрограммы в теле программы.
| Самостоятельная работа с применением дистанционных форм. Составление интеллектуальной карты
| Разработка и применение процедур двух типов – ближнего (near) и дальнего (far).
| 2
|
119,120
| Программирование на языке низкого уровня. Работа с командами вызова подпрограммы
| Самостоятельная работа с применением дистанционных форм. Составление интеллектуальной карты
| CALL и возврата управления RET. Использование команд стека: PUSH, POP, PUSHA, PUSHAW, PUSHF, PUSHFW, PUSHFD.
| 2
|
121,122
| Программирование на языке низкого уровня. Выделение памяти процессам.
| Лекция презентация
| Строки. Диалоговые окна. Меню. Акселераторы.
| 2
| 3
|
123,124
| Программирование на языке низкого уровня. Работа с буфером экрана.
| Лекция презентация
| ADM файлы. .bat и .cmd файлы. Пакетный файл. Редактор системных правил Poledit. PowerShell (Wsh, script-shell). Командлеты
| 2
| 3
|
125,126
| Программирование на языке низкого уровня. Работы с буфером экрана. Оценка размеров рабочих множеств процессов
| Практическая работа 19
| Сценарии WSH. Системы управления файлами. Атрибуты файла. Поиск файлов
| 2
|
|
127,128
| Программирование на языке низкого уровня. Регистры
| Самостоятельная работа с применением дистанционных форм. Составление интеллектуальной карты
| Изучение программной модели сопроцессора, видов регистров, Изучение работы циклов общего конвейера с четырьмя стадиями работы.
| 2
|
129,130
| Программирование на языке низкого уровня. Работы с буфером экрана. Сокращение размеров рабочих множеств процессов, если объем памяти меньше порогового значения.
| Практическая работа 20
| Сегменты программы, сегменты подпрограммы. Варианты размещения подпрограммы в теле программы.
| 2
|
131,132
| Программирование на языке низкого уровня. Работы с буфером экрана. Реализация модели файла, отображаемого в память
| Практическая работа 21
| Команды использования стека. Команда POP. Команда PUSHA. Команда PUSHAW. Команда PUSHAD. Команда PUSHF. Команда PUSHFW. Команда PUSHFD.
| 2
|
133,134
| Программирование на языке низкого уровня. Работы с буфером экрана. Взаимосвязи файла с таблицами страниц разделяющих его процессов.
| Практическая работа 22
| Макросредства. Псевдооператоры EQU и =. Макрокоманды.
| 2
|
135,136
| Программирование на языке низкого уровня. Работы с буфером экрана. Коэффициент отказов страниц
| Практическая работа 23
| Макродирективы. Директивы WHILE и REPT. Директива IRP. Директива IRPC.
| 2
|
137,138
| Программирование на языке низкого уровня. Работы с буфером экрана. Компиляция
| Практическая работа 24
| Директивы условной компиляции. Динамические библиотеки. Использование ассемблера с ЯВУ.
| 2
|
139,140
| Программирование на языке низкого уровня. Работы с буфером экрана. Вызовы
| Практическая работа 25
| Согласование вызовов. Согласование имен. Согласование параметров.
| 2
|
141,142
| Программирование на языке низкого уровня. Работы с буфером экрана. Структура памяти процесса
| Практическая работа 26
| Программирование в UNIX. Структура памяти процесса. Передача параметров командной строки и переменных окружения. Вызов операционной системы.
| 2
|
143,144
| Программирование на языке низкого уровня. Работы с буфером экрана. Сопроцессоры
| Практическая работа 27
| Сопроцессор, MMX, SSE. Сопроцессор. Архитектура сопроцессора. Три служебных регистра. MMX. SSE. Команды для чисел с плавающей точкой. Команды для целых чисел.
| 2
|
145,146
| Комплексный экзамен
|
|
| 2
|
147,148
| Комплексный экзамен
|
|
| 2
|
|
149,150
| Комплексный экзамен
|
|
| 2
|
|
Итого по МДК 01.04 - 150 час.
из них :
самостоятельной работы – 24 час.
практических работ – 54 час.
теоретических занятий – 66 час.
комплексный экзамен – 6 час.
|
|
|