1. Czym różni się program od procesu?
Program jest zbiorem instrukcji. W tym sensie jest jedynie częścią procesu, znajdującym się w jego segmencie kodu. Poza tym do wykonywania procesu najczęściej potrzebne są dodatkowe zasoby. Program nie zmienia się w czasie wykonywania, natomiast stan procesu ciągle ulega zmianie. Ogólnie procesem jest cały kontekst potrzebny do wykonywania programu.
2. Proszę podać 3 przykłady zasobów systemu, odzyskiwanych po zakończeniu procesu.
Pamięć, procesor, drukarka.
3. Kiedy pamięć może być zasobem wywłaszczalnym?
Gdy istnieje wymiana pomiędzy pamięcią główną, a pomocniczą.
4. Ile procesów może znajdować się w poszczególnych stanach procesów w danej chwili czasu w systemie z jedną jednostką przetwarzającą (jednym procesorem)?
W stanie „wykonywany” może znajdować się tylko jeden proces. W stanach „oczekujący”, „nowy”, „gotowy”, „zakończony” może znajdować się dowolna ilość procesów.
5. Czym różni się stan procesu gotowy od stanu oczekujący?
W stanie gotowy proces ma przydzielone wszystkie zasoby oprócz procesora. Czeka jedynie na przydział kwantu czasu. Natomiast w stanie oczekujący proces czeka na przydzielenie innych zasobów takich jak pamięć, synchronizację, urządzenie wejścia wyjścia itp.
6. Na czym polega przełączenie kontekstu? Jakie informacje są niezbędne do przeprowadzenia tej operacji.
Przełączenie kontekstu polega na zachowaniu stanu przetwarzania procesu oddającego procesor (zachowaniu kontekstu) i załadowaniu stanu przetwarzania innego procesu (odtworzenie kontekstu).
Informacjami potrzebnymi do przełączenia kontekstu jest stan zasobów, z których jeden proces rezygnuje na rzecz drugiego. W najprostszym przypadku są to dane zawarte w rejestrach procesora.
7. Dlaczego procesy muszą być kolejkowane? W jakich rodzajach kolejek mogą się one znajdować?
Kolejkowanie procesów jest to umieszczanie ich na określonej liście. Dzięki kolejkom są one przechowywane na listach odpowiadającym danym stanom procesu. Dzięki nim uzyskujemy bardzo szybki dostęp do procesów z odpowiedniej grupy, wiemy również w jakiej kolejności powinniśmy pobierać proces z tych kolejek. Istnieje wiele rodzajów kolejek. Przykładowe kolejki to: kolejka procesów gotowych, kolejka zadań, kolejka do urządzenia, kolejka procesów oczekujących na sygnał synchronizacji.
8. Który z planistów jest najbardziej istotny z punktu widzenia:
a) realizacji wielozadaniowości w systemach interaktywnych: krótkoterminowy
b) systemów przetwarzania wsadowego: długoterminowy
c) systemów czasu rzeczywistego: krótkoterminowy ?
9. Jakie informacje muszą być przechowywane w deskryptorze wątku, gdyż nie mogą być współdzielone z innymi wątkami tego samego procesu?
Licznik rozkazów, stan rejestrów procesora, stos (nie współdzielą procesora).
10. Kiedy i dlaczego występuje możliwość głodzenia wątków w dostępie do procesora w przypadku ich realizacji na poziomie użytkownika?
Gdy jeden z wątków spowoduje przejście w stan oczekiwania drugiego wątku.
11. Czym różni się realizacja wielowątkowości w systemach Linux i Windows?
W systemie Linux nie odróżnia się pojęcia procesu od wątku, natomiast w Windows to dwa różne pojęcia. W Windows dane o wątkach i procesach przechowywane są w różnych strukturach, natomiast w Linux wątek od procesu rozróżnia jedynie zakres współdzielonych zasobów.
sop