скачать МИНОБРНАУКИ ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ФАКУЛЬТЕТ ИНФОРМАТИКИ УТВЕРЖДАЮ Декан факультета С.П. Сущенко « » 2010 г. СИСТЕМНОЕ ПРОГРАММИРОВАНИЕ(СД.02) РАБОЧАЯ ПРОГРАММА трудоемкость дисциплины 5 зачетных единиц НАПРАВЛЕНИЕ 010400 – ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ Томск 2010
I.Организационно-методический раздел^ – изучение основ низкоуровневого программирования современных компьютерных систем; изучение средств системного программирования в среде Windows, достаточных для разработки системных программ и утилит. ^ – освоение методов программирования на низком уровне с использованием языков системного программирования, обзор функций API. Дисциплины-предшественники – основы программирования, архитектура вычислительных систем, операционные системы. ^ – умение создавать программные модули для ядра операционной системы, умение использовать API для разработки системных программ. II.Содержание дисциплиныII.1.Лекционный курсТема 1. Архитектура Фон-Неймана как основа построения современных компьютеров.Целочисленная арифметика, кодирование целых чисел. Структура вычислительной установки (ВУ). Определение и способы функционирования основных компонент ВУ. Системная шина. Центральный процессор. Оперативная память. Постоянная память. Устройства ввода/вывода. Классы команд процессора. Вызов подпрограмм и прерываний. Первая выполняемая программа. Назначение операционной системы и ее соотношение с программами пользователя. Тема 2. Реальный режим работы процессоров семейства х-86. Внешние устройства.Адресное пространство. Регистры и методы адресации. Система команд. Адресация памяти. Взаимодействие в BIOS. Обзор структуры объектных и запускаемых модулей. Синтаксис языка ассемблера. Обзор устройств FPU и MMX. Основные внешние устройства. Видео подсистема. Клавиатура. Дисковая подсистема. Системный таймер. Контроллер прерываний. Часы реального времени. Тема 3. Защищенный режим работы процессов х-86 (архитектура IA32).Системные регистры и флаги. Управление памятью (сегментация и трансляция страниц). Управление процессором (переключение в защищенный режим, возврат в реальный режим). Защита на уровне сегментов. Защита на уровне страниц. Обработка прерываний и исключений. Управление задачами. Эмуляция 8086 процессора. Тема 4. Обзор архитектуры х-86-64 (AMD64/EM64T).Режимы работы процессора. Регистры и способы адресации. Виртуальная память (трансляция страниц). Обработка прерываний и исключений. Тема 5. Обзор архитектуры IA64 (Itanium).Среда выполнения приложений и аппаратные возможности для увеличения производительности. Регистры процессора. Формирование команд процессора. Системный уровень: адресация и защита; виртуальная память; прерывания. Тема 6. Процессы.Объекты ядра. Win32-приложение. Функция CreateProcess. Завершение процесса. Порожденные процессы. Тема 7. Потоки.Когда нужны потоки? Проблемы, связанные с потоками. Механизм выполнения потока. Функция CreateThread. Завершение потока. Дескрипторы и псевдодескрипторы. Распределение времени между потоками. Потоки в Delphi. Тема 8. Архитектура памяти.Виртуальное адресное пространство. Регионы в адресном пространстве процесса. Передача физической памяти региону. Физическая память. Атрибуты защиты. Функции состояния адресного пространства процесса. Тема 9. Использование виртуальной памяти.Резервирование региона в адресном пространстве процесса. Передача памяти зарезервированному региону. Возврат физической памяти и освобождение региона. Изменение атрибутов защиты. Блокировка физической памяти. Стек потока. Тема 10. Файлы, проецируемые в память.Проецирование в память EXE и DLL файлов. Этапы создания проекции файла. Когерентность проецируемых файлов. Совместный доступ процессов к данным. Частичная передача памяти проецируемым файлам. Тема 11. Кучи.Куча по умолчанию. Дополнительные кучи. Создание кучи4. Выделение блока памяти из кучи. Получение и изменение размера блока. Освобождение блока, уничтожение кучи. Тема 12. Синхронизация потоков.Механизм синхронизации. Критические разделы. Синхронизация потоков с объектами ядра. Объекты Mutex. Семафоры. События. Приостановка исполнения потока. Тема 13. Обработка сообщений.Очередь потока и обработка сообщений. Асинхронная обработка сообщений. Функции синхронной обработки сообщений. Состояния очереди потока. Алгоритм выборки сообщений из очереди. Пересылка данных посредством сообщений. Разупорядоченный ввод. Локальное состояние ввода. Тема 14. Библиотеки динамической компоновки.Создание DLL. Неявная динамическая компоновка. Явная динамическая компоновка. Функция входа/выхода. Экспорт и импорт. Тема 15. Работа с файлами.Файловые системы. Общесистемные операции и работа с томами. Работа с каталогами. Копирование, перемещение, удаление и переименование файлов. Создание, открытие и закрытие файлов. Синхронный режим чтения и записи файлов. Асинхронный режим чтения и записи файлов. Атрибуты файлов. Поиск файлов. Уведомления об изменениях в файловой системе II.2.Лабораторный практикум^ Создание и отладка подпрограмм вывода строк, чисел и ввода кодов нажатых клавиш в реальном режиме. Обработка прерываний от клавиатуры и таймера. ^ Создание подпрограмм перехода в защищенный режим и обратно в реальный. Перепрограммирование контроллера прерываний и создание обработчиков прерываний. ^ Создание структур и подпрограмм для включения трансляции страниц. Имитация выгруженных страниц и обработка исключений с целью имитации загрузки необходимых страниц виртуального пространства. ^ Создание структур и подпрограмм для организации нескольких задач (задачи все предоставляются разные на выбор). Создание обработчика системного таймера для квантования процессорного времени между задачами. Реализация простейшей синхронизации для доступа к общему ресурсу. III.Распределение часов курса по темам и видам работ
IV. Учебно-методическое обеспечение курсаIV.1. Основная литература
IV.2. Дополнительная литература
IV.3. Программное обеспечение лабораторного практикумаWindows VMware – эмулятор компьютера х-86 MS DOS 6.22 – операционная система для запуска компиляторов и выполняемых лабораторных задач.
|