Цель: изучить утилиты для получения информации о потоках и процессах в ОСРВ QNX.
Краткая теория
Основы работы в MS Windows Virtual PC 2007
Об отметках
Основные упражнения не отмечены никакими специальными знаками, их выполнения достаточно для удовлетворительной оценки. Дополнительные упражнения отмечены "звездочками", их выполнение необходимо для получения повышенной оценки.
"5" - в отчете выполнены все основные упражнения, дополнительно выполнены упражнения с одной и двумя "звездочками".
"4" - в отчете выполнены все основные упражнения дополнительно выполнены упражнения с одной "звездочкой".
"3" - в отчете выполнены все основные упражнения.
Упражнения
1. Изучите утилиту pidin, выполнив команду
# use pidin
# pidin -h
Выпишите назначение основных ключей и синтаксис команды.
2. Изучите утилиту sin
# use sin
Выпишите назначение основных ключей и синтаксис команды.
3. Изучите утилиту slay
# use slay
Выпишите назначение основных ключей и синтаксис команды.
4. С помощью утилиты pidin получите список запущенных процессов
и потоков. Письменно в отчете ответьте на следующие вопросы
и выполните задания.
4.1. Что такое tid?
4.2. Что такое pid?
4.3. Выпишите потоки, которые принадлежат двум разным
процессам. Запишите их tid и pid. Скриншот - в отчет.
4.4. Что означают следующие состояния потока:
CONDVAR
INTR
NANOSLEEP
READY
RECEIVE
REPLY
RUNNING
SIGSUSPEND
SIGWAITINFO
4.5. Выпишите по одному из списка потоков, которые находятся
в состояниях, перечисленных в задании 4.4. Скриншот - в отчет.
4.6. Какие дисциплины диспетчеризации потоков существуют
в ОСРВ QNX? В чем суть каждой из дисциплин?
В чем основные отличия этих дисциплин?
Как утилита pidin отмечает разные дисциплины диспетчеризации?
4.7. Найдите по 5 потоков, принадлежащих к разным дисциплинам
диспетчеризации. Скриншот - в отчет.
4.8. Что такое приоритет потока? Какие приоритеты существуют?
Как утилита pidin отмечает разные приоритеты потоков?
4.9. Найдите 5 потоков, обладающих разными приоритетами.
Скриншот - в отчет.
4.10. Найдите 5 пар разных потоков, которые принадлежат разным
процессам, но обладают одинаковым приоритетом и одинаковой
дисциплиной диспетчеризации. Скриншот - в отчет.
4.11.* Объясните, в какой последовательности будут исполняться
потоки с одинаковым приоритетом, найденные вами в задании 4.10.
Рассмотрите ситуацию в двух вариантах:
1) потоки находятся в тех состояниях, которые показала утилита
pidin;
2) предположим, что рассматриваемые потоки находятся
в состоянии READY.
4.12.* Что означает параметр -ld30 для утилиты pidin.
Получите с помощью этого параметра серию из 5 скриншотов
и объясните полученные результаты.
5. Использование утилиты sin.
5.1. Получите информацию о потоках и состояниях потоков
с помощью утилиты sin. Скриншот - в отчет.
6. Использование утилиты slay.
6.1. Измените с помощью утилиты slay только приоритет
одного из процессов. Внесите в отчет скриншот до и после изменения.
6.2. Измените с помощью утилиты slay только дисциплину диспетчеризации
одного из процессов. Внесите в отчет скриншот до и после изменения.
6.3. Измените с помощью утилиты slay приоритет и дисциплину
диспетчеризации одного из процессов. Внесите в отчет скриншот
до и после изменения.
6.4.* Выберите 5 потоков, находящихся в различных состояниях
и отправьте им различные сигналы с помощью утилиты slay.
Объясните, почему потоки реагировали на сигналы тем или иным
образом. Проиллюстрируйте свои действия скриншотами.
7.** В лабораторной работе 2 Вами созданы программы.
Внесите в них необходимые изменения и запустите их в качестве
процессов. Получите сведения о потоках этих программ с помощью
утилиты pidin. Скриншот - в отчет.
Источники
Основные
1. [Зыль] Зыль С.Н. Операционная система реального времени QNX:
от теории к практике. - СПб.: БХВ-Петербург, 2004. - 192 с.
Дополнительные
1. FAQ по QNX
http://forum.kpda.ru/index.php/topic,152.0.html
[электронный ресурс]
2. Операционная система реального времени QNX: Знакомство
http://habrahabr.ru/blogs/nix/124656/
[электронный ресурс]
3. Немного о микроядре, потоках и процессах
http://habrahabr.ru/blogs/nix/125243/
[электронный ресурс]
4. Планирование потоков
http://habrahabr.ru/blogs/nix/125835/
[электронный ресурс]
5. Межзадачное взаимодействие
http://habrahabr.ru/blogs/nix/127173/
[электронный ресурс]