Рабочая программа учебной дисциплины (модуля) Системное программирование

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

Содержание


010400.68 – Прикладная математика и информатика
1. Цели освоения дисциплины
2. Место дисциплины в структуре магистерской программы
3. Компетенции обучающегося, формируемые в результате освоения дисциплины (модуля) «Системное программирование»
4. Структура и содержание дисциплины (модуля) «Системное программирование»
5. Образовательные технологии
7. Учебно-методическое и информационное обеспечение дисциплины (модуля)
8. Материально-техническое обеспечение дисциплины (модуля)
Подобный материал:
Министерство образования и науки Российской Федерации

ГОУ ВПО «Мордовский государственный университет им. Н.П.Огарёва»

Математический факультет

Кафедра систем автоматизированного проектирования



«УТВЕРЖДАЮ»

_____________________

_____________________

«______»__________201_ г.



РАБОЧАЯ ПРОГРАММА УЧЕБНОЙ ДИСЦИПЛИНЫ (МОДУЛЯ)


Системное программирование


Наименование магистерской программы
Математическое и программное обеспечение вычислительных машин


Направление подготовки

010400.68 – Прикладная математика и информатика


Квалификация (степень) выпускника

Магистр


Форма обучения

очная


г. Саранск

2011г.

1. Цели освоения дисциплины

Целью освоения дисциплины «Системное программирование» является подготовка квалифицированных специалистов, владеющих фундаментальными знаниями и практическими навыками в области операционных систем и системного программирования.

В процессе изучения дисциплины решаются следующие задачи:

- изучение организации и принципов построения современных операционных систем и системных программ;

- формирование представлений об общей методологии разработки системно-ориентированных программ с использованием современных алгоритмических языков и систем программирования.

- углубленная подготовка студентов в области применения аппаратных и программных средств современных процессоров, предназначенных для поддержки многозадачных операционных систем.


2. Место дисциплины в структуре магистерской программы

Дисциплина относится к вариативной части профессионального цикла.

Для изучения курса «Системное программирование» необходимы знания принципов работы ЭВМ, навыки алгоритмизации и разработки программ на алгоритмических языках высокого уровня и машинно-ориентированных языках, работы с операционными системами и системами программирования на уровне, достаточном для отладки и выполнения программ. Курс базируется на сведениях, полученных при изучении курсов «Основы информатики», «Архитектура компьютеров», «Математическая логика и теория алгоритмов», «Алгоритмы. Построение и анализ», «Языки и методы программирования», «Операционные системы».

Полученные в результате изучения данной дисциплины знания и умения и навыки используются в следующих дисциплинах: «Инструментальные среды программирования», «Язык программирования Java», «CASE-средства проектирования программного обеспечения», «Технологии параллельного программирования», «Распределенные офисные технологии» «Веб-приложения на Java», «Сетевые технологии и сетевое программирование», «Программная реализация экспертных систем и генетических алгоритмов».


3. Компетенции обучающегося, формируемые в результате освоения дисциплины (модуля) «Системное программирование»

    Процесс изучения дисциплины направлен на формирование следующих компетенций:
    • способность использовать углубленные теоретические и практические знания в области прикладной математики и информатики (ОК-3),
    • способность разрабатывать концептуальные и теоретические модели решаемых научных проблем и задач (ПК-2),
    • способность углубленного анализа проблем, постановки и обоснования задач научной и проектно-технологической деятельности (ПК-3).

В результате изучения дисциплины студент должен:

    Знать:

– способы разработки системного программного обеспечения с учетом аппаратно-программных особенностей вычислительной машины;

– особенности современных систем программирования и принципы разработки системного программного обеспечения.

    Уметь:

    − разрабатывать программы в ОС Windows с графическим пользовательским интерфейсом;

    − разрабатывать программы, в операционной системе UNIX с использованием системных вызовов;

    − разрабатывать многопоточные программы с синхронизацией данных;

    − разрабатывать динамически подключаемые библиотеки;

    − перехватывать вызовы к операционной системе;

    Владеть:

– навыками разработки программ в ОС Linux, Windows;

– навыками разработки многопоточных программ с синхронизацией данных;

– навыками разработки динамически подключаемых библиотек;

– навыками перехвата вызовов к операционной системе.


4. Структура и содержание дисциплины (модуля) «Системное программирование»


Общая трудоемкость дисциплины составляет 2 зачетных единицы 72 часа.




п/п

Раздел дисциплины

Сем

Неделя
семестра

Виды учебной работы, включая самостоятельную работу студентов и трудоемкость (в часах)

Формы
текущего
контроля
успеваемости
(по неделям семестра)

Форма промежуточной аттестации
(по семестрам)

Лекц.

Лаб.

СРС

Всего

1

Основы операционных систем

1

1 (лекц.)
1-3 (лаб.)

2

6

6

14

Отчет по ЛР №1
(1-3 неделя)

зачет

2

Операционные система UNIX (Linux)

1

3, 5 (лекц.)
4-6 (лаб.)

4

6

8

18

Отчет по
ЛР №2 (4 неделя),
ЛР №3 (5 неделя),
ЛР №4 (6 неделя)

3

Операционная система Windows в пользова­тельском режиме

1

7, 9 (лекц.),
7-10 (лаб.)

4

8

8

20

Отчет по
ЛР №5 (7, 8 неделя),
ЛР №6 (9, 10 неделя)

4

Операционная система Windows в режиме ядра

1

11, 14 (лекц.),
11-14 (лаб.)

4

8

8

20

Отчет по
ЛР №7 (11, 12 неделя),
ЛР №8 (13, 14 неделя)

Итого

14

28

30

72





5. Образовательные технологии

Изучение дисциплины предполагает использование традиционных способов коллективного обучения – лекций, лабораторных занятий, индивидуальных заданий с последующей отчетностью. Применяемые информационные технологии: лекции в форме презентаций, обучающие и тестирующие программы, электронные учебники.


6. Оценочные средства для текущего контроля успеваемости, промежуточной аттестации по итогам освоения дисциплины и учебно-методическое обеспечение самостоятельной работы студентов

Формой текущего контроля знаний студентов является контроль правильности выполнения и оформления лабораторных и самостоятельных работ.

Формой итогового контроля знаний и умений студентов по курсу «Математические методы и комплексы программ автоматизации проектирования систем» является зачет.

Темы лабораторных работ:
  1. Исследование вычислительного процесса.
  2. Управление памятью. Сегментированная модель памяти.
  3. Управление памятью. Страничная модель памяти. Алгоритмы «FIFO», «Вторая попытка», «Часы».
  4. Управление памятью. Трансляция виртуальных адресов.
  5. Вычисление циклического контрольного кода.
  6. Организация таблиц идентификаторов.
  7. Проектирование простейшего лексического анализатора.
  8. Построение простейшего дерева вывода.

Перечень вопросов для организации итогового контроля:

  1. Назначение, основные этапы развития операционных систем. Принципы построения ОС.
  2. Понятие процесса, потока, ресурса, свойства, классификация. Концепция виртуализации. Концепция прерывания.
  3. Состояние процессов. Описание процессов. Взаимодействие процессов. Задача взаимного исключения. Решение задачи взаимного исключения. Задача «производители-потребители» и её решения.
  4. Распределение ресурсов, проблема тупиков. Алгоритм банкира. Применение алгоритма банкира.
  5. Требования к управлению памятью. Схемы распределения памяти. Страничная организация памяти. Сегментация памяти.
  6. Структуризация адресного пространства виртуальной памяти. Задачи управления виртуальной памятью: задача размещения, задача перемещения, задача преобразования адресов, задача замещения.
  7. Типы планирования. Алгоритмы планирования. Примеры реализации алгоритмов планирования в современных операционных системах.
  8. Организация функций ввода-вывода. Буферизация операций ввода-вывода. Дисковое планирование. Система управление файлами. Организация файлов, доступ к файлам. Управление внешней памятью.
  9. Управление памятью в реальном и защищённом режимах. Дескрипторные таблицы и дескрипторы сегментов
  10. Понятие процесса, потока, ресурса, свойства, классификация. Концепция виртуализации. Концепция прерывания.
  11. Стандарты UNIX. Пользователи системы, атрибуты пользователя. Создание программы, исходный текст, заголовки. Системные вызовы и функции стандартных библиотек. Обработка ошибок. Форматы выполняемых файлов.
  12. Типы файлов. Владельцы файлов. Управление правами доступа в файловой системе. Атрибуты файлов. Управление свойствами файлов. Работа с файлами. Структура файловой системы.
  13. Процессы в ОС UNIX. Типы процессов. Атрибуты процессов. Создание и управление процессами. Перегрузка процессов. Завершение процессов.
  14. Сигналы. Обработка сигналов. Неименованные каналы. Именованные каналы. Дополнительные средства взаимодействия между процессами. Сообщества, семафоры, разделяемая память. Понятие потока ОС UNIX.
  15. Архитектура и основные подсистемы ОС Windows. Системный реестр ОС Windows, его назначение и использование.
  16. Основные элементы программ с оконным пользовательским интерфейсом. Понятие оконного сообщения. Источники сообщений. Очереди сообщений. Обработка сообщений мыши, клавиатуры.
  17. Понятие ресурсов программ. Виды ресурсов.
  18. Принципы построения графической подсистемы ОС Windows. Понятие контекста устройства. Вывод графической информации на физическое устройство. Графические инструменты.
  19. Организация многозадачности в ОС Windows. Понятие процесса и потока. Контекст потока. Создание и завершение процессов и потоков. Синхронизация потоков.
  20. Понятие динамически подключаемой библиотеки. Структура DLL-библиотеки. Создание DLL-библиотеки.
  21. Отладчики для режима ядра. Режимы отладки. Компоненты отладчика.
  22. Прерывания. Уровни прерываний. Подпрограммы обработки прерываний. Отложенные процедуры. Асинхронные процедуры.
  23. Пулы памяти. Пул подкачиваемой памяти. Пул неподкачиваемой памяти. Пул сессии, особый пул. Тегирование пулов.
  24. Структура драйвера. Точки входа в драйвер. Объект, описывающий драйвер. Объект, описывающий устройство. Объект, описывающий файл. Взаимосвязь объектов.
  25. Перехват функций ОС Windows API в пользовательском режиме. Интерфейсный модуль NTDLL.DLL. Функции ОС Windows API в режиме ядра. Технология перехвата функций в ядре за счёт модификации таблиц дескрипторов функций ОС Windows.


7. Учебно-методическое и информационное обеспечение дисциплины (модуля):

а) основная литература
  1. Э. Таненбаум. Операционные системы. Разработка и реализация. СПб.: Питер, 2006. - 568 с.
  2. Э. Таненбаум. Современные операционные системы. 2-е изд. - СПб.: Питер, 2002. - 1040 с.
  3. А.В. Столяров. Введение в операционные системы. Конспект лекций, Москва, 2006. – 192 с.:ил.
  4. Молчанов А.Ю. Системное программное обеспечение. Лабораторный практикум. – Спб.: Питер, 2005. – 284 с.: ил.
  5. С. Назаров, А. Кириченко, Л. Гудыно Операционные системы. Практикум, Кудиц-образ: Москва, 2008. - 464 с. ил.

б) дополнительная литература
  1. Д.В. Иртегов. Введение в операционные системы. - 2-е изд., перераб. и доп. -СПб.: БХВ-Петербург, 2008. - 1040 с.: ил. – (Учебное издание)
  2. А.В.Гордеев, А.Ю. Молчанов. Системное программное обеспечение. – СПб.: Питер, 2001. – 736с.:ил.
  3. Молчанов А.Ю. Системное программное обеспечение: Учебник для вузов. 3-е изд. – Спб.: Питер, 2010. – 400 с.: ил.


в) программное обеспечение и Интернет- ресурсы

Пакеты прикладных программ
  1. Visual Studio (2005), MSDN – (комплекс систем программирования, обеспечивающий разностороннюю работу с базами данных и сетью).

Интернет-ресурсы
  1. [Электронный ресурс] osofl.com/
  2. [Электронный ресурс] ru/


8. Материально-техническое обеспечение дисциплины (модуля):
  1. Аудитория для проведения лекционных занятий, имеющая необходимое количество посадочных мест (для занятий с группой из 10 студентов) и оснащенная оборудованием для проведения презентаций (ноутбук, проектор);
  2. Аудитория с персональными компьютерами для проведения лабораторных занятий, имеющая необходимое количество рабочих мест (для занятий с подгруппой из 10 студентов), оборудованная персональными компьютерами на базе процессора Intel Pentium II или выше, оснащенных необходимым системным и прикладным программным обеспечением.



Программа составлена в соответствии с требованиями ФГОС ВПО с учетом рекомендаций и ПрООП ВПО по направлению 010400.68 – «Прикладная математика и информатика» и магистерской программе «Математическое и программное обеспечение вычислительных машин».


Автор: к.т.н., доцент кафедры систем автоматизированного проектирования
Шамаев А.В.


Рецензент (ы)


Программа одобрена на заседании


от «    » ____________ 2011 года, протокол № .