Архитектура операционной системы UNIX


         

УПРАЖНЕНИЯ - часть 2


7. Используйте в программе, представленной на , флаг IPC_NOWAIT, реализуя условный тип семафора. Продемонстрируйте, как за счет этого можно избежать возникновения взаимных блокировок.

8. Покажите, как операции над семафорами типа P и V реализуются при работе с поименованными каналами. Как бы вы реализовали операцию P условного типа?

9. Составьте программы захвата ресурсов, использующие (а) поименованные каналы, (б) системные функции creat и unlink, (в) функции обмена сообщениями. Проведите сравнительный анализ их эффективности.

10. На практических примерах работы с поименованными каналами сравните эффективность использования функций обмена сообщениями, с одной стороны, с функциями read и write, с другой.

11. Сравните на конкретных программах скорость передачи данных при работе с разделяемой памятью и при использовании механизма обмена сообщениями. Программы, использующие разделяемую память, для синхронизации завершения операций чтения-записи должны опираться на семафоры.

#include <sys/types.h> #include <sys/ipc.h> #include <sys/msg.h> #define ALLTYPES 0

main() { struct msgform { long mtype; char mtext[1024]; } msg; register unsigned int id;

for (id = 0; ; id++) while (msgrcv(id,&msg,1024,ALLTYPES,IPC_NOWAIT) > 0) ; }

Рисунок 11.22

Comments:

Copyright ©




Содержание  Назад  Вперед