Процессы в ОС Linux (I)

Лабораторная работа по курсу "Операционные системы"

Процессы в ОС Linux (I)

Цель работы: знакомство с системными вызовами для создания процессов; исследование состояния гонок при совместном доступе к файлу родительского и дочернего процессов.

 

Идентификаторы процессов

Для получения программой PID собственного процесса используется системный вызов getpid, для получения PID родительского процесса - getppid. Задание 1. Выполните программу pr1.c:  

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

- ps (Process Status). Введенная без опций, команда ps показывает только те процессы, которые были запущены из данного терминального окна. - topпоказывает активные процессы в динамике. - pstreeпоказывает активные процессы в виде дерева.

Код завершения процесса

Создание процессов

При помощи функции system из стандартной библиотеки языка С stdlib можно выполнить команду изнутри программы, как если бы эта команда выла введена в… Задание 3. Выполните программу pr3.c, в которой запускается команда "ls…  

Переключение процесса на выполнение другой программы

· Функции, которые содержат в имени букву p (execvp и execlp), принимают имя программы и ищут программу по имени во всех путях, содержащихся в… · Функции, которые содержат в имени букву v (execv, execvp и execve),… · Функции, которые содержат в имени букву e (execve и execle), принимают дополнительный параметр - массив переменных…

Совместный доступ к файлам родительского и дочернего процессов

Если родитель и его дочерний процесс имеют одновременный доступ к одним и тем же файлам, то может возникать условие гонок, или состязаний. Задание 6. В данной программе sharfile.c родительский и дочерний процессы…  

Порядок выполнения лабораторной работы

1. Выполните задания 1-6.

2. Занесите в отчет описание заданий со всеми требуемыми пояснениями.

Требования

1. При подготовке к лабораторной работе (дома) занесите в отчет тексты программ из заданий 1, 3-6. Тексты программ должны быть прокомментированы. Программа sharfile.c должна содержать проверку ошибок, указанную в задании 6.

2. Студент должен знать ответы на следующие вопросы:

Вопросы

2. Какие команды предназначены для вывода списка активных процессов? 3. Каково назначение системных вызовов getpid, getppid? 4. Каково назначение системного вызова fork?

Источники информации

2. Ш. Уолтон. Создание сетевых приложений в среде Linux. - М.: Издательский дом "Вильямс", 2001. (Глава 7) 3. Linux Complete Command Reference. (См. home page данного курса) …