IV112 Projekt z programování paralelních aplikací

Projekt číslo 1: Implementace RWLOCK v C++11

Termín odevzdání: 5. 10. 2016 20:00

Odevzdávarna: Zadání: Třída RWlock reprezentuje sdílený zámek, který umožní přístup ke sdílené paměti vícero vláknům v režimu čtení, ale exkluzivní přístup vláknu, které chce do sdílené paměti zapisovat.

Implementujte poskytnuté rozhraní třídy RWlock za použití funkcí, které vám poskytuje standardní knihovna jazyka C++ verze 11. Je zakázáno použít při implementaci přímo funkce z POSIX Thread Library.

Algoritmy pro RWLOCK se můžete inspirovat například na wikipedii.

Dle standardu musí být zámek uvolněn stejným vláknem, které zámek zamklo, jinak dojde k nedefinovanému chování. Ačkoliv implementace STD knihovny na Linuxu je benevolentní, STD knihovna poskytnutá spolu s programem Visual Studio 2013 kontroluje vlastnictví zámku při odemykání.

Projekt můžete řešit na serveru aisa. V takové případě je nutné přidat si modul gcc-4.8.2 abyste získali překladač s podporou C++11.

Projekt: