Linux/Definicje/Proces

Z Wikibooks, biblioteki wolnych podręczników.

Proces to w największym uproszczeniu program wykonujący się w komputerze. Nie jest to bynajmniej pojęcie jednoznaczne z pojęciem "program":

  • program - jest to kod wykonywalny, zawarty w pliku (wielu plikach), a więc np. zapisany na dysku
  • proces - jest to aktualnie wykonywany przez procesor ciąg poleceń (czyli np. program, ale też może to być część, jakaś funkcja programu)

Kluczowe jest tutaj stwierdzenie, że w obrębie jednego procesu, następna "czynność" może zostać rozpoczęta dopiero po zakończeniu poprzedniej, czyli jeżeli dany proces wykonuje jakieś działanie, to następne może on zacząć wykonywać, jak zakończy poprzednie.

Proces[edytuj]

Proces jest jednym z podstawowych pojęć w Unixie ( drugim jest plik). Na proces składa się :

  • wykonywany kod programu
  • zasoby komputera :
    • wewnętrzne dane jądra
    • przestrzeń adresowa pamięci
    • wątki
    • część pamięci zawierająca zmienne globalne [1]

Wieloprocesowość[edytuj]

Jądro Linux umożliwia uruchamianie wielu procesów równocześnie - w rzeczywistości, każdy z procesów jest kolejno "włączany" na krótką chwilę, a potem zatrzymywany, uruchamiany następny itd. Jest to przełączanie procesów - więcej na ten temat w pojęciu Linux/Definicje/Wielozadaniowość.

Pojedynczy program może się wykonywać w postaci wielu procesów - np. może przetwarzać w tle dane, ale nie zatrzymuje to działania interfejsu, ponieważ jest on wykonywany w osobnym procesie.

Podgląd listy procesów[edytuj]

Listę aktualnie wykonujących się procesów, jak i informacji na ich temat, możemy podejrzeć:

  • w trybie tekstowym wpisując polecenie top (wyświetla kilka(naście) procesów najbardziej obciążających procesor)
  • w środowisku KDE wciskając kombinację [Ctrl] + [ESC] - otworzy się okno "ProcessTable", które oprócz wyświetlania informacji, pozwala na zakończenie (zabicie) wybranych procesów (o ile oczywiście mamy odpowiednie uprawnienia).

Uprawnienia[edytuj]

Każdy proces, podobnie jak każdy plik w systemach uniksowych, jest uruchamiany w Linuksie z pewnymi uprawnieniami. Jeżeli uruchamiamy program, będąc zalogowanym jako "majkel", to procesy tego programu będą miały uprawnienia należące do użytkownika "majkel".

Proces główny i potomne[edytuj]

Procesem głównym danego programu jest proces uruchomiony przy starcie programu - jest to inaczej wykonujący się główny kod programu. Może on ponadto uruchamiać wiele procesów potomnych, które są jemu przyporządkowane, tworząc strukturę drzewa. W domyślnym zachowaniu, jeżeli zabijemy (w terminologii linuksowej - zakończymy proces natychmiast; ang. kill) proces główny programu, to automatycznie "znikną" jego procesy potomne. Czasem się zdarza że taki proces potomny nie kończy swojego działania - i wtedy zamienia się w tzw. proces zombie. Proces potomny może zostać także uruchomiony z opcją, dzięki której staje się niezależny od procesu inicjującego go.

Przykłady[edytuj]

Odnośniki[edytuj]

  1. Learning about Linux Processes By Amit Saha
  2. getty w ang. wikipedii

Zobacz również[edytuj]