Programowanie współbieżne i rozproszone/PWR Ćwiczenia 2: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 49: | Linia 49: | ||
:<tt>pid_t getpid(); </tt> | :<tt>pid_t getpid(); </tt> | ||
Wartości typu <tt>pid_t</tt> reprezentują [[PID]]y procesów. Najczęściej jest to długa liczba całkowita (<tt> long int</tt>), ale w zależności od wariantu systemu operacyjnego definicja ta może być inna. Dlatego lepiej posługiwać się nazwą <tt>pid_t</tt>. | Wartości typu <tt>pid_t</tt> reprezentują [[PID]]y procesów. Najczęściej jest to długa liczba całkowita (<tt>long int</tt>), ale w zależności od wariantu systemu operacyjnego definicja ta może być inna. Dlatego lepiej posługiwać się nazwą <tt>pid_t</tt>. | ||
=== Tworzenie nowego procesu === | |||
W Linuksie, tak jak we wszystkich systemach uniksowych, istnieje hierarchia procesów. Każdy proces poza pierwszym procesem w systemie (procesem <tt>init</tt> o [[PID]]zie 1) jest tworzony przez inny proces. Nowy proces nazywamy [[procesem potomnym|proces potomny]], a proces który go stworzył nosi nazwę [[procesu macierzystego]]. | |||
<!-- | <!-- | ||
Do tworzenia procesow sluzy funkcja systemowa: | Do tworzenia procesow sluzy funkcja systemowa: | ||
Wersja z 08:45, 12 cze 2006
Tematyka laboratorium
- Przypomnienie zasad tworzenia plików Makefile
- Kompilacja programów w środowisku Unix
- Procesy w systemie Unix: tworzenie, kończenie,
Literatura uzupełniająca
- M. K. Johnson, E. W. Troan, Oprogramowanie użytkowe w systemie Linux, rozdz. 9.2.1 i 9.4.1-9.4.5
- W. R. Stevens, Programowanie zastowań sieciowych w systemie UNI, rozdz. 2.5.1-2.5.4
- M. J. Bach, Budowa systemu operacyjnego UNIX, rozdz. 7.1, 7.3-7.5
- man do poszczególnych funkcji systemowych
Scenariusz zajęć
Identyfikator procesu
Każdy proces w systemie ma jednoznaczny identyfikator nazywany potocznie PID (od angielskiego: Process ID). Identyfikatory aktualnie wykonujących się procesów możesz poznać wykonując w Linuksie polecenie ps.
- Ćwiczenie
- Wykonaj polecenie ps. Zobaczysz wszystkie uruchomione przez Ciebie procesy w tej sesji. Znajdzie się wsród nich proces ps i bash (lub inny stosowany przez Ciebie interpreter poleceń), który analizuje i wykonuje Twoje polecenia. Pierwsza kolumna to PID procesu, a ostatnia to polecenie, które dany proces wykonuje. Więcej informacji na temat polecenia ps uzyskasz wywołując man ps.
Z poziomu programisty, proces może poznać swój PID wywołując funkcję systemową:
- pid_t getpid();
Wartości typu pid_t reprezentują PIDy procesów. Najczęściej jest to długa liczba całkowita (long int), ale w zależności od wariantu systemu operacyjnego definicja ta może być inna. Dlatego lepiej posługiwać się nazwą pid_t.
Tworzenie nowego procesu
W Linuksie, tak jak we wszystkich systemach uniksowych, istnieje hierarchia procesów. Każdy proces poza pierwszym procesem w systemie (procesem init o PIDzie 1) jest tworzony przez inny proces. Nowy proces nazywamy proces potomny, a proces który go stworzył nosi nazwę procesu macierzystego.