Linux/Definicje/Proces

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