У меня проблема с домашней работой, которую я действительно не знаю с чего начать.
Вот вопрос: «Эта проблема использует новый примитив синхронизации под названием семафор ReaderWriterAppender. Те же правила применяются куважение к читателям и писателям, как с семафором ReaderWriter, с добавлением этих новых правил для аппендера:
1) Не более одного аппендера может иметь семафор в любой момент времени.
2) Аппендири write не может одновременно владеть семафором
3) Чтение может происходить во время добавления "
Мне нужно реализовать его самостоятельно.
Существует структура, заданная
typedef struct {
//structure here
} rwasem_t;
void rwalock_init(rwasem_t * rwa) {
}
void rwa_read_lock(rwasem_t * rwa) {
}
void rwa_write_lock(rwasem_t * rwa) {
}
void rwa_append_lock(rwasem_t * rwa) {
}
void rwa_append_unlock(rwasem_t * rwa) {
}
Проблема в том, что я не знаю, как подойти к проблеме.Я знаю, что такое семафор читателя-писателя, я знаю, как их использовать, и я использовал их раньше.Но я не знаю, как их реализовать.Они даже не говорят мне, могу ли я использовать API или что-то еще.По сути, «реализуй это»
Заранее спасибо,
Гасим