Sypiemy operacyjne - notatka do wyMadj
- elementy wątku i procesu:
Watek |
Proces |
licznik rozkazów |
przestrzeń adresowa |
stos |
otwarte pliki, semafory |
rejestry procesora |
zmienne alobalne |
lista wątków potomnych |
lista proc. potomnych |
Tradycyjny proces (ciężki) jest równoważny zadaniu z jednym wątkiem
Jeżeli zadanie składa się z wielu wątków, to w czasie gdy jeden wątek jest zablokowany, może
się wykonywać inny wątek tego zadania: współpraca wielu wątków w jednym zadaniu pozwala
zwiększyć przepustowość i poprawić wydajność
Wątki umożliwiają połączenie równoległości z sekwencyjnym wykonaniem:
(1) model dyspozytor-pracownik
(2) model zespołu
(3) model potoku
wqt«k •
Watki statyczne/dynamiczne:
- struktura wątków procesu jest ustalona (w kodzie Zr. procesu) lub też proces może dowolnie tworzyć/usuwać swoje wątki
Implementacja wątków w systemie operacyjnym:
• Pakiet wątków : zbiór elementarnych działań na wątkach dostępnych w systemie (np. procedur bibliotecznych.
• Implementacja wątków w przestrzeni użytkownika:
- jądro nie wie o wątkach, widzi tylko jednowątkowe procesy
zaleta! można używać wątków w systemie, który ich nie implementuje (np. pierwotnie UNIX)
- możliwe szybkie przełączanie wątków - tylko przeładowania wsk. stosu i instrukcji oraz rejestrów (najszybsze działania w syst. komputerowym).
- zaleta2:kaźdy proces może używać własnego alg. planowania dla swoich wątków.
- problem! przy blokowanych odwołaniach wątków do systemu - proces nie może oddać sterowania systemowi, musi czekać na swoje wątki. Używa się kodu sprawdzającego (and. jacket) czy odwołania wątków będą blokować. -> a wątków używa się głownie w zadaniach z blokującymi odwołaniami, gdzie mają poprawić wydajność...
■ problem2: nie ma wywłaszczania, wątki muszą same oddawać sterowanie procedurze wykonawczej procesu.
• Implementacja wątków w jądrze:
- system wykonawczy jest częścią jądra
7