Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- USUX
- Sprawozdanie Laboratorium 3
- Zadanie 1.
- Aby wyświetlić listę procesów z bieżącej sesji konkretnego użytkownika, należy użyć komendy
- '$ps -lu user_name'.
- Ukazują się następujące atrybuty:
- F - flaga procesu (1 - sforkowany; 4 - używał uprawnień roota);
- S - Kod stanu procesu. Większość procesów było w stanie S (czekający na
- zakończenie zdarzenia) - jedynym, który nie miał takiego stanu był ps.
- UID - ID użytkownika
- PID - ID procesu
- PPID - ID rodzica procesu
- C - Wartość liczbowa procentu użycia procesora
- PRI - Priorytet procesu;
- NI - Wartość nice; Dla użytkownika usux1 wszystkie procesy miały NI równe
- 0 oprócz procesu pulseuadio. Dla użytkownika root było parę procesów o
- NI równym 19, 5, -4, -2 itd.
- ADDR - Adres procesu w pamięci; wszystkie wartości były równe '-';
- SZ - Zużycie pamięci wirtualnej;
- WCHAN - Adres w pamięci wydarzenia, na które oczekuje proces;
- TTY - Terminal związany z procesem;
- CMD - Nazwa procesu (zawierająca argumenty wywołania, jeśli takie były).
- Zadanie 2.
- W celu zobaczenia wszystkich procesów w systemie należy wpisać $ps -A. Procesy
- własne można zobaczyć wpisując $ps -ux. Żeby zobaczyć drzewo procesów od
- inita, należy użyć polecenia $pstree -npu usux1.
- Zadanie 3.
- Aby wysłać sygnał do procesu należy wpisać polecenie : "$kill -sygnał pid"
- Dla przykładu po wpisaniu $kill -SIGINT xxxxx proces przeglądarki Firefox został zamknięty.
- Po wpisaniu "$kill -SIGSTOP xxxxx" proces przeglądarki został zawieszony,
- program nie odpowiadał. Dopiero wpisanie $kill -SIGCONT xxxxx spowodowało wznowienie pracy Firefoxa. Aby zignorować sygnał SIGINT, który domyślnie w terminalu jest wywoływany wciśnięciem
- kombinacji CTRL+C, należy wpisać $trap '' SIGINT. Wtedy po uruchomieniu
- procesu, już go nie można zakończyć za pomocą CTRL+C (wysyłany sygnał
- SIGINT jest ignorowany). Aby usunąć wprowadzone zmiany, należy wpisać
- $trap - SIGINT. Aby ustawić wykonywanie reakcji na polecenie, należy
- wpisać np. $trap "echo tekst" SIGINT - proces zostanie zabity, a następnie
- zostanie wyświetlony string tekst.
- Zadanie 4.
- Żeby terminal nie czekał na zakończenie procesu, należy dodać & na koniec. Użyłem polecenia $sleep 250 &
- Reakcje na komendy :
- Na komendę $jobs dostajemy informację, że taki proces jest uruchomiony.
- Na komendę $fg dostajemy nazwę polecenia przenieionego na pierwszy plan, w tym stanie nie mamy możliwości nic wykonać aż do zakończenia polecenia sleep.
- Na komendę $bg dostajemy informację "job already in background".
- Wykonujemy polecenie $sleep 200, a następnie wysyłamy sygnał zatrzymania SIGSTOP,
- poprzez wciśnięcie kombinacji CTRL+Z przenosimy proces do tła.
- Możemy to sprawdzić wpisując komendę $jobs -l. Następnie wznawiamy go poprzez wpisanie $bg (aktywuje go na dalszym plane niż pierwszy). Możemy sprawdzić różnice za pomocą komendy $jobs -l
- ($jobs - l zmiana stanu suspended na running).
- Zadanie 5.
- Zgodnie z poleceniem uruchamiamy proces z obniżonym priorytetem: $nice -5 sleep 100 &
- Sprawdzamy wartość nice, $ps -ul usux1 -> jest równa xx. Wartość PRI to 90.
- Zmieniamy wartość NICE za pomocą komendy $renice 19 -p 3021.
- Dostajemy komunikat: old priority 10, new priority 19. Nowa wartość PRI to 99.
- Niemożliwe jest ustawienie wyższego priorytetu (czyli niższej wartości NICE) -
- dostajemy komunikat "setpriority: brak dostępu"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement