Вопросы по ЛР №6 - chrislvt/OS GitHub Wiki
- Какие типы событий используете и почему?
В программе использую события с ручным сбросом для can_write и автосбросом для can_read, т.к писатели должны обладать монопольным доступом к данным, а читатели могут работать параллельно.
- Если есть событие со сбросом вручную, то д.б. resetevent. Покажите в коде. PS: reset.. надо вызывать в stop (такое условие со 2 января)
void stop_write(void)
{
is_writer_active = false;
ResetEvent(can_write);
if (!waiting_writers)
{
SetEvent(can_read);
}
else
{
SetEvent(can_write);
}
}
-
Основная особенность задачи «читатели-писатели», определившая ее название?
-
Вы в функции начало_чтения использовали мьютекс. Что можно сказать о последовательности операторов, которые находятся между захватом и освобождением мьютекса?