To tylko jedna z 31 stron tej notatki. Zaloguj się aby zobaczyć ten dokument.
Zobacz
całą notatkę
Systemy operacyjne wykład 4. Wątki Opracowano na podst.: Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009 Opracowano na podst.: Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009 1.2 Wykład 4: Wątki • Przegląd • Modele wielowątkowości • Biblioteki obsługi wątków • Zagadnienia dotyczące wątków • Przykłady wątków w S.O. • Wątki w Windows XP • Wątki w Linux Opracowano na podst.: Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009 1.3 Cele • Wprowadzenie pojęcia wątku – podstawowej jednostki wykorzystania CPU stanowiącej podstawę wielowątkowych systemów komputerowych • Przedyskutowanie APIs dla bibliotek: Pthreads, Win32 oraz Java • Przedyskutowanie zagadnień związanych z programowaniem wielowątkowym Opracowano na podst.: Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009 1.4 Procesy jedno- i wielowątkowe Opracowano na podst.: Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009 1.5 Korzyści • Zdolność do reagowania • Współdzielenie zasobów • Ekonomika • Skalowalność Opracowano na podst.: Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009 1.6 Architektura wielowątkowego serwera Opracowano na podst.: Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009 1.7 Wątki uŜytkownika ( User Threads ) • Zarządzanie wątkami przez bibliotekę wątków na poziomie uŜytkownika Opracowano na podst.: Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009 1.8 Wątki jądra ( Kernel Threads ) • Udostępniane przez jądro • Przykłady – Windows XP/2000 – Solaris – Linux – Tru64 UNIX – Mac OS X Opracowano na podst.: Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009 1.9 Modele wielowątkowości ( Multithreading Models ) • Wiele-na-Jeden ( Many-to-One ) • Jeden-na-Jeden ( One-to-One ) • Wiele-na-Wiele ( Many-to-Many ) Opracowano na podst.: Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009 1.10 Wiele-do-Jednego ( Many-to-One ) • Wiele wątków poziomu uŜytkownika zmapowanych na jeden wątek jądra • Przykłady: – Solaris Green Threads – GNU Portable Threads Opracowano na podst.: Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009 1.11 Many-to-One Model Opracowano na podst.: Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009
(…)
…, Silberschatz, Galvin and Gagne ©2009
1.29
Windows XP Threads
• Implementuje mapowanie jeden-na-jeden, poziom jądra
• KaŜdy wątek zawiera
– Identyfikator wątku
– Zbiór rejestrów
– Oddzielne: sotos uŜytkownika i jądra
– Obszar danych prywatnych
• Zbiór rejestrów, stosy i obszar na dane prywatne są zwane kontekstem
wątku
• Podstawowe struktury danych wątku zawierają:
– ETHREAD (executive thread block)
– KTHREAD (kernel thread block)
– TEB (thread environment block)
Opracowano na podst.: Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009
1.30
Linux Threads
• Linux odnosi się do nich raczej jako do zadań (tasks) niŜ wątków (threads)
• Tworzenie wątków za pomocą f. systemowej clone()
• clone() pozwala zadaniu potomnemu współdzielić przestrzeń adresową z
zadaniem (procesem) rodzicielskim…
… Javy są realizowane i zarządzane przez JVM
• Zwykle implementowane z wykorzystaniem modelu wątków udostępnianego
przez s.o. w którym działa JVM
• Wątki Javy mogą być tworzone poprzez:
– Rozszerzenie klasy Thread
– Implementację interfejsu Runnable
Opracowano na podst.: Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009
1.20
Zagadnienia związane z wątkami
• Semantyka wywołań systemowych fork() i exec()
• Kasowanie (Thread cancellation) wątku docelowego (target thread)
– Asynchroniczne lub odroczone
• Obsługa sygnałów (Signal handling)
• Pule wątków (Thread pools)
• Dane charakterystyczne wątku (Thread-specific data)
• Aktywacje planisty (Scheduler activations)
Opracowano na podst.: Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009
1.21
Semantyka fork…
… skojarzyć wybrany wątek uŜytkownika z
wątkiem jądra
• Przykłady
– IRIX
– HP-UX
– Tru64 UNIX
– Solaris 8 i wcześniejsze
Opracowano na podst.: Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009
1.16
Two-level Model
Opracowano na podst.: Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009
1.17
Thread Libraries
• Biblioteka wątków zapewnia programiście API…
... zobacz całą notatkę
Komentarze użytkowników (0)