OnWorks Linux i Windows Online WorkStation

logo

Darmowy hosting online dla stacji roboczych

<Poprzedni | Spis treści | Następne>

Co więcej, Linux opiera się na systemie UNIX, gdzie przyjętą polityką jest, aby wielu użytkowników wykonywało wiele poleceń w tym samym czasie i w tym samym systemie. Oczywiste jest, że należy podjąć środki, aby procesor zarządzał wszystkimi tymi procesami i że należy zapewnić funkcjonalność, aby użytkownicy mogli przełączać się między procesami. W niektórych przypadkach procesy będą musiały być kontynuowane nawet wtedy, gdy użytkownik, który je uruchomił, wyloguje się. Użytkownicy potrzebują sposobu na reaktywację przerwanych procesów.


W kolejnych rozdziałach wyjaśnimy strukturę procesów Linuksa.


obraz

4.1.2. Typy procesów


4.1.2.1. Procesy interaktywne


Procesy interaktywne są inicjowane i kontrolowane poprzez sesję terminalową. Innymi słowy, musi być ktoś podłączony do systemu, aby rozpocząć te procesy; nie są one uruchamiane automatycznie w ramach funkcji systemu. Procesy te mogą działać na pierwszym planie, zajmując terminal, na którym uruchomiono program, i nie można uruchamiać innych aplikacji, dopóki ten proces działa na pierwszym planie. Alternatywnie mogą działać w tle, dzięki czemu terminal, w którym uruchomiłeś program, może akceptować nowe polecenia podczas działania programu. Do tej pory skupialiśmy się głównie na programach działających na pierwszym planie — czas potrzebny na ich uruchomienie był zbyt krótki, aby można było to zauważyć — ale oglądanie pliku z mniej polecenie jest dobrym przykładem polecenia zajmującego sesję terminala. W takim przypadku aktywowany program czeka, aż coś zrobisz. Program jest nadal podłączony do terminala, z którego został uruchomiony, a terminal jest przydatny tylko do wprowadzania poleceń zrozumiałych dla tego programu. Inne polecenia spowodują po prostu błędy lub


brak reakcji systemu.


Jednakże, gdy proces działa w tle, użytkownik nie jest powstrzymywany od wykonywania innych czynności w terminalu, w którym uruchomił program, podczas jego działania.


Powłoka oferuje funkcję zwaną kontrola pracy co pozwala na łatwą obsługę wielu procesów. Mechanizm ten przełącza procesy pomiędzy pierwszym planem a tłem. Dzięki temu systemowi można także natychmiast uruchamiać programy w tle.


obraz

Uruchamianie procesu w tle jest przydatne tylko w przypadku programów, które nie wymagają interwencji użytkownika (poprzez powłokę). Umieszczanie zadania w tle jest zwykle wykonywane, gdy oczekuje się, że wykonanie zadania zajmie dużo czasu. Aby zwolnić terminal wydający po wprowadzeniu polecenia, dodawany jest końcowy ampersand. W przykładzie korzystając z trybu graficznego otwieramy dodatkowe okno terminala z istniejącego:


Billy:~> xterm &

[1] 26558


Billy:~> Oferty pracy

[1]+ Bieganie

xterm &

Billy:~> xterm &

[1] 26558


Billy:~> Oferty pracy

[1]+ Bieganie

Funkcje pełnej kontroli zadań zostały szczegółowo wyjaśnione w dokumencie bash Strony informacyjne, więc tutaj wymienione są tylko często używane aplikacje do kontroli zadań:


Tabela 4-1. Kontrolowanie procesów


(część) polecenia

Znaczenie

zwykłe_polecenie

Uruchamia to polecenie na pierwszym planie.

Komenda &

Uruchom to polecenie w tle (zwolnij terminal)

Oferty pracy

Pokaż polecenia działające w tle.

Ctrl+Z

Wstrzymaj (zatrzymaj, ale nie wyjdź) proces działający na pierwszym planie (zawieś).

Ctrl+C

Przerwij (zakończ i zakończ) proces działający na pierwszym planie.


%n

Każdy proces działający w tle otrzymuje przypisany numer. Używając wyrażenia %, można na przykład odwołać się do zadania, używając jego numeru fg %2.

bg

Aktywuj ponownie zawieszony program działający w tle.

fg

Umieszcza zadanie z powrotem na pierwszym planie.

zabić

Zakończ proces (zobacz także Wbudowane polecenia powłoki na stronach informacyjnych bash)

Bardziej praktyczne przykłady można znaleźć w ćwiczeniach.


Większość systemów UNIX prawdopodobnie będzie w stanie działać ekran, co jest przydatne, gdy faktycznie chcesz, aby inna powłoka wykonywała polecenia. Po zadzwonieniu ekran, tworzona jest nowa sesja z towarzyszącą powłoką i/lub poleceniami, jak określono, które można następnie usunąć. W tej nowej sesji możesz robić, co chcesz. Wszystkie programy i operacje będą działać niezależnie od powłoki wydającej. Możesz następnie odłączyć tę sesję, podczas gdy programy, które w niej uruchomiłeś, będą nadal działać, nawet jeśli wylogujesz się z powłoki źródłowej i wybierzesz swoją ekran ponownie, kiedy tylko chcesz.


Program ten pochodzi z czasów, gdy nie wynaleziono jeszcze wirtualnych konsol, a wszystko trzeba było robić przy pomocy jednego terminala tekstowego. Dla uzależnionych w Linuksie ma to nadal znaczenie, mimo że mamy wirtualne konsole od prawie dziesięciu lat.


obraz


4.1.2.2. Procesy automatyczne


Procesy automatyczne lub wsadowe nie są podłączone do terminala. Są to raczej zadania, które można umieścić w kolejce w obszarze buforowania, gdzie oczekują na wykonanie zgodnie z zasadą FIFO (pierwsze weszło, pierwsze wyszło). Zadania takie można realizować stosując jedno z dwóch kryteriów:


W określonym dniu i godzinie: wykonane za pomocą at polecenie, które omówimy w drugiej części tego rozdziału.

Czasami, gdy całkowite obciążenie systemu jest wystarczająco niskie, aby zaakceptować dodatkowe zadania: wykonane za pomocą partia Komenda. Domyślnie zadania umieszczane są w kolejce, w której czekają na wykonanie, aż obciążenie systemu spadnie poniżej 0.8. W dużych środowiskach administrator systemu może preferować przetwarzanie wsadowe, gdy trzeba przetworzyć duże ilości danych lub gdy zadania wymagające dużych zasobów systemowych muszą być wykonywane w już załadowanym systemie. Przetwarzanie wsadowe służy również do optymalizacji wydajności systemu.


obraz

4.1.2.3. Demony


Najlepsze przetwarzanie w chmurze dla systemu operacyjnego w OnWorks: