Рабочая программа трудоемкость дисциплины 5 зачетных единиц направление 010400 информационные технологии

Вид материалаРабочая программа

Содержание


Цель курса
Задача учебного курса
Требования к уровню освоения дисциплины
Лабораторная работа №1. Создание базовых процедур ввода вывода.
Лабораторная работа №2. Инициализация защищенного режима.
Лабораторная работа №3. Организация виртуальной памяти.
Лабораторная работа №4. Реализация простейшей многозадачности.
Подобный материал:
МИНОБРНАУКИ

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ФАКУЛЬТЕТ ИНФОРМАТИКИ


УТВЕРЖДАЮ

Декан факультета

С.П. Сущенко

« » 2010 г.


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


(СД.02)

РАБОЧАЯ ПРОГРАММА

трудоемкость дисциплины 5 зачетных единиц


НАПРАВЛЕНИЕ 010400 – ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ


Томск

2010


УТВЕРЖДЕНО

кафедрой теоретических основ информатики.

протокол №05/10 от 01.09.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.Лабораторный практикум


Лабораторная работа №1. Создание базовых процедур ввода вывода. Создание и отладка подпрограмм вывода строк, чисел и ввода кодов нажатых клавиш в реальном режиме. Обработка прерываний от клавиатуры и таймера.

Лабораторная работа №2. Инициализация защищенного режима. Создание подпрограмм перехода в защищенный режим и обратно в реальный. Перепрограммирование контроллера прерываний и создание обработчиков прерываний.

Лабораторная работа №3. Организация виртуальной памяти. Создание структур и подпрограмм для включения трансляции страниц. Имитация выгруженных страниц и обработка исключений с целью имитации загрузки необходимых страниц виртуального пространства.

Лабораторная работа №4. Реализация простейшей многозадачности. Создание структур и подпрограмм для организации нескольких задач (задачи все предоставляются разные на выбор). Создание обработчика системного таймера для квантования процессорного времени между задачами. Реализация простейшей синхронизации для доступа к общему ресурсу.


III.Распределение часов курса по темам и видам работ


№№ пп

Наименование тем

Всего часов

Аудиторные занятия (час),

в том числе

Самостоятельная

работа










лекции

семинары

лабораторные занятия




1.1

Архитектура Фон-Неймана как основа построения современных компьютеров

2

2










1.2

Реальный режим работы процессоров семейства х-86. Внешние устройства

8

6







2

1.3

Защищенный режим работы процессов х-86 (архитектура IA32)

8

6







2

1.4

Обзор архитектуры х-86-64 (AMD64/EM64T)

4

2







2

1.5

Обзор архитектуры IA64 (Itanium)

4

2







2

1.6

Процессы

6

4







2

1.7

Потоки

6

4







2

1.8

Архитектура памяти

6

4







2

1.9

Использование виртуальной памяти

6

4







2

1.10

Файлы, проецируемые в память

4

2







2

1.11

Кучи

4

2







2

1.12

Синхронизация потоков

4

2







2

1.13

Обработка сообщений

4

2







2

1.14

Библиотеки динамической компоновки

8

6







2

1.15

Работа с файлами

6

4







2

2.1

Создание базовых процедур ввода вывода

4







4




2.2

Инициализация защищенного режима

8







8




2.3

Организация виртуальной памяти

4







4




2.4

Реализация простейшей многозадачности

4







4




ИТОГО




100

52

0

20

28

IV. Учебно-методическое обеспечение курса

IV.1. Основная литература

  1. Intel Architecture Software Developer’s Manual. Volume 1: Basic Architecture.
  2. Intel Architecture Software Developer’s Manual. Volume 2: Instruction Set Reference.
  3. Intel Architecture Software Developer’s Manual. Volume 3: System Programming Guide.
  4. Win32 Software Development Kit. © 1985-1996 Microsoft Corporation.
  5. Джеффри Рихтер. Windows для профессионалов (программирование в Win32 API для Windows NT 3.5 и Windows 95)/Пер. с англ. – Издательский отдел “Русская редакция” ТОО “Channel Trading Ltd.”, 1995. – 720 с.: ил.

IV.2. Дополнительная литература

  1. Руководство по архитектуре IBM PC AT / Ж.К. Голенкова, А.В. Заблоцкий, М.Л. Мархасин и др.; Под общ. Ред. М.Л. Мархасина. – Мн.: ООО «Консул», 1992. – 949 с.: ил.



IV.3. Программное обеспечение лабораторного практикума


Windows VMware – эмулятор компьютера х-86

MS DOS 6.22 – операционная система для запуска компиляторов и выполняемых лабораторных задач.