0 / 0 / 0
Регистрация: 16.12.2015
Сообщений: 1
|
|
1 | |
Задача "читателя и писателя" с буферным пулом (динамическим массивом)29.11.2017, 13:45. Показов 2117. Ответов 1
Сама задача:
Рассмотрим взаимодействие двух потоков, один из которых пишет данные в буферный пул, а другой считывает их из пула. Буферный пул состоит из N буферов, каждый содержит одну запись. В общем случае поток-писатель и поток-читатель имеют разные скорости (длительности выполнения операция чтения и записи) и обращаются к пулу с переменной интенсивностью (начинают выполнять операции в случайные моменты времени с равномерным законом распределения). Для правильной работы поток-писатель приостанавливается, когда все буферы заняты, и переходит в активное состояние при наличии хотя бы одного свободного буфера. Поток-читатель приостанавливается, когда все буферы пусты, и активизируется, когда появляется, по крайней мере, одна запись. Количество потоков-писателей и читателей, длительности операций чтения и записи, размер буферного пула устанавливаются пользователем. Буферный пул в данном случае - динамический массив, если я верно понял преподавателя. По условию задачи поток-читатель и поток-писатель приостанавливаются в ожидании непустого и пустого буфера соответственно. Каким образом реализовать проверку на наличие пустого-непустого буфера, чтобы активизировались потоки? Каким образом передавать в поток-читатель или в поток-писатель адрес освободившегося буфера для работы с ним? Основной принцип работы потоков схож с примером на википедии (тут), но можно решить и с 2 семафорами.
0
|
|
29.11.2017, 13:45 | |
Ответы с готовыми решениями:
1
Ошибка при синхронизации потоков. (Задача написать писателя-читателя) 2 читателя, 2 писателя Есть ли ошибки в задаче читателя-писателя? Задача с динамическим массивом и файлом Задача с динамическим массивом Pascal |
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
|
|
29.11.2017, 16:44 | 2 |
alexgugr, вы сейчас не принцип очереди описали?
0
|
29.11.2017, 16:44 | |
29.11.2017, 16:44 | |
Помогаю со студенческими работами здесь
2
Задача с итератором, динамическим массивом и считыванием с файла Задача на работу с динамическим массивом. HEAP CORRUPTION DETECTED
Проблема с динамическим массивом Работа с динамическим массивом Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |