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


Структура дисциплины по разделам и формам организации обучения



бет8/8
Дата06.01.2022
өлшемі235 Kb.
#12628
түріЛекции
1   2   3   4   5   6   7   8
Байланысты:
Sistemnoe programmirovanie

4.2 Структура дисциплины по разделам и формам организации обучения приведена в таблице 1.

Таблица 1



Структура дисциплины по разделам и формам организации обучения

Название раздела/темы

Аудиторная работа

(час)


СРС

(час)


Контр. Р.

Итого

Лекции

Лаб. зан.










Введение

2

2










Особенности выполнения программ

3

3










Ввод-вывод

3

3










Файловые системы

4

4










Драйвера устройств

4

4










Подсистема безопасности

4

4










Службы, особенности их создания и работы

4

4










Итого

24

24










5. ОБРАЗОВАТЕЛЬНЫЕ ТЕХНОЛОГИИ

В таблице 2 приведено описание образовательных технологий, используемых в данном модуле.

Таблица 2

Методы и формы организации обучения (ФОО)

ФОО
Методы

Лекция

Лабораторная работа.

Практ. зан./

Семинар,


Тренинг, Мастер-класс

СРС

К. пр.

IT-методы

+

+







+




Работа в команде



















Case-study




+







+




Игра



















Методы проблемного обучения.

+
















Обучение

на основе опыта






+













Опережающая самостоятельная работа




+







+




Проектный метод



















Поисковый метод













+




Исследовательский метод




+













Другие методы



















* - Тренинг, ** - Мастер-класс

6. ОРГАНИЗАЦИЯ И УЧЕБНО-МЕТОДИЧЕСКОЕ ОБЕСПЕЧЕНИЕ САМОСТОЯТЕЛЬНОЙ РАБОТЫ СТУДЕНТОВ

6.1. Самостоятельную работу студентов (СРС) можно разделить на текущую и творческую.

Текущая СРС – работа с лекционным материалом, подготовка к лабораторным работам; опережающая самостоятельная работа; выполнение домашних заданий; изучение тем, вынесенных на самостоятельную проработку; подготовка к экзамену.

Творческая проблемно-ориентированная самостоятельная работа

(ТСР) – поиск, анализ, структурирование информации по темам, выносимым на самостоятельное изучение (ресурсы Интернет в том числе).

6.2. Содержание самостоятельной работы студентов по дисциплине

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



  1. Технологии виртуализации памяти

  2. Методики командной разработки программного обеспечения

Промежуточный контроль знаний – теоретических и практических – производится в процессе защиты студентами лабораторных работ. Контроль и оценка знаний производится в соответствии с рейтинг-планом. Окончательный контроль знаний производится в форме экзамена (с учетом набранных баллов).

6.3. Контроль самостоятельной работы

Рубежный контроль в виде контрольной работы по теоретической и практической части.

По результатам текущего и рубежного контроля формируется допуск студента к экзамену. Экзамен проводится в устной форме.

6.4.Учебно-методическое обеспечение самостоятельной работы студентов

Для самостоятельной работы студентов используются сетевые образовательные ресурсы, представленные на сервере кафедры ИПС, сеть Интернет и другие научно-образовательные ресурсы.



7. СРЕДСТВА (ФОС) ТЕКУЩЕЙ И ИТОГОВОЙ ОЦЕНКИ КАЧЕСТВА ОСВОЕНИЯ ДИСЦИПЛИНЫ

Для организации текущего контроля полученных студентами знаний по данной дисциплине используются тесты, размещенные на сайте каф. ИПС. Каждый тест имеет 2 или 3 варианта и содержит несколько вопросов. Текущий контроль освоения дисциплины осуществляется при сдаче студентом лабораторных работ. Для контрольной работы предлагается перечень из теоретических вопросов и практических задач. Экзаменационные билеты также содержат теоретическую и практическую части.



8. РЕЙТИНГ КАЧЕСТВА ОСВОЕНИЯ ДИСЦИПЛИНЫ

Распределение учебного времени:

Лекции 24 часа

Лабораторные работы 24 часа

Самостоятельная работа студентов 48 часов



Основные положения по рейтинг-плану дисциплины

На дисциплину выделено 100 баллов и 5 кредитов, которые распределяются следующим образом:

8-й семестр: 5 кредитов, 100 баллов – лекции, лабораторные работы, контрольная работа, экзамен.

- текущий контроль 75 баллов;

- промежуточная аттестация (экзамен) 25 баллов.
Допуск к сдаче экзамена осуществляется при наличии более 60 баллов, обязательным является выполнение всех лабораторных работ.

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

Рейтинг-план освоения дисциплины в течение семестра приведен в ПРИЛОЖЕНИИ 1.

Банк заданий к лабораторным работам приведен в ПРИЛОЖЕНИИ 2.



9. УЧЕБНО-МЕТОДИЧЕСКОЕ И ИНФОРМАЦИОННОЕ
ОБЕСПЕЧЕНИЕ ДИСЦИПЛИНЫ


Основная литература:

  1. Таненбаум Э. Современные операционные системы, 2-е изд.: Пер. с англ. - СПб: Питер, 2003. - 1040 с.: ил.

  2. Гордеев А. В., Молчанов А. Ю. Системное программное обеспечение: Учебник для вузов - СПб: Питер, 2003. - 736 с.: ил.

  3. Вильямс А. Системное программирование в Windows 2000 для профессионалов - СПб: Питер, 2003. - 624 с.: ил.

  4. Джонсон М. Системное программирование в среде Win32, 2-е изд.: Пер. с англ. - M.: Издательский дом "Вильямс", 2001. - 464 с.: ил.

  5. Рихтер Дж. Windows для профессионалов: создание эффективных Win32 приложений с учетом специфики 64-разрядной версии Windows, 4-е изд.: Пер, англ - СПб: Питер; М.: Издательско-торговый дом "Русская Редакция", 2001. - 752 с.; ил.

Дополнительная литература:

  1. Электронная версия книги Solomon D., Russinovich M. Inside Microsoft Windows 2000 : Microsoft Press, 2000. -

  2. Электронная версия книги Brain M., Reeves R. Win32 System Services: The Heart of Windows 98 and Windows 2000 : Prentice Hall PTR, 2000

  3. Электронная версия книги Oney W. Programming the Microsoft Windows Driver Model : Microsoft Press, 1999

Программное обеспечение и Internet-ресурсы:

  1. Операционная система Microsoft Windows XP или новее

  2. Программа виртуализации Oracle VirtualBox

  3. Операционная система Ubuntu Linux для работы в качестве гостевой операционной системы виртуальной машины VirtualBox

  4. Среда разработки (на выбор):

    1. Borland Turbo Delphi 2006 или новее

    2. Среда разработки Microsoft Visual Studio 2005 или новее

  5. Driver Development Kit – среда разработки драйверов. Используется для выполнения лабораторных работ по созданию драйверов.


10. МАТЕРИАЛЬНО-ТЕХНИЧЕСКОЕ ОБЕСПЕЧЕНИЕ ДИСЦИПЛИНЫ

Лабораторные работы выполняются в компьютерном классе, оснащенном 8‑ю компьютерами на базе процессоров Intel Core 2 Duo.




Компьютерный класс (Ул. Советская, 84/3,

Ауд. 408А-ИК)



Компьютеры Pentium Core2 1,6GHz (8 шт.),
мониторы LCD 17" Acer (8 шт.)

Сетевой коммутатор CNet 8 ports



Программа составлена на основе Стандарта ООП ТПУ в соответствии с требованиями ФГОС по направлению 230100 «Информатика и вычислительная техника».

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

протокол № 1 от «31» 08 2011 г.


Автор – старший преподаватель каф. Информатики и проектирования систем

Дорофеев Вадим Анатольевич


Рецензент – профессор каф. Информатики и проектирования систем

Погребной Владимир Кириллович


ПРИЛОЖЕНИЕ
Дисциплина «Системное программирование» Число недель – 15

Институт кибернетики Кол-во кредитов – 3

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

Лекции, час – 24

Семестр 8 Лаб. работы, час. – 24

Группы 8В11, 8В12 Всего аудит. работы, час. – 48

Преподаватель Дорофеев Вадим Анатольевич, старший преподаватель

Самост. работа, час. – 48



ВСЕГО, час. – 96

Рейтинг-план освоения дисциплины «Системное программирование»

Недели

Текущий контроль

Теоретический материал

Практическая деятельность







Название раздела

Темы лекций

Контролир. материал

Баллы

Название лаб. работ

Баллы

Индивид. задание

Баллы

Итого

1

Введение

Основные понятия и их определения, классификация







Создание простого Windows приложения

5







7

2

Интерфейс операционной системы







Работа со строками

5







7

3

Особенности выполнения программ

Объекты ядра, процесс выполнения программ







Работа с объектами ядра Win32

8







10

4

Синхронизация потоков, решение проблем синхронизации







5

Ввод-вывод

Принципы аппаратуры ввода-вывода, программное обеспечение







Работа с процессами и потоками

8







10

6

Компоненты ввода-вывода и их взаимодействие







7

Файловые системы

Файлы, каталоги







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

8







10

8

Реализация файловой системы







9

Взаимоблокировки, безопасные и небезопасные состояния







Взаимодействие процессов

8







10

10

Драйвера устройств

Организация подсистемы управления







11

Унифицированная модель разработки драйверов







Взаимоблокировки

8







9

12

Подсистема безопасности

Подсистема безопасности: цели; защита объектов







13

Реализация подсистемы безопасности







Создание драйвера

10







10

14

Службы

Назначение, особенности работы







15

Создание, запуск, удаление службы







Итоговая

75

Зачёт

25

Итого баллов по дисциплине

100

«31» 08 2011 г.



Зав. кафедрой ИПС Сонькин М.А.

Преподаватель Дорофеев В.А.

ПРИЛОЖЕНИЕ 2


Банк заданий к лабораторным работам (примерный)

    1. Лабораторная работа №1





  • Вывести количество времени, прошедшее с момента запуска операционной системы (формат: сутки, часы, минуты, секунды)

  • Написать программу, которая выводит текущее время в MessageBox.

  • Вывести на экран имя компьютера и текущего пользователя



Лабораторная работа №2

Функцию написать в двух вариантах: для ANSI-строк и строк UNICODE (UTF-8).




  1. Написать функцию addslashes (char * str), которая вставляет символ обратного слэша (\) перед одинарными и двойными кавычками, встречающимися в строке.

  2. Написать функцию ltrim (char * str), которая удаляет пробелы в начале строки.

  3. Написать функцию comparestrings (char * str1,char * str2), которая сравнивает количество символов в строках. Возвращаемые значения: 1 - если str1 короче, чем str2; 2 - если str2 короче, чем str1; 3 - если количество символов в строках одинаково.



Лабораторная работа №3





  • Создание одного из объектов ядра и получение описателя(handle) на него (функции Create: - CreateProcess, CreateMutex etc)

  • Проверка, что объект создан, то есть описатель не равен NULL, иначе получить код ошибки (функция GetLastError), форматировать сообщение об ошибке (FormatMessage) и вывести его (с помощью MessageBox или в консоль)

  • Получение параметров описателя объекта и вывод их на экран

  • Дублирование описателя этого же объекта (функция DuplicateHandle)

  • Проверка равны ли первоначальный описатель и его клон, вывод на экран результата

  • Закрытие первого описателя (CloseHandle)

  • Проверка существует ли еще объект ядра, то есть вызов любой функции, связанной с этим объектом (например для объекта File - ReadFile), проверка результата выполнения функции и вывод на экран сообщения об удачном/неудачном выполнении

  • Закрытие второго описателя

  • Проверка существует ли еще объект ядра и вывести результат на экран (аналогично пункту 7)



Лабораторная работа №4





  1. Создать поток, который выводит два сообщения через MessageBox с интервалом в 5 секунд. После окончания его работы основной поток процесса выводит сообщение об этом.

  2. Создать поток и вывести в нем параметры текущего процесса: заголовок окна, расстояния по осям X и Y от левого верхнего угла, ширину и высоту окна, дескрипторы стандартных устройств ввода и вывода.

  3. Вывести параметры текущего процесса: заголовок окна, расстояния по осям X и Y от левого верхнего угла, ширину и высоту окна, дескрипторы стандартных устройств ввода и вывода. Затем создать процесс с заданными параметрами заголовка окна, ширины, высоты и смещения от левого верхнего угла экрана. После чего вывести те же параметры, что и для первого процесса.

  4. Создать процесс и вывести его переменные окружения.

Лабораторная работа №5

1. Создать две функции потоков, которые выполняют следующие расчеты:


Поток 1: a=(b+3); b = (b-1);

Поток 2: b = (b+2);


Каждая функция потока вычисляет свою формулу в цикле из ста итераций. При вычислении значения переменных а и b выводить на экран.
2. Произвести те же вычисления при помощи критических секций. После этого вывести значения переменных a и b на экран.
3. Написать две программы:
Программа 1 создает объект ядра «событие» выводит на экран текущее время и делает задержку на пять секунд, после чего освобождает «событие»; Перед задержкой запустить Программу 2;
Программа 2 ждет, пока освободится объект ядра «событие», после чего выводит на экран текущее время.
4. Создать 3 функции потоков, каждая из которых выводит в цикле из 25 итераций сообщение «Это поток № номер_потока». Сообщение заносить в строку, на которую указывает глобальная переменная str. Сделать синхронизацию потоков при помощи мьютексов.

Лабораторная работа №6





  1. Создать два дочерних процесса и соединить их анонимным каналом. Для этого использовать переопределение стандартных устройств ввода/вывода. Основная программа создает канал, процессы и передает им описатели чтения/записи канала. Вторая программа получает от родительской описатель записи в канал в качестве стандартного устройства вывода и передает по каналу данные из файла (определяется программистом). Третья программа получает описатель чтения из канала в качестве стандартного устройства ввода, считывает через него информацию из канала и выводит ее на экран.

  2. Вести широковещательную рассылку сообщений по сети при помощи почтовых ящиков. Сервер создает почтовый ящик и периодически записывает туда сообщения. Клиенты подключаются к этому ящику, считывают полученные сообщения и выводят их на экран.

  3. Реализовать механизм клиент/сервер при помощи именованных каналов. Сервер передает клиенту аргументы, при помощи которых клиент проводит определенные вычисления (например, y=3*a+5*b-2*c). Результат вычислений передается обратно по каналу серверу, который осуществляет вывод на экран.



Лабораторная работа №7

Решить задачу обедающих философов (n=5).



  1. Три процесса записывают в один и тот же файл текстовую строку. Первый процесс создает файл, второй процесс может работать с файлом, если первый успешно завершил свою работу, третий процесс дописывает в конец файла свою строку только в том случае, если второй процесс успешно выполнил свою работу и освободил файл.

  2. Два процесса записывают данные в файл, один считывает и выводит их на экран. Доступ к файлу возможен только в монопольном режиме.



Лабораторная работа №8

Разработать драйвер устройства, имитирующий последовательный ввод/вывод.












Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет