Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Laba_2.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
122.37 Кб
Скачать

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ

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

Звіт

«Робота із стандартними програмами системи Unix»

з лабораторної роботи №2

з дисципліни

«Операційні системи»

Перевірив: Виконав:

ст. викладач кафедри ПЗАС студент групи ПЗ-104

Гузнін С. С. IІІ-курсу ФІТІС

Пістряк Р. Ю.

Черкаси 2013

Тема роботи: Робота із стандартними програмами системи Unix.

Мета роботи: Знайомство з процесної організацією Unix-про подібних систем. Вивчення інформаційних команд відстеження інформації про процеси. Вивчення різних типів процесів. Вивчення інформації про первинний процес init і рівнях завантаження системи. Створення програми на мові Сі з використанням системних викликів Unix реалізує породження і заміщення процесів, запуск команд Unix з користувацької програми. Познайомитися з компіляцією програм з використанням компілятора gcc.

Порядок виконання роботи:

1. Рассмотреть утилиты ps и top. Для утилиты ps рассмотреть основные ключи, используя man ps, ps –help. Выполнить команду ps со всеми основными ключами. Вывести иерархию процессов с подробным описанием. Вывести все системные процессы. Рассмотреть в дереве процессов различные типы процессов. Посмотреть место процесса init в иерархии процессов, посмотреть уровень загрузки системы по умолчанию. В каталоге /etc найти файл inittab и рассмотреть его формат. Объяснить, что получится в результате выполнения утилиты /sbin/init с параметрами 1, 3, 5, 6, 0;

2. Рассмотреть компиляцию программ с использованием компиляторов gcc и g++;

3. Изучить функции управления процессами (использовать man). Написать многопроцессную программу на Cи или C++, реализующую запуск команд Unix из процессов. Реализовать синхронизацию процессов-родителей с процессами-потомками(использовать функцию wait).

Завдання

Вариант 10. Реализовать командный файл который при старте выводит информацию о системе, информацию о пользователе, запустившем данный командный файл, далее в цикле выводит список активных пользователей в системе – запрашивает имя пользователя и выводят список всех процессов bash запущенных данным пользователем.

Теоретичні відомості

1 Получение информации о процессах в системе

Для получения информации о процессах в системе наиболее часто используются утилиты ps и top. В Linux вся информация о динамике выполнения системы отражается в каталоге /proc, утилиты ps и top собирают данные о запущенных процессах на основании информации находящейся в этом каталоге.

В командной строке наберите:

#ps –AfH | more

и вы получите список всех процессов выполняющихся в системе (Пример 2.1):

Формат команды следующий: ps [PID] [options]

Полное описание команды вы можете узнать - man ps.

Для просмотра иерархии(дерева) процессов можно воспользоваться командой tree.

Опция A – обеспечит вывод всех процессов, f – полную информацию о процессе,ключ H покажет иерархию процессов. “| more “или “| less” обеспечит ‘форматированный’ вывод на экран.

Пример 2.1 Фрагмент результата выполнения команды в ОС Novell Suse Linux 10.0.

UID PID PPID C STIME TTY TIME CMD

root 1 0 0 18:23 ? 00:00:01 init [5]

root 2 1 0 18:23 ? 00:00:00 [ksoftirqd/0]

root 3 1 0 18:23 ? 00:00:00 [events/0]

root 4 1 0 18:23 ? 00:00:00 [khelper]

root 5 1 0 18:23 ? 00:00:00 [kthread]

root 7 5 0 18:23 ? 00:00:00 \_ [kblockd/0]

где:

UID – идентификатор пользователя от имени которого запущен процесс,

PID – уникальный идентификатор процесса,

PPID – идентификатор процесса родителя,

TIME – суммарное время выполнения процесса,

TTY – терминал на котором выполняется данный процесс,

CMD – команда.

Как видно из этого фрагмента (Пример 2.1) во главе процессов находится процесс init, который является первичным процессом в системе. Параметр процесса init (смотрите фрагмент - init [5]) определяет уровень загрузки системы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]