Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
I. Разработать программу, реализующую действия, указанные в задании к лабораторной работе с учетом следующих требований:
1. все действия, относящиеся как к родительскому процессу, так и к порожденным процессам, выполняются в рамках одного исполняемого файла;
2. обмен данными между процессом-отцом и процессом-потомком предлагается выполнить посредством временного файла: процесс-отец после порождения процесса-потомка постоянно опрашивает временный файл, ожидая появления в нем информации от процесса-потомка;
3. если процессов-потомков несколько, и все они подготавливают некоторую информацию для процесса-родителя, каждый из процессов помещает в файл некоторую структурированную запись, при этом в этой структурированной записи содержатся сведения о том, какой процесс посылает запись, и сама подготовленная информация.
II. Модифицировать ранее разработанную программу с учетом следующих требований:
1. действия процесса-потомка реализуются отдельной программой, запускаемой по одному из системных вызовов execl(), execv() и т.д. из процесса-потомка;
2. процесс-потомок, после порождения, должен начинать и завершать свое функционирование по сигналу, посылаемому процессом-предком (это же относится и к нескольким процессам-потомкам);
3. обмен данными между процессами необходимо осуществить через программный канал.
Варианты заданий
Контрольные вопросы
1. Каким образом может быть порожден новый процесс? Какова структура нового процесса?
2. Если процесс-предок открывает файл, а затем порождает процесс-потомок, а тот, в свою очередь, изменяет положение указателя чтения-записи файла, то изменится ли положение указателя чтения-записи файла процесса-отца?
3. Что произойдет, если процесс-потомок завершится раньше, чем процесс-предок осуществит системный вызов wait()?
4. Могут ли родственные процессы разделять общую память?
5. Каков алгоритм системного вызова fork()?
6. Какова структура таблиц открытых файлов, файлов и описателей файлов после создания процесса?
7. Каков алгоритм системного вызова exit()?
8. Каков алгоритм системного вызова wait()?
9. В чем разница между различными формами системных вызовов типа exec()?
10. Для чего используются сигналы в ОС UNIX?
11. Какие виды сигналов существуют в ОС UNIX?
12. Для чего используются каналы?
13. Какие требования предъявляются к процессам, чтобы они могли осуществлять обмен данными посредством каналов?
14. Каков максимальный размер программного канала и почему?
Дата публикования: 2014-11-29; Прочитано: 617 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!