Создан заказ №855337
6 декабря 2015
ОРГАНИЗАЦИЯ МЕЖПРОЦЕССНОГО ВЗАИМОДЕЙСТВИЯ В ОПЕРАЦИОННОЙ СИСТЕМЕ LINUX
Как заказчик описал требования к работе:
1) Добавьте двойную буферизацию в обмен через общую память. Тонкий момент: пока данные копируются/читаются в/из буфера pthread_lock_t должен быть отпущен, чтобы второй процесс мог работать. В таком случае запись должна выглядеть примерно так:
1. захват замка
2. проверка, что есть свободный буфер (т
ут используется условная переменная)
3. получение буфера для записи (буфер свободен и его никто не читает)
4. освобождение замка
5. заполнение буфера
6. захват замка
7. помечаем, что выбранный буфер заполнен и готов для чтения
8. отправка сигнала
9. освобождение замка
В простом случае можно использовать кольцевую очередь (буфер) и хранить количество свободных буферов и количество заполненных буферов, тогда на шаге 3 изменяется количество свободных буферов, а на шаге 7 --- заполненных. На шаге 2 проверяется количество свободных буферов. Аналогично для чтения.
#define N 2
typedef struct
{
pthread_mutex_t mutex;
pthread_cond_t waitEmpty; // очередь за свободными буферами
pthread_cond_t waitFull; // очередь за полными буферами
int s, e; // начало и конец кольцевого буфера buffer
int empty; // количество пустых буферов, в начале N
int full; // количество полных буферов, в начале 0
char buffer[N][CHUNK_SIZE];
}data;
Добавлять буферизацию нужно в программе которая измеряет скорость передачи данных между процессами используя сегменты общей памяти. (код программы куда нужно добавить буферизацию будет ниже)
Программа на Си и компиляция в gcc.
2) Реализация pthread_mutex_lock --- как должно работать, что в коде (комментарий), как с описанием соотносится код.
Для ответа брать glibc версии 2.22 или новее.
подробнее
Заказчик
заплатил
заплатил
20 ₽
Заказчик не использовал рассрочку
Гарантия сервиса
Автор24
Автор24
20 дней
Заказчик принял работу без использования гарантии
7 декабря 2015
Заказ завершен, заказчик получил финальный файл с работой
5
ОРГАНИЗАЦИЯ МЕЖПРОЦЕССНОГО ВЗАИМОДЕЙСТВИЯ В ОПЕРАЦИОННОЙ СИСТЕМЕ LINUX.jpg
2017-12-04 20:29
Последний отзыв студента о бирже Автор24
Общая оценка
5
Положительно
Очень хороший автор) Всё сделал быстро, четко, а также доработал программный код по моей просьбе. Спасибо большое!)