Презентации с подсказками для выполнения лабораторных работ:
Требуется безопасно и эффективно реализовать монитор с двумя потоками: потоком-поставщиком и потоком-потребителем. Поток-поставщик должен с задержкой в одну секунду инициировать условное событие, о чём должен выводить сообщение на экран. Поток-потребитель должен это условное событие получать, о чём также должен сообщать на экране. В итоге на экране должна появляться серия чередующихся сообщений об отправлении события и его обработке. Сообщения не должны нарушать очерёдность. Ожидание события должно происходить с минимальным потреблением процессорного времени, т. е. быть практически равным нулю. Подразумевается, что условное событие может содержать несериализуемые данные (скажем, передаётся экземпляр класса по указателю).
Требуется подготовить безопасную реализацию серверного процесса,
который совмещает обработку соединений TCP/IP с обработкой сигналов
(можно выбрать, скажем, сигнал SIGHUP
).
Приложение должно:
pselect()
,
но все действия должны быть выполнены в предельно безопасном виде,
исключающем любые race condition.