Laboratorium Procesy w systemach UNIX 3.2 Polecenia związane z procesami

Podobne dokumenty
Zarządzanie procesami

9. Procesy, urządzenia i system plików w systemie Linux

Systemy Operacyjne I: Procesy

Laboratorium systemów operacyjnych ćwiczenie nr 3. [ilość modułów: 1] Temat zajęć: Procesy w systemie operacyjnym

Linux: Procesy. Systemy Operacyjne. Mateusz Hołenko. 26 marca 2013

Administracja serwerami

Uruchamianie programów w systemie Linux, potoki, strumienie, procesy, alias

SYSTEMY OPERACYJNE I laboratorium 3 (Informatyka stacjonarne 2 rok, semestr zimowy)

Instrukcja do laboratorium Systemów Operacyjnych. (semestr drugi)

Proces. Systemy Operacyjne I ćwiczenie laboratoryjne nr 5 (wersja ) Polecenia: kill, killall, nice, ps, pstree, renice, time, top

Dogadać się z Linuxem. Zarządzanie

Moduł 4: Strumienie, potoki, sterowanie procesami

W pierwszej kolumnie wyświetlany jest identyfikator procesu (pid)

Podstawy administracji systemu Linux

Procesy. Systemy Operacyjne 2 laboratorium. Mateusz Hołenko. 9 października 2011

Sygnały. 7. Sygnały (2005/2006)

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

Sieci komputerowe. Wstęp do systemu Linux/UNIX, część I. Ewa Burnecka / Janusz Szwabiński. ewa@ift.uni.wroc.pl / szwabin@ift.uni.wroc.

Zarządzanie Procesami

Wstęp do informatyki Shell podstawy

Zarządzanie procesami (omawiane zagadnienia)

1.1 Definicja procesu

Procesy pojęcia podstawowe. 1.1 Jak kod źródłowy przekształca się w proces

Poniższe funkcje opisane są w 2 i 3 części pomocy systemowej.

Powłoka I. Popularne implementacje. W stylu sh (powłoki zdefiniowanej w POSIX) W stylu csh. bash (najpopularniejsza) zsh ksh mksh.

Obsługa sygnałów. Tomasz Borzyszkowski

Akademia Górniczo-Hutnicza im. St. Staszica. Unix/Linux 3. procesy, archiwa i inne Tomasz Bartuś

Systemy Operacyjne 1 Laboratorium 2 Procesy i sygnały w Linuksie (jeden tydzień) dr inż. Arkadiusz Chrobot

WYKŁAD 3 Jądro systemu i procesy. Marcin Tomana Wyższa Szkoła Informatyki i Zarządzania

Utwórz na pulpicie katalog: pierwsza-litera-imienia_nazwisko (np. j_kowalski). W tym katalogu zapisz pliki, które będą tworzone w ramach ćwiczenia

Administracja systemem Linux p. 1

Jądro Powłoka System plików Programy użytkowe

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

Monitorowanie systemu 1. Śledzenie procesów

przerwany proces móg l zareagować na określone zdarzenie. Można je traktować jako software owe wersje przerwań sprz etowych.

Proces instalacji systemu operacyjnego Linux Red Hat 7.3 (1)

Podstawy użytkowania Linux a

Egzamin pisemny z przedmiotu: Systemy operacyjne Semestr I

1 Przygotował: mgr inż. Maciej Lasota

Szkolenie AGH Linux. Nie bój się konsoli i zdaj kolosa na 5.0!!! Tytuł wcale nie przesadzony ;)

INSTRUKCJA OBSŁUGI. Przekaźnik czasowy ETM ELEKTROTECH Dzierżoniów. 1. Zastosowanie

Linux cz.2: terminal, użytkownicy, grupy

Systemy operacyjne. Instrukcja laboratoryjna. Ćwiczenie 1: Polecenia systemu UNIX/LINUX. Opracował: dr inż. Piotr Szpryngier

WPROWADZENIE. Warto pamiętać o opcji autouzupełniania, której używamy naciskając klawisz [Tab]

Systemy operacyjne III

Jak wiemy, wszystkich danych nie zmieścimy w pamięci. A nawet jeśli zmieścimy, to pozostaną tam tylko do najbliższego wyłączenia zasilania.

Wydział Elektryczny Katedra Elektrotechniki Teoretycznej i Metrologii. Materiały pomocnicze do zajęć z przedmiotu SYSTEMY OPERACYJNE

Systemy operacyjne. System operacyjny Linux - wstęp. Anna Wojak

przykład: root:x:0:0:root:/root:/bin/bash

Model procesu w systemie Linux. Tomasz Borzyszkowski

Ćwiczenie 1. Ćwiczenie 2. Ćwiczenie 3. Opisz działanie następujących komend systemowych : COPY EDIT FDISK FIND FORMAT XCOPY

Ćwiczenie Zmiana sposobu uruchamiania usług

Powłoka, redyrekcja, potok

Ćwiczenia Linux konsola

Skanowanie podsieci oraz wykrywanie terminali ABA-X3

Kontrola topto. 1. Informacje ogólne. 2. Wymagania sprzętowe i programowe aplikacji. 3. Przykładowa instalacja topto. 4. Komunikacja.

3. Sieć PLAN. 3.1 Adresowanie płyt głównych regulatora pco

Konsola operatora TKombajn

Wykład 3. Procesy i wątki. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi)

Konsola i interpreter poleceń

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2009/2010

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

UŻYTKOWNIK. APLIKACJE UŻYTKOWE (wszelkie programy zawarte domyślnie w systemie operacyjnym jak i samodzielnie zainstalowane przez użytkownika systemu)

Systemy operacyjne ćwiczenia 1 procesy, wątki, polecenia UNIXa.

Łącza nienazwane(potoki) Łącza nienazwane mogą być używane tylko pomiędzy procesami ze sobą powiązanymi.

System operacyjny Linux

Przygotowanie środowiska Java do prawidłowej obsługi podpisu elektronicznego w epuap

Jądro linuksa. LINUX KERNEL O REILLY Daniel P. Bovet & Marco Cesati

EGZAMIN POTWIERDZAJĄCY KWALIFIKACJE W ZAWODZIE Rok 2018 CZĘŚĆ PRAKTYCZNA

Systemy operacyjne. Zasady lokalne i konfiguracja środowiska Windows 2000

1 Zapoznanie się ze środowiskiem Xenomai.

Ćwiczenie nr 14: System Linux

System IVR. Opis elementów systemu

Praca w środowisku Cygwin. Przygotował Mateusz Dudek

ĆWICZENIE 7. Wprowadzenie do funkcji specjalnych sterownika LOGO!

Administracja serwerami

INDU-52. Przemysłowy Sterownik Mikroprocesorowy. Przeznaczenie Kotły warzelne, Patelnie gastronomiczne, Piekarniki

Radio FM kuchenne SoundMaster UR 2006, LCD, pamięć 30 stacji

Maple i wykresy. 1.1 Najpierw należy się zalogować. Jak to zrobić zostało opisane w moim poprzednim tutorialu.

Instalacja Systemu Linux na maszynie writualnej

Środowisko procesu Unixowego

4. Procesy pojęcia podstawowe

Dokumentacja sterownika mikroprocesorowego "MIKSTER MCC 026"

4. Procesy pojęcia podstawowe

Komunikacja za pomocą potoków. Tomasz Borzyszkowski

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE. Tryb konsolowy - ćwiczenia. 012a

IdyllaOS. Prosty, alternatywny system operacyjny. Autor: Grzegorz Gliński. Kontakt:

tworzenie katalogów Aby utworzyć nowy katalog wpisz: mkdir katalog1 Ta komenda utworzy katalog o nazwie katalog1.

Wstęp do systemu Linux

System operacyjny Linux

Działanie systemu operacyjnego

PROGRAM TESTOWY LCWIN.EXE OPIS DZIAŁANIA I INSTRUKCJA UŻYTKOWNIKA

GRUB (GRand Unified Bootloader) - jest bootloaderem instalowanym standardowo w Ubuntu, potrafiącym obsłużyć kilka systemów jednocześnie (Multiboot).

Praca z programami SAS poza lokalną siecią komputerową UZ. Zestawienie tunelu SSH oraz konfiguracja serwera proxy w przeglądarce WWW

Wstęp 5 Rozdział 1. SUSE od ręki 13

System operacyjny MACH

1 Teoria. 1.1 Znak zachęty. 1.2 Automatyczne uzupełnianie - Tab. 1.3 Historia. 1.5 Wildcardy. 1.6 man

1722/85 I 1722/86 INSTRUKCJA UŻYTKOWNIKA. Panel MIKRA i monitory głośnomówiące CXMODO. Nr ref. 1722/85 Nr ref. 1722/86 INSTRUKCJA UŻYTKOWNIKA

Ćwiczenie 6. Wiadomości ogólne.

Transkrypt:

Laboratorium 3 3.1 Procesy w systemach UNIX 3.2 Polecenia związane z procesami 1

3.1 Procesy w systemach UNIX Z systemami unixowymi związane jest pojęcie procesu. W takim ujęciu, proces, rozumiany jest jako wykonywany w systemie program. Każdy proces charakteryzuję się pewnymi atrybutami: przestrzeń adresowa, licznik programu, stanu rejestrów, deskryptory plików, dane procesu, zależności rodzinne, liczniki statystyczne. Wynikiem obecności w systemie procesów jest to, że jądro systemu może nim sterować tak i może go ustawiać w kilku stanach. Zależnie od źródeł literatury, może być 9 lub 5 stanów. Ostatni przypadek (5) to stany: 1. Pracujący w trybie użytkownika proces znajduje się na procesorze i wykonuje swój kod. 2. Pracujący w trybie jądra jądro wykonuje wywołanie systemowe wykonane przez proces. 3. Uśpiony proces czeka na jakieś zdarzenie, na przykład na odczyt danych z dysku lub otrzymanie danych z sieci. 4. Gotowy do wykonania może być uruchomiony w każdej chwili, jednak nie ma jeszcze przydzielonego procesora. 5. Zombie proces zakończył działanie i czeka na odebranie kodu powrotu przez proces macierzysty. Wszystkie procesy w Unixie powstają jako procesy potomne procesu głównego init o numerze 1, który tworzony przez jądro podczas uruchamiania systemu. Każdy proces może być zarówno procesem potomnym jak i procesem macierzystym innego procesu. System wykonuje każdy proces przez określony czas następnie pobiera kolejny proces do wykonania. W tym czasie grupa procesów oczekuje na wykonanie. Sprawne działanie zapewnia szeregowanie z wywłaszczaniem oraz system priorytetów i co pozwalający tak ustawić intensywnie używające procesor procesy tła, aby nie blokowały pracy procesom interakcyjnym. 3.2 Polecenie związane z procesami ps Podstawowym poleceniem do zarządzania procesami przez użytkownika jest: ps. Polecenie ps występuje w systemach unixowych w kilku wersjach. Różnią się on między sobą sposobem podawania parametrów i nieznacznie zachowaniem. Wersja dostarczana z systemami Linux obsługuje większość opcji podawanych w jednej z trzech konwencji: 1. Opcje w stylu UNIX, które mogą być grupowane i muszą być poprzedzone myślnikiem. 2. Opcje BSD, które mogą być grupowane i nie mogą być użyte z myślnikiem. 3. Długie opcje GNU, które są poprzedzone dwoma myślnikami. Polecenie: ps [-] [lujsvmaxscewhrnu] [txx] [O[+ -]k1[[+ -]k2...]] [pids] ps uruchomiony bez parametrów wyświetla wszystkie procesy danego użytkownika związane z bieżąca konsolą. 2

Wybrane opcje w formacie Uniksa: -? wyświetla najważniejsze opcje -A lub -e wyświetla wszystkie procesy -a wyświetla wszystkie procesy posiadające terminal -l długi format -j format prac: pgid, sid -H "forest" (las) - format drzewiasty Wybrane opcje w formacie BSD: a wyświetla wszystkie procesy posiadające terminal x wyświetla wszystkie procesy posiadające i nie posiadające terminala, należące do bieżącego uzytkownka l długi format j format prac: pgid, sid i inne identyfikatory, dla danego użytkownika f "forest" (las) - format drzewiasty e pokaż środowisko (wszystkie zmienne systemowe) dla każdego polecenia h bez nagłówka Wybrane opcje o identycznym działaniu: 3

-u lub u podaje nazwy użytkowników i czas startu -v format v rbanasi@rbanasi-virtualbox:~$ ps PID TTY TIME CMD 1531 pts/0 00:00:00 bash 1550 pts/0 00:00:00 ps Wyświetlany jest numer PID, terminal sterujący procesu, całkowity czas, w którym proces zajmował procesor, oraz komenda, za pomocą, której proces został uruchomiony. Wyświetlono jedynie te procesy, które pracują na tym samym terminalu, co użytkownik. przykład: rbanasi@rbanasi-virtualbox:~$ ps ax PID TTY STAT TIME COMMAND 1? Ss 0:06 /sbin/init 2? S 0:00 [kthreadd] 3? S 0:01 [ksoftirqd/0] 4? S 0:00 [migration/0] 5? S 0:00 [watchdog/0] 6? S 0:00 [events/0] 7? S 0:00 [cpuset] 8? S 0:00 [khelper] 9? S 0:00 [netns] ( ) Wyświetla wszystkie procesy pracujące w systemie. przykład: rbanasi@rbanasi-virtualbox:~$ ps f PID TTY STAT TIME COMMAND 1531 pts/0 Ss 0:00 bash 1552 pts/0 R+ 0:00 \_ ps f (...) Wykorzystanie opcji f powoduje wyświetlenie drzewa procesów, uwzględniających zależność proces macierzysty - proces potomny. Za pomocą polecenie pstree można wyświetlić drzewo procesów w systemie. przykład: rbanasi@rbanasi-virtualbox:~$ pstree init NetworkManager dhclient {NetworkManager} 3*[VBoxClient {VBoxClient}] 4

VBoxService 6*[{VBoxService}] acpid anacron sh run-parts apt sleep atd avahi-daemon avahi-daemon bonobo-activati 2*[{bonobo-activat}] clock-applet {clock-applet} kill W wielu przypadkach zachodzi potrzeba usunięcia przez użytkownika procesu z systemu Unix. Użytkownik ma takie prawo w stosunku do swoich procesów natomiast użytkownik root do wszystkich. Polecenia do tego służące ma następującą składnię: kill [ -s sygnał -p ] [ -a ] pid... Po wydaniu polecenia kill z właściwym sygnałem, proces przerywa pracę i wykonuje kod obsługi sygnału. Część sygnałów służy do komunikowania procesu o kluczowych wydarzeniach przez jądro. W tabeli znajdują się najczęściej wykorzystywane sygnały, nazwa numer dom. akcja opis SIGHUP 1 zakończenie Wyłączenie terminala sterującego bądź śmierć procesu kontrolującego SIGINT 2 zakończenie Przerwanie z klawiatury (CTRL+C) SIGQUIT 3 zrzut core Wyjście nakazane z klawiatury SIGILL 4 zrzut core Próba wykonania nieprawidłowej instrukcji SIGABRT 6 zrzut core Sygnał przerwania pracy procesu wywołany przez abort() SIGKILL 9 zakończenie Natychmiastowe usunięcie procesu; niemożliwy do złapania ani zignorowania. SIGSEGV 11 zrzut core Nieprawidłowe odwołanie do pamięci wirtualnej SIGPIPE 13 zakończenie Zerwany potok: pisanie do potoku, który nie posiada procesu po stronie czytania SIGALRM 14 zakończenie Sygnał alarmowy wywołany przez funkcję alarm() SIGTERM 15 zakończenie Sygnał zakończenia pracy procesu SIGCHLD 17 ignorowanie Zatrzymanie bądź wyłączenie procesu potomnego SIGCONT 18 start Kontynuacja zatrzymanego procesu SIGSTOP 19 zatrzymanie Zatrzymanie procesu; niemożliwy do złapania ani ignorowania 5

killall Stosowanie polecenia kill jest niezbyt wygodne, gdyż za każdym razem należy sprawdzić PID zatrzymywanego procesu. W systemach linuksowych dostępne jest polecenie killall, które odnajduje proces na podstawie nazwy. Najprostsza jego składnia to: killall [-sygnał] nazwa Uwaga: należy pamiętać, że polecenie wysyła sygnał do wszystkich procesów o podanej nazwie. fuser Polecenie wyświetla wszystkie procesy używające dany plik: fuser [-sygnał -k] plik Opcje pozwalają na wysłanie sygnału (-sygnal) lub zabicie (-k) wszystkich znalezionych procesów. Szczególnie przydatne przed odmontowaniem używanego systemu plików. top Top jest programem działającym w czasie rzeczywistym, prezentującym najbardziej absorbujące procesor i pamięć procesy w systemie. Po uruchomieniu, ekran terminala wygląda następująco: rbanasi@rbanasi-virtualbox:~$ top top - 12:18:26 up 19 min, 2 users, load average: 1.06, 1.71, 2.27 Tasks: 126 total, 1 running, 125 sleeping, 0 stopped, 0 zombie Cpu(s): 2.0%us, 49.3%sy, 0.0%ni, 48.3%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st Mem: 508488k total, 366608k used, 141880k free, 34468k buffers Swap: 407548k total, 0k used, 407548k free, 206784k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 894 root 20 0 62524 23m 6920 S 25.8 4.7 1:20.98 Xorg 1527 rbanasi 20 0 91800 13m 10m S 17.9 2.8 0:08.14 gnome-terminal 1559 rbanasi 20 0 2624 1112 840 R 0.7 0.2 0:00.04 top 3 root 20 0 0 0 0 S 0.3 0.0 0:01.18 ksoftirqd/0 20 root 20 0 0 0 0 S 0.3 0.0 0:02.48 ata_sff/0 1 root 20 0 2884 1684 1224 S 0.0 0.3 0:06.54 init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.08 kthreadd 4 root RT 0 0 0 0 S 0.0 0.0 0:00.01 migration/0 (...) Standardowo, procesy sortowane są według zużycia procesora. Można jednak przełączyć sortowanie, naciskając jeden z klawiszy: N według numeru PID A 6

według wieku P według użycia procesora M według użycia pamięci T - według czasu pracy praca w tle, fg, bg, jobs Polecenia do zarządzania procesami na bieżącej konsoli. Domyślnie po uruchomieniu procesu jego wyjście kierowane jest na bieżącą konsolę. Jednakże po wciśnięciu klawiszy Ctrl-Z konsola zostaje zwolniona a program zatrzymany i pozostawiony "w tle" (zakończenie działania powoduje zazwyczaj klawisz Ctrl-C!). W tym momencie użytkownik może zdecydować co zrobić z tym procesem. Innym sposobem uruchomienia programu w tle jest wydanie polecenie zakończonego znakiem &: polecenie & Przy pomocy komendy fg można ponownie przenieść proces na pierwszy plan. Jednakże wiele procesów może pracować poprawnie w tle. Aby kontynuować pracę procesu w tle należy wydać polecenie bg. Programy fg i bg uruchomione bez parametrów obsługują ostatnio zatrzymany proces. Istnieje możliwość obsłużenia innego procesu z danej konsoli. W tym celu należy uruchomić powyższe polecenia z parametrem: bg [identyfikator zadania] fg [identyfikator zadania] nohup Wiele programów nie pozwala na utworzenie procesu nie związanego z konsolą. Zazwyczaj uniemożliwiają tego programy aktywnie komunikaujące się z konsolą. Aby umożliwić tym programom pracę w tle służy polecenie: nohup polecenie [argumenty] Polecenie tworzy plik nohup.out do którego przekierowany jest wynik działania programu. Przykład: nohup mc & Pozostałe polecenia związane z procesami: nice, bg, fg, jobs, killall nice, renice 7

Procesy w systemach unixowych mają określone priorytety, które system dobiera automatycznie na podstawie sposobu działania procesu. Użytkownik ma jednak możliwość wpływania na sposób dobierania priorytetu poprzez określenie wartości nice wpływającej na to jaki maksymalny priorytet może proces otrzymać. W systemie Linux liczba nice posiada wartości ujemne dla preferowanych zadań i dodatnie dla zadań o niższych priorytetach. "Najwyższą" wartością nice jest -20. Wartości ujemne może przypisywać procesom jedynie użytkownik root. Aby uruchomić proces z zadaną wartością nice należy wydać polecenie: nice [priorytet] polecenie [argumenty] Aby zmienić wartość nice bieżącego procesu należy wydać polecenie: renice [priorytet] PID Zadania 1. Uruchom program top i sprawdź jakie informacje wyświetla oraz jak zmienić sposób sortowania danych. (pomoc - klawisz?) 2. Spróbuje zmienić częstotliwość odświeżania (d). Jaką częśtotliwość da się ustawić najmniej - czy da się ostawić interwał 0s? 3. Uruchom 3 procesy top (na osobnych konsolach). W kolejnej nowej konsoli zmień wybranemu procesowi top wartość nice. 4. Utwórz plik i wyświetl go na 3 konsolach poleceniem less. Sprawdź działanie programu fuser. Spróbuj przy jego pomocy zakończyć działanie przeglądarek less. 8