Sypiemy operacyjne - notatki do wyMadu
- elementy wątku i procesu:
Wątek |
Proces |
licznik rozkazów |
przestrzeń adresowa |
stos |
otwarte pliki, semafory |
rejestry procesora |
zmienne qlobalne |
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
wąt* -
Watki statyczne/dynamiczne:
- struktura wątków procesu jest ustalona (w kodzie źr. procesu) lub też proces może dowolnie tworzyćAjsuwać 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
zaletal: 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.
- probierni: 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
2