- •1.2.2. Команды управления циклом
- •1.2.3. Работа с массивами
- •1.3. Задание на лабораторную работу
- •1.4. Отчет по лабораторной работе
- •2. Лабораторная работа № 4
- •2.1. Общие методические указания по выполнению лабораторной работы
- •2.2. Теоретические сведения
- •2.2.1. Стек и сегмент стека
- •2.2.2. Стековые команды
- •2.2.3 Приемы работы со стеком
- •2.3. Задание на лабораторную работу
- •2.4. Отчет по лабораторной работе
- •3 .Лабораторная работа № 5
- •3.1. Общие методические указания по выполнению лабораторной работы
- •3.2. Теоретические сведения
- •3.2.1. Дальние переходы
- •3.2.2. Подпрограммы (процедуры)
- •3.3. Задание на лабораторную работу
- •3.4. Отчет по лабораторной работе
- •4. Лабораторная работа №6.
- •4.1. Общие методические указания по выполнению лабораторной работы
- •4.2. Теоретические сведения
- •4.3.Задание на лабораторную работу
- •4.4. Отчет по лабораторной работе
4.3.Задание на лабораторную работу
Порядок выполнения
– получить у преподавателя задание на разработку программы, реализующей тот или иной алгоритм;
– определить, какой список (списки) необходим (эффективен) для реализации алгоритма (односвязный, двусвязный, циклический, упорядоченный тем или иным образом, содержащий записи или указатели на них, стек или очередь и т.п.);
– разработать структуру записи для хранения данных, необходимую для реализации алгоритма;
– согласовать свои разработки с преподавателем;
– разработать и согласовать интерфейс модуля
– распределить обязанности по разработке модуля и оконного приложения.
– написать программу, реализующую выбранный алгоритм.
Рекомендации по написанию оконного приложения
Оконное приложение должно предоставлять возможности моделирования ситуации, в которой ОС использует заданный алгоритм. Например, для моделирования распределения процессорного времени в соответствии с дисциплиной RR придется моделировать следующие события:
– появление новой задачи (задача должна попасть в очередь готовых к выполнению);
– завершение выполнившейся задачи (задача удаляется из системы);
– переход задачи в состояние ожидания;
– выход задачи из состояния ожидания;
– истечение кванта времени, отпущенного выполняющейся задаче и т.д.
При этом задачу будет представлять запись – дескриптор задачи. Необходимо будет поддерживать 2 списка: список готовых к выполнению задач и список заблокированных задач. В обоих случаях это стандартная односвязная очередь с элементами одного и того же типа, т.е. для работы с обоими списками можно использовать одни и те же подпрограммы (один и тот же модуль).
Выбор используемых элементов управления произволен. Можно воспользоваться следующими рекомендациями:
– инициализация моделируемых событий – по нажатию кнопки.
– задание параметров событий (например, сколько процессорного времени требуется вновь создаваемой задаче и т.п.) – элементы типа Edit.
Необходимо тем или иным способом показывать текущее состояние списка (списков). Можно, например, выводить его содержимое в Edit.
Для облегчения отладки и демонстрации программы можно заготовить массив наборов параметров в текстовом файле и загружать их в соответствующие окошки по нажатию специальной кнопки. Так, например, можно быстро «породить» несколько процессов.
4.4. Отчет по лабораторной работе
Отчет по лабораторной работе должен содержать:
– полученное задание;
– описание моделируемого алгоритма;
– перечень и описание моделируемых событий;
– описание используемого списка (списков);
– интерфейс модуля;
– полный текст модуля (с достаточными для понимания комментариями).
Текст оконного приложения не требуется.
Кроме отчета и демонстрации работающих программ студент отвечает на вопросы по теоретической части, относящейся к данной лабораторной работе.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Пильщиков В.Н. Программирование на языке ассемблера IBM PC / В.Н. Пильщиков. М.: «Диалог-МИФИ», 1994. 288 с.
2. Назаров С.В. Операционные системы. Практикум / С.В. Назаров, Л.П. Гудыно, А.А. Кириченко. М.: КУДИЦ-ПРЕСС, 2008. 464 с.
3. Танненбаум Э. Современные операционные системы. 2-е изд. / Э. Танненбаум. СПб.: Питер, 2007. 1038 с.
СОДЕРЖАНИЕ
1. Лабораторная работа № 3. Организация ветвления, циклов и индексирования………………………………… |
1 |
||
|
1.1. Общие методические указания по выполнению лабораторной работы……………………………........ |
1 |
|
|
1.2. Теоретические сведения……………………………... |
1 |
|
|
|
1.2.1. Команды переходов…………………………… |
1 |
|
|
1.2.2. Команды управления циклом………………… |
9 |
|
|
1.2.3. Работа с массивами……………………………. |
11 |
|
1.3. Задание на лабораторную работу…………………… |
13 |
|
|
1.4. Отчет по лабораторной работе……………………… |
15 |
|
2. Лабораторная работа № 4. Стек………………………….. |
15 |
||
|
2.1. Общие методические указания по выполнению лабораторной работы……………………………........ |
15 |
|
|
2.2. Теоретические сведения……………………………... |
15 |
|
|
|
2.2.1. Стек и сегмент стека…………………………... |
15 |
|
|
2.2.2. Стековые команды…………………………….. |
16 |
|
|
2.2.3. Приемы работы со стеком…………………….. |
18 |
|
2.3. Задание на лабораторную работу…………………… |
20 |
|
|
2.4. Отчет по лабораторной работе……………………… |
21 |
|
3. Лабораторная работа № 5. Процедуры…………………... |
22 |
||
|
3.1. Общие методические указания по выполнению лабораторной работы……………………………........ |
22 |
|
|
3.2. Теоретические сведения……………………………... |
22 |
|
|
|
3.2.1. Дальние переходы……………………………... |
22 |
|
|
3.2.2. Подпрограммы (процедуры)………………….. |
25 |
|
3.3. Задание на лабораторную работу…………………… |
33 |
|
|
3.4. Отчет по лабораторной работе……………………… |
36 |
|
4. Лабораторная работа № 6. Использование связных списков для управления памятью и процессами…………..…... |
37 |
||
|
4.1. Общие методические указания по выполнению лабораторной работы……………………………........ |
37 |
|
|
4.2. Теоретические сведения……………………………... |
38 |
|
|
4.3.Задание на лабораторную работу……………………. |
40 |
|
|
4.4. Отчет по лабораторной работе……………………… |
41 |
|
Библиографический список………………………………… |
42 |