Ааах, микро мениджмънт... "любимото" ми
Ама той даскала, даскала е за е... Ъъъ таковане
По начало задачата е кофти дефинирана... Би трябвало споделената памет да е за 101 цели числа, 100 които ще се обработват и 1 за флаг, че буфера е готов за обработка, като след обработката му флага се занулява. В идеалния вариант ще трябват даже 2 или N по един за всеки четец, че чукча писател да не изпраска следващия буфер преди всички читатели да са обработили предходния.
Така смотано дефинирана задачата има само едно смотано решение, чукча пише едно число и чака.. късмет че всяко едно число се обработва или само от единия или само от другия четец, и четеца който събира този вид числа го прочита и го събира и записва в същия буфер същото число но с отрицателен знак, тогава пак чукча се задейства да генерира следващото число.... Много кофти решение, но единственото работещо при така поставената задача
И теми за размисъл
Ами ако имаше числа които не се обработват от никой четец или пък и от двата напр. Първия обработва числа които се делат на 3, втория на 5 (и евентуално трети четец за числа дето се делат и на 3 и на 5) - Няма как да се мине без флаг за всеки четец, кога е приключил с обработката, че писача да запише новия буфер, и интересния вариант напр. С числото 2 никой няма да го обработи и ще почне голямото чакане, затова се работи с по големи буфери.
Обик. При подобни ситуации по по най важен е избора на протокол за комуникация а не конкретната реализация и няма значение дали ще е споделена памет или интернет връзка и т.п. и не кьоравия даскал да се прави на микро меринджей и на най великия и да казва НЕ през една клетка от паметта ще го правите само, щото обик. Микро мениджмънта води до макро осирации където накрая меринджейте се опитват да излязат сухи от водата с .... Ама аз му казах какво точно да направи ама той... Калпава реализация, като услужливо пропускат факта че при микро мениджмънт меринджея казва не само какво ами и как да се направи.
Та с две думи, само с една клетка е грешно да прехвърляш много данни, ..ама задание, какво да го правиш.
Надявам се да съм помогнал... Поне малко.
П.П. ако го видиш
питай го даскала как аджеба да побереш 100 цели числа в обща памет с размер едно цяло число?