Systemy operacyjne - Procesy

1. Proces to zbiór czynności, wzajemnie ze sobą powiązanych, których realizacja jest niezbędna dla uzyskania określonego rezultatu. Zarządzany jest przez system operacyjny i wykorzystuje zasoby systemowe (procesor, pamięć itd.) w celu uruchomienia programu.

Każdy proces składa się z:
  • programu (definiuje zachowanie procesu)
  • danych (są przetwarzane, a następnie zwracane są wyniki)
  • zasobów (tworzy środowisko uruchomieniowe)
  • blok kontrolny procesu (przechowuje najistotniejsze informacje o danym procesie - takich jak identyfikator procesu (PID))
2. Zasoby systemu komputerowego dzielimy na:
  • wielokrotnego użytku (pamięć operacyjna, czas procesora, uchwyty plików, pamięć dyskowa)
  • malejące w czasie (dostępna wolna przestrzeń dyskowa, poziom naładowania baterii w mobilnych urządzeniach, wolna pamięć)
  • współdzielone (więcej niż jeden proces używa dany zasób)
  • wyłączne (zasoby przydzielone procesom na wyłączność)
3. Operacje związane z procesami i zasobami:
  • tworzenie procesów
  • komunikacja międzyprocesowa
  • alokacja, relokacja
  • dostęp do urządzeń wejścia-wyjścia
  • obsługa przerwań
  • zamykanie procesów
4. Najważniejszą strukturą kontrolną systemu operacyjnego jest deskryptor procesu zawierający głównie identyfikator procesu, aktualną wartość licznika rozkazów, przestrzeń adresową procesu, priorytet, data ostatniego uruchomienia procesu itp. Używany jest przez zarządcę procesów w celu rejestrowania stanu procesu w czasie jego monitorowania i kontroli

5. Deskryptor zasobu przechowuje informacje o dostępności i zajętości jednostek danego typu zasobu, identyfikator i typ zasobu, listę oczekujących procesów.

6. Stany procesów:
  • nowy - dopiero utworzony, jeszcze nie wykonywany
  • wykonywany - procesor jest aktualnie przydzielony do procesu, instrukcje są przetwarzane przez procesor
  • oczekujący - stan oczekiwania na zasób 
  • gotowy - stan oczekiwania na procesor
  • zakończony - zwolnienie zasobu, który proces miał przydzielony
7. Szeregowanie to specjalny proces systemowy, który decyduje o sposobie przydzielania zasobów między różnymi uruchomionymi procesami. Algorytmy szeregowania:
  • krótkiego okresu (przydzielanie procesora do procesów znajdujących się w stanie gotowości)
  • średniego okresu (odpowiada za wymianę pomiędzy pamięcią główną, a pamięcią wirtualną)
  • długiego okresu (ładowanie procesów nowych do pamięci)
8. Przykładowe przyczyny zakończenia procesu:
  • normalne zakończenie
  • przekroczenie limitu czasu
  • brak dostępnej pamięci
  • awaria urządzeń wejścia-wyjścia
  • nieprawidłowa instrukcja
  • interwencja ręczna użytkownika
  • brak odpowiednich uprawnień (np. dostępu do pliku)
9. Przełączanie kontekstu – proces zachowywania i odtwarzania stanu procesora/rdzenia (kontekstu), by wiele procesów mogło dzielić zasoby pojedynczego procesora/rdzenia. Za przełączanie kontekstu odpowiedzialny jest dyspozytor.


10. Główną różnicą pomiędzy wątkiem, a procesem jest to, że proces posiada własne zasoby (przestrzeń adresową, listę plików, przydzielone urządzenia). Każdy proces posiada rodzica, natomiast wątek wykonuje się w obrębie jednego procesu. Wątki współdzielą przestrzeń adresową.

11. Inne struktury kontrolne, które system używa do zarządzania zasobami, procesami to:
  • deskryptory pamięci
  • deskryptory zasobów
  • deskryptory plików (informują o tym jakie ma atrybuty, czy plik istnieje itd.)
  • tablica procesów (stany procesów, ID, położenie w pamięci, identyfikator użytkownika który uruchomił dany proces)