Proces - jedno z najbardziej podstawowych pojęć w informatyce. Z definicji jest to po prostu egzemplarz wykonywanego programu. Należy odróżnić jednak proces od wątku - każdy proces posiada własną przestrzeń adresową, natomiast wątki posiadają wspólną sekcję danych.

Każdy proces posiada tzw. "rodzica". W ten sposób tworzy się swego rodzaju drzewo procesów. Proces może (ale nie musi) mieć swoje procesy potomne.

Za zarządzanie procesami odpowiada jądro systemu operacyjnego. Sposób obsługi procesów jest różny dla różnych systemów operacyjnych.

Spis treści

[edytuj] Skład i zasoby procesu

W skład procesu wchodzi:

Każdemu procesowi przydzielone zostają zasoby, takie jak:

[edytuj] Tworzenie procesów

  • Użytkownik za pomocÄ… powÅ‚oki zleca uruchomienie programu, proces wywoÅ‚ujÄ…cy wykonuje polecenie fork, lub jego pochodnÄ….
  • System operacyjny tworzy przestrzeÅ„ adresowÄ… dla procesu oraz strukturÄ™ opisujÄ…cÄ… nowy proces w nastÄ™pujÄ…cy sposób:
    • wypeÅ‚nia strukturÄ™ opisujÄ…cÄ… proces,
    • kopiuje do przestrzeni adresowej procesu dane i kod, zawarte w pliku wykonywalnym,
    • ustawia stan procesu na dziaÅ‚ajÄ…cy,
    • dołącza nowy proces do kolejki procesów oczekujÄ…cych na procesor (ustala jego priorytet),
    • zwraca sterowanie do powÅ‚oki użytkownika.

[edytuj] Wykonywanie procesów

Dany proces rozpoczyna wykonywanie w momencie przełączenia przez Jądro systemu operacyjnego przestrzeni adresowej na przestrzeń adresową danego procesu oraz takie zaprogramowanie procesora, by wykonywał kod procesu. Wykonujący się proces może żądać pewnych zasobów, np. większej ilości pamięci. Zlecenia takie są na bieżąco realizowane przez system operacyjny.

Wykonanie procesu musi przebiegać sekwencyjnie. Może przyjmować kilka stanów:

  • dziaÅ‚ajÄ…cy,
  • czekajÄ…cy na udostÄ™pnienie przez system operacyjny zasobów,
  • przeznaczony do zniszczenia,
  • proces zombie,
  • wÅ‚aÅ›nie tworzony itd.

[edytuj] Kończenie procesów

  • Proces wykonuje ostatniÄ… instrukcjÄ™ - zwraca do systemu operacyjnego kod zakoÅ„czenia. JeÅ›li proces zakoÅ„czyÅ‚ siÄ™ poprawnie zwraca wartość 0, w przeciwnym wypadku zwraca wartość kodu błędu.
  • W momencie zwrotu do systemu operacyjnego kodu zakoÅ„czenia, system operacyjny ustawia stan procesu na przeznaczony do zniszczenia i rozpoczyna zwalnianie wszystkich zasobów, które w czasie dziaÅ‚ania procesu zostaÅ‚y temu procesowi przydzielone.
  • System operacyjny po kolei koÅ„czy wszystkie procesy potomne w stosunku do procesu macierzystego.
  • System operacyjny zwalnia przestrzeÅ„ adresowÄ… procesu. Jest to dosÅ‚owna Å›mierć procesu.
  • System operacyjny usuwa proces z kolejki procesów gotowych do uruchomienia i szereguje zadania. Jest to ostatnia czynność wykonywana na rzecz procesu.
  • Procesor zostaje przydzielony innemu procesowi.

[edytuj] Zobacz też