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:
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: