.. _02-zadanie: ===================== Małe zadania #2 i #2+ ===================== Napisać program używający wątków bez pomocy biblioteki wątków (surowe syscalle). Program powinien: 1. Utworzyć nowy wątek w tej samej przestrzeni adresowej - zaalokować stos dla nowego wątku, użyć syscalla ``clone`` do uruchomienia kodu. Przydadzą się flagi ``CLONE_THREAD | CLONE_VM | CLONE_SIGHAND | CLONE_FS | CLONE_FILES | CLONE_PARENT_SETTID | CLONE_CHILD_CLEARTID`` 2. W nowym wątku: - wypisać 1000 razy ``"A\n"`` na standardowe wyjście (używając syscalla ``write``) - zakończyć wątek (syscall ``exit``). 3. W głównym wątku: - wypisać 1000 razy ``"B\n"`` na standardowe wyjście (używając syscalla ``write``) - poczekać na zakończenie się nowego wątku (``futex`` z ``FUTEX_WAIT``) - zakończyć program (syscall ``exit_group``). Zadanie można oddawać w dwóch wersjach: - #2 (łatwa, warta 1 punkt): używając funkcji ``clone``, ``syscall`` z libc. - #2+ (trudna, warta 2 punkty): wołając syscalle używając wstawek assemblerowych.