Процессы в ОС 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 данного курса)
…