Procesy w systemie operacyjnym, zarządzanie procesami proces

Transkrypt

Procesy w systemie operacyjnym, zarządzanie procesami proces
Procesy w systemie operacyjnym,
zarządzanie procesami
proces - program w trakcie wykonania, sekwencja czynności
wykonywanych w określonej kolejności.
Procesy dzielą się na:
• systemowe,
• użytkowe.
Proces powstaje na podstawie programu.
• Program - obiekt pasywny,
• Proces - obiekt aktywny.
Procesy wykonują się współbieżnie ( w środowisku
wieloprocesorowym) lub quasi współbieżnie ( w środowisku
jednoprocesorowym).
Do procesu należą:
• stan (rejestry, licznik rozkazów, flagi stanu),
• sekcja kodu,
• dane,
• stos systemowy,
• pamięć zarządzana dynamicznie.
Wiele procesów może pochodzić od tego samego programu (np.
niezależnie wykonywane wcielenia edytora).
W środowisku jednoprocesorowym w danej chwili tylko jeden proces
może być aktywny.
Wątki
Wątek to proces ograniczony, który współużytkuje z procesem rodzicem
przestrzeń danych. Jeden proces może wygenerować wiele wątków.
Dla wątku osobne pozostają:
• stan,
• stos.
Wspólne są:
• obszar danych,
• sekcja kodu,
• środowisko (otwarte pliki, sygnały itp.)
Ze względu na współdzielenie zasobów należy stosować synchronizację.
Wątki mogą być obsługiwane:
• bez udziału systemu operacyjnego (na poziomie użytkownika),
• przez system operacyjny – zarządzający wątkami podobnie jak procesami
W pierwszym przypadku SO nic nie wie o wątkach procesu - oczekiwanie
jednego wątku spowoduje wówczas oczekiwanie całego procesu.
Działanie wątków jest zwykle efektywniejsze od działania procesów bo:
• pozwala efektywniej wykorzystać zasoby (bez konieczności ich powielania),
• upraszcza proces przełączania po stronie zarządcy systemu operacyjnego
(uproszczone przełączanie kontekstu).
Wady:
• nie ma ochrony na poziomie wątków – wątki mogą wzajemnie psuć sobie dane
• może dojść do niesprawiedliwego podziału czasu przy wątkach na poziomie
użytkownika
Przykłady zastosowania wątków:
• niezależna obsługa interfejsu i części obliczeniowej programu,
• obsługa dostępu do urządzeń (np. skanera) niezależna od interfejsu i części
obliczeniowej,
• powierzenie części obliczeń niezależnym wątkom – może przyspieszyć
wykonanie programu w środowisku wieloprocesorowym,
• niezależna obsługa równocześnie realizowanych żądań klienta przez serwer
(np. serwer bazy danych, serwer WWW, serwer FTP ...)

Podobne dokumenty