Moduł 4: Strumienie, potoki, sterowanie procesami

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

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

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

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

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

Narzędzia informatyczne w językoznawstwie

Systemy Operacyjne I: Procesy

Technologie Informacyjne - Linux 2

System operacyjny UNIX Ćwiczenie 1. Podstawowe polecenia systemu Unix

Sieci i systemy operacyjne I Ćwiczenie 1. Podstawowe polecenia systemu Unix

Bash - wprowadzenie. Bash - wprowadzenie 1/39

Zakład Systemów Rozproszonych

Temat zajęć: Filtry, strumienie standardowe oraz przetwarzanie potokowe. stderr

Znaki globalne w Linuxie

Powłoka interpreter poleceń systemu UNIX

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

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

Ustalanie dostępu do plików - Windows XP Home/Professional

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

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6

1 Przygotował: mgr inż. Maciej Lasota

Wstęp do systemu Linux

Opis modułu pl.id w programie Komornik SQL-VAT

Komendy Ubuntu MARCEL GAŃCZARCZYK 2T I 1

Konsola Linux. autor: Mariusz Barnaś

Chemiateoretyczna. Monika Musiał. Ćwiczenia

Architektura systemów informatycznych WPROWADZENIE DO SYSTEMU LINUX

SYSTEMY OPERACYJNE ĆWICZENIE POLECENIA SYSTEMU MSDOS

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

Kurs systemu Unix wykład wstępny. Kurs systemu Unix 1

BASH - WPROWADZENIE Bioinformatyka 4

Wyszukiwanie plików w systemie Windows

Wstęp do systemu Linux

Niektóre katalogi są standardowymi katalogami zarezerwowanymi do użytku przez system. Znaczenie wybranych katalogów systemowych jest następujące:

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

Bibliotek grid została stworzona aby wykorzystywać funkcje programu R ( oraz wprowadzone do programu R) do tworzenia odwzorowań typu grid oraz siatek

2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego

Powłoka, redyrekcja, potok

BASH - LINIA POLECEŃ. Bioinformatyka 2018/2019

PRACOWNIA INFORMATYCZNA BASH - PODSTAWOWE INFORMACJE

Wstęp do systemów wielozadaniowych laboratorium 02 Praca w systemie plików

Memeo Instant Backup Podręcznik Szybkiego Startu

Wstęp do systemów wielozadaniowych laboratorium 03 Praca w powłoce UNIX-owej

Akademia Oracle Kariera Inżyniera. Systemy operacyjne UNIX/Solaris

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

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

Program RMUA. Instrukcja konfiguracji i pracy w programie. (Wersja 2)

Nowa Netia administrator firmy Nagrywanie połączeń-zarządzanie

MATERIAŁY - udostępnianie materiałów dydaktycznych w sieci SGH

Egzamin pisemny z przedmiotu: Systemy operacyjne Semestr I

Kalipso wywiady środowiskowe

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

Podstawy używania konsoli tekstowej w systemie Linux. Andrzej Zbrzezny

Konsola i interpreter poleceń

7 Business Ship Control dla Symfonia Handel

Na komputerach z systemem Windows XP zdarzenia są rejestrowane w trzech następujących dziennikach: Dziennik aplikacji

Systemy operacyjne i sieci komputerowe Szymon Wilk Konsola MMC 1

Szkolenie dla nauczycieli SP10 w DG Operacje na plikach i folderach, obsługa edytora tekstu ABC. komputera dla nauczyciela. Materiały pomocnicze

Archiwum DG 2016 PL-SOFT

Rozpoczęcie pracy z programem.

Korzystanie z edytora zasad grupy do zarządzania zasadami komputera lokalnego w systemie Windows XP

Zarządzanie użytkownikami w

7 Business Ship Control dla Systemu Zarządzania Forte

Instrukcja obsługi Konfigurator MLAN-1000

INSTRUKCJA. SIMPLE.HCM Proces obsługi Kartoteki Pracownika, Kartoteki Przełożonego oraz Raportów kadrowo-płacowych

Instrukcja instalacji aplikacji Comarch Smart Card ToolBox

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

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

Fiery Remote Scan. Uruchamianie programu Fiery Remote Scan. Skrzynki pocztowe

Informacje o procesach czyli polecenie "ps".

Informacje o aktualizacji oprogramowania

IG1: INSTALACJA KOMUNIKATORA GADU-GADU

INSTRUKCJA INSTALACJI I URUCHOMIENIA PROGRAMÓW FINKA DOS W SYSTEMACH 64 bit

Lokalne konta użytkowników

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

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

Trochę o plikach wsadowych (Windows)

Menu Plik w Edytorze symboli i Edytorze widoku aparatów

Podręcznik administratora Systemu SWD ST Instrukcja instalacji systemu

5.2. Pierwsze kroki z bazami danych

Content Manager 2.0 podręcznik użytkownika

Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows XP

Pobieranie komunikatów GIF

Państwowa Wyższa Szkoła Zawodowa w Gorzowie Wlkp. Laboratorium architektury komputerów

Content Manager 2 podręcznik użytkownika

PORADNIK KORZYSTANIA Z SERWERA FTP ftp.architekturaibiznes.com.pl

dokumentacja Edytor Bazy Zmiennych Edytor Bazy Zmiennych Podręcznik użytkownika

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

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

e-wsparcie Barbara Muszko Aktualizacja Twojej witryny internetowej tak prosta, jak obsługa Worda

Pracownia Komputerowa wyk ad II

MS-DOS polecenia wewnętrzne i

Tomasz Greszata - Koszalin

Skanowanie podsieci oraz wykrywanie terminali ABA-X3

1 Moduł Inteligentnego Głośnika

Podręcznik użytkownika Wprowadzający aplikacji Wykaz2

MODUŁ INTEGRUJĄCY ELEKTRONICZNEGO NADAWCĘ Z WF-MAG SPIS TREŚCI

Platforma e-learningowa

Aplikacja do podpisu cyfrowego npodpis

Transkrypt:

Moduł 4: Strumienie, potoki, sterowanie procesami Strumienie i potoki Standardowe strumienie są podstawowymi kanałami komunikacji pomiędzy komputerem a otoczeniem. Do podstawowych strumieni należą Standard input standardowy strumień wejścia oraz Standard output standardowy strumień wyjścia. Standardowy strumień wejścia stdin - to dane przekazywane do programu zwykle w formie tekstu. Pobiera dane używając funkcji read. Nie wszystkie programy wymagają danych wejściowych i wykonują się nie pobierając żadnych danych z stdin. Jeżeli dane nie są przekierowane to zostają pobierane z terminala. Przykłady: #ls - wyświetla listę plików #man ls - opisuje działanie komendy ls #cat < przyklad.txt wyświetlenie zawartości pliku przykład.txt Standardowy strumień wyjścia stdout strumień, do którego są zapisywane dane wynikowe przez program. Wykorzystuje funkcje write, niektóre programy nie zwracają danych wynikowych, jeżeli zostaną przeprowadzone prawidłowo to nie wypisują żadnego wyniku. Jeżeli dane nie są przekierowane to są wysyłane do terminala, z którego uruchomiono program. Przykłady: #mkdir nazwa_forderu - tworzenie folderu nazwa_folderu #rmdir nazwa_forderu - usunięcie folderu nazwa_folderu #touch plik.txt wstawia plik plik.txt #cat plik.txt wyświetla zawartość pliku plik.txt Przekierowanie strumieni umożliwia przeniesienie wyniku np. do pliku tekstowego. Wyróżniamy 3 sposoby przekierowania danych: > umożliwia przekierowanie strumienia danych do pliku. W przypadku, gdy plik już istnieje to jego zawartość zostaje usunięta >> podobnie jak w przypadku > z tą różnicą, że jeżeli plik istnieje to wynik komendy zostaje dopisany do końca pliku < Umożliwia pobranie z pliku danych i przetworzenia ich przez polecenie Przykłady: #ls > plik1.txt wpisze wynik polecenia ls do pliku #ls >> plik1.txt dopisze wynik polecenia ls na koniec pliku #cat < plik1.txt wypisze zawartość pliku

Przetwarzanie potokowe pozwala za pomocą znaku łączyć wyjścia jednego polecenia z wejściem innego. Umożliwia to wymianę danych pomiędzy procesami. Przykład: #touch procesy.txt #cat > procesy.txt << EOF >Wykaz procesów, które nie zawierają w sobie wzorca sh >EOF #ps grep v sh cat >> procesy.txt #cat procesy.txt Sterowanie procesami Rysunek 1. Zawartość pliku procesy.txt Każdy program, który jest uruchomiony w systemie nosi nazwę procesu. Proces składa się z następujących elementów: Kod binarny procesu załadowany z pliku Dane programu struktury danych, pamięć dynamicznie przydzielona w trakcie działania procesu Dane systemowe informacja o procesie utrzymywania przez system Podczas tworzenia procesu system inicjalizuje systemowe struktury danych opisujące proces. Podczas działania procesu dane są aktualizowane. Wyróżniamy następujące dane systemowe: Identyfikator procesu (PID) unikalna liczba całkowita jednoznacznie identyfikująca proces Identyfikator procesu macierzystego (PPID) - wartość PID procesu, który stworzył dany proces Środowisko procesu zbiór zmiennych środowiskowych. Każdy proces ma swoje niezależne od innych procesów środowisko wykonania, które początkowo jest kopiowane z procesu-rodzica, a następnie jest modyfikowane niezależnie od innych procesów Standardowe strumienie danych Komenda ps komenda wyświetla listę wszystkich aktywnych procesów. Domyślnie komenda wyświetla poniższe dane: Rysunek 2. Lista procesów wyświetlona po wykonaniu komendy ps. PID numer procesu TTY terminal, z którego została wykonana komenda

TIME czas aktywności CMD nazwa komendy, która została wykonana Więcej informacji o procesie aktualnej powłoki można uzyskać za pomocą polecenia #ps f UID ID właściciela PPID C numer procesu nadrzędnego STIME czas uruchomiania Rysunek 3. Więcej informacji na temat procesów Jeżeli chcemy uzyskać wszystkie dostępne informacje o procesie używamy komendy #ps l Rysunek 4. Wszystkie informacje na temat procesów F flaga procesu S status procesu PRI priorytet procesu NI wartość NI ADDR adres pamięci przedstawiony w systemie szesnastkowym SZ rozmiar w KB WCHAN adres pamięci dla śpiących procesów Gdy jesteśmy zalogowani, jako administrator to możemy wyświetlić listę procesów, które są aktualnie uruchomione na całym komputerze za pomocą komendy #ps-a. Rysunek 5. Fragment listy procesów uruchomionych na maszynie Bardziej szczegółowy opis procesów można uzyskać podobnie jak w poprzednich przypadkach dołączając do komendy literkę f. Rysunek 6. Bardziej szczegółowa lista procesów uruchomionych na maszynie Komenda #ps c wyświetla klasę(cls) procesu i priorytet.

Rysunek 7. Wynik polecenia ps -c Opis skonfigurowanych klas można uzyskać dzięki poleceniu #priocntl l Rysunek 8. Skonfigurowane klasy Analogicznie jak w przypadku #ps Af, można łączyć też polecenie wyświetlania procesów szczegółowo wraz z klasami poleceniem #ps -cf. Aby wyświetlić listę procesów aktualnie wykonywanych używamy polecenia #ps g 0. Rysunek 9. Lista procesów aktualnie wykonywanych Aby wyświetlić identyfikator sesji (SID) wykorzystujemy polecenie #ps -j. Rysunek 10. Wyświetlenie danych o procesach wraz z SID Komenda sleep komenda usypiająca proces na podany czas. Są dwie opcje użycia polecenia sleep : #date;sleep 10;date wyświetlenie daty w danym momencie i po upływie polecenia sleep Rysunek 11. Efekt wywołania polecenia sleep

#(sleep 10; date) & - Wyświetlenie daty po upływie 10 sekund i możliwość wykonywania w tym czasie innych komend dzięki ustawieniu pracy w tle za pomocą znaku & na końcu komendy. Dodatkowo po wpisaniu znaku & na końcu komendy otrzymujemy od razu jego ID. Rysunek 12. Efekt wykonana polecenia sleep pracującego w tle Komenda kill komenda umożliwiająca usunięcie procesu. Przykład: #ps wyświetlenie listy procesów #sleep 120 & - uruchomienie sleep w tle #ps wyświetlenie listy procesów #kill 2207 usunięcie procesu 2207 #ps ponowne wyświetlenie listy procesów Rysunek 13. Przykład wykorzystania polecenia "kill" Sterowanie zadaniami przez używaną powłokę (procesy pierwszo i drugoplanowe) Procesy interakcyjne dzielimy na dwa rodzaje: Procesy pierwszoplanowe związane z terminalem (np. ls) Procesy drugoplanowe wykonywane w tle Aby program był wykonywany w tle wystarczy na końcu polecenia dodać znak & Przykład: #(sleep 10; date) & - wyświetli datę po 10 sekundach #gedit & uruchamia edytor treści w tle

Przykład zarządzania zadaniami w powłoce znajduje się w następnym rozdziale, gdzie będzie uruchamiany edytor treści gedit, a następnie będziemy go przenosić z pierwszego planu do tła i odwrotnie. Wstrzymywanie procesów Aby uruchomić wybrany proces wpisujemy w konsoli jego nazwę, przykładowo będzie to edytor tekstu gedit. Polecenie jobs polecenie wyświetla aktualnie wykonywane zadania oraz ich status Polecenie ^Z oznacza w rzeczywistości skrót klawiszowy CTRL + Z i jego zadaniem jest przerwanie wykonywanego zadania. Polecenie ^C polecenie zamyka uruchomiony proces Polecenie bg %id lub bg przenosi jeden lub wszystkie zatrzymane procesy do tła, a następnie je uruchamia Polecenie fg %id przywraca proces z tła, blokując w ten sposób konsolę Polecenie kill ID kończy proces o podanym ID Przykłady: #gedit uruchamia edytor tekstu ^Z zatrzymuje działanie edytora #jobs l wyświetla status programu #bg przenosi program do tła i uruchamia #jobs l wyświetla status programu #fg %1 przywraca edytor z tła i blokuje w ten sposób terminal ^C zamyka uruchomiony program Rysunek 14. Uruchamianie poleceń #gedit & - uruchamia programik w tle #jobs l wyświetla informacje o procesie #fg %1 przywraca proces z tła ^Z zatrzymuje działanie procesu odblokowując terminal #jobs l wyświetla informacje o procesie

Rysunek 15. Uruchamianie poleceń cd. #kill 1487 usuwa proces Monitorowanie procesów Monitorowanie procesów może się odbywać za pomocą każdej z poniższych komend Tabela 1. Komendy monitorowania procesów Komenda ps pgrep prstat preap pstop prun pwait pwdx pargs pfiles pldd ptree pstack truss svcs Działanie Wyświetla status i informacje na temat procesów Szuka PID procesów Wyświetla statystyki wszystkich procesów Wyłapuje procesy Zombie Zatrzymuje tymczasowo procesy Kontynuuje wcześniej zatrzymane procesy Czeka aż skończy się proces Pokazuje folder, w którym działa proces Wypisuje argumenty i wartości procesu Wypisuje listę opisów procesu Lista dynamicznych bibliotek procesu Wypisuje drzewo procesu Debuguje wynik procesu Śledzi wezwania i sygnały systemowe dla procesu Z opcją -p komenda wyświetla listę procesów należących do instancji usługi Komenda pgrep sprawdza aktywne procesy w systemie i sporządza raport ID procesów, których atrybuty spełniają kryteria wpisane w komendzie. Może być używany do zmiany połączenia komend grep i ps w celu pobrania PID.

Rysunek 16. Przykład użycia pgrep Komenda prstat- wyświetla interwałowo informacje na temat wszystkich procesów. #prstat 1 wyświetla, co sekundę informacje(crtl + c, aby przerwać). Komenda preap czyści niedziałające procesy lub procesy zombie, które są bezużyteczne a pobierają zasoby systemu. #ps efl greap Z wyszuka wadliwe procesy #preap PID usunie proces o identyfikatorze PID Komendy pstop PID i prun PID zatrzymują i uruchamiają podany proces. Komenda pwait PID usypia konsole do czasu zakończenia wskazanego procesu Komenda pwdx Pokazuje lokalizację wybranego procesu Rysunek 17. Wyświetlenie wybranej lokalizacji procesu Komenda pargs wyświetla informacje o procesach bez limitu w porównaniu do komendy ps Rysunek 18. Wynik użycia komendy pargs dla procesu 1237 Komenda pfiles wyświetla listę plików otwartych podczas działania procesu

Rysunek 19. Efekt działania polecenia pfiles Komenda pldd lista bibliotek wykorzystywanych przez proces Rysunek 20. Lista bibliotek wykorzystywanych przez proces Komenda ptree wyświetla wszystkie dzieci i rodziców danego procesu Rysunek 21. Efekt działania ptree

Komenda pstack śledzi uruchomiony proces Rysunek 22. Wynik komendy pstack Komenda truss jedna z najbardziej pożytecznych komend, śledzi wezwania i sygnały systemu wygenerowane przez proces. Przykładowo można śledzić wybrany proces: Rysunek 23. Przykładowy wynik śledzenia procesu 333 Zadania do samodzielnego rozwiązania Po uruchomieniu klikamy prawym przyciskiem na pulpicie i wybieramy opcję Open Terminal. Zad.1 Podstawowe wykorzystanie strumieni oraz potoków. Wyświetl listę plików i folderów #ls Rysunek 24. Lista plików i folderów Utwórz folder Lab_procesy i sprawdź czy folder został utworzony Rysunek 25. Lista z nowo utworzonym folderem

Przejdź do utworzonego folderu, a następnie upewnij się że jesteś w utworzonym folderze Utwórz plik lista_procesow.txt Rysunek 26. Przejście do utworzonego folderu Sprawdź czy został utworzony plik Rysunek 27. Tworzenie nowego pliku Rysunek 28. Lista plików Dodaj treść do pliku Lista aktywnych procesów: Sprawdź zawartość pliku lista_procesow.txt Rysunek 29. Dodawanie treści do pliku Rysunek 30. Wyświetlenie zawartości pliku Wyświetl listę procesów, następnie dodaj ją do pliku usuwając jeden z procesów o wybranym identyfikatorze PID Wyświetl zawartość pliku Rysunek 31. Zapisywanie listy procesów do pliku

Zad.2. Operacje na procesach(sleep, kill, &) Rysunek 32. Zawartość pliku "lista_procesow.txt" Utwórz proces który wyświetli aktualną datę i datę po 10 sekundach Rysunek 33. Wyświetlanie daty z opóźnieniem Po wykonaniu poprzedniego zadania konsola została zablokowana na 10 sekund, przekształć poprzednie polecenie tak, aby można było po wykonaniu polecenia użyć komendy ls Rysunek 34. Uruchomienie procesu sleep w tle Wyświetl listę procesów, a następnie utwórz proces jak w poprzednim poleceniu ustawiając go na 2 minuty. Sprawdź ponownie listę procesów i sprawdź czy znajduje się tam uruchomiony przez ciebie proces. Następnie usuń proces wykorzystując jego PID i ponownie sprawdź listę procesów

Rysunek 35. Usuwanie utworzonego procesu Zad.3. Sterowanie procesami(jobs, ^Z, ^C, bg, fg, kill) Uruchom z poziomu terminala edytor tekstu gedit Rysunek 36. Uruchomienie edytora tekstu Po uruchomieniu edytora tekstu nie można wpisywać komend w terminalu dopóki proces działa jako pierwszoplanowy. Zatrzymaj działanie programu(ctrl + Z) Rysunek 37. Zatrzymanie działania programu

Następnie wyświetl status uruchomionych zadań Rysunek 38. Lista uruchomionych zadań Uruchom ponownie program w tle i wyświetl jego status Rysunek 39. Przeniesienie procesu na drugi plan Przywróć program do działania w trybie pierwszoplanowym posługując się jego numerem z polecenia jobs, a następnie poleceniem CTRL + C zakończ działanie programu Rysunek 40. Przywrócenie programu na pierwszy plan Uruchom ponownie program gedit w tle i wyświetl działające zadania Rysunek 41. Uruchamianie procesu w tle Przenieś proces z tła do pierwszego planu używając jego numeru i zatrzymaj jego działanie Rysunek 42. Przeniesienie procesu z tła na pierwszy plan

Wyświetl listę aktywnych procesów i usuń proces gedit Rysunek 43. Lista aktywnych procesów Rysunek 44. Usuwanie procesu