Advertisement
Guest User

Untitled

a guest
Mar 21st, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.42 KB | None | 0 0
  1. USUX
  2. Sprawozdanie Laboratorium 3
  3.  
  4. Zadanie 1.
  5. Aby wyświetlić listę procesów z bieżącej sesji konkretnego użytkownika, należy użyć komendy
  6. '$ps -lu user_name'.
  7.  
  8. Ukazują się następujące atrybuty:
  9. F - flaga procesu (1 - sforkowany; 4 - używał uprawnień roota);
  10. S - Kod stanu procesu. Większość procesów było w stanie S (czekający na
  11. zakończenie zdarzenia) - jedynym, który nie miał takiego stanu był ps.
  12. UID - ID użytkownika
  13. PID - ID procesu
  14. PPID - ID rodzica procesu
  15. C - Wartość liczbowa procentu użycia procesora
  16. PRI - Priorytet procesu;
  17. NI - Wartość nice; Dla użytkownika usux1 wszystkie procesy miały NI równe
  18. 0 oprócz procesu pulseuadio. Dla użytkownika root było parę procesów o
  19. NI równym 19, 5, -4, -2 itd.
  20. ADDR - Adres procesu w pamięci; wszystkie wartości były równe '-';
  21. SZ - Zużycie pamięci wirtualnej;
  22. WCHAN - Adres w pamięci wydarzenia, na które oczekuje proces;
  23. TTY - Terminal związany z procesem;
  24. CMD - Nazwa procesu (zawierająca argumenty wywołania, jeśli takie były).
  25.  
  26. Zadanie 2.
  27. W celu zobaczenia wszystkich procesów w systemie należy wpisać $ps -A. Procesy
  28. własne można zobaczyć wpisując $ps -ux. Żeby zobaczyć drzewo procesów od
  29. inita, należy użyć polecenia $pstree -npu usux1.
  30.  
  31. Zadanie 3.
  32. Aby wysłać sygnał do procesu należy wpisać polecenie : "$kill -sygnał pid"
  33. Dla przykładu po wpisaniu $kill -SIGINT xxxxx proces przeglądarki Firefox został zamknięty.
  34. Po wpisaniu "$kill -SIGSTOP xxxxx" proces przeglądarki został zawieszony,
  35. 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
  36. kombinacji CTRL+C, należy wpisać $trap '' SIGINT. Wtedy po uruchomieniu
  37. procesu, już go nie można zakończyć za pomocą CTRL+C (wysyłany sygnał
  38. SIGINT jest ignorowany). Aby usunąć wprowadzone zmiany, należy wpisać
  39. $trap - SIGINT. Aby ustawić wykonywanie reakcji na polecenie, należy
  40. wpisać np. $trap "echo tekst" SIGINT - proces zostanie zabity, a następnie
  41. zostanie wyświetlony string tekst.
  42.  
  43. Zadanie 4.
  44. Żeby terminal nie czekał na zakończenie procesu, należy dodać & na koniec. Użyłem polecenia $sleep 250 &
  45.  
  46. Reakcje na komendy :
  47.  
  48. Na komendę $jobs dostajemy informację, że taki proces jest uruchomiony.
  49. 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.
  50. Na komendę $bg dostajemy informację "job already in background".
  51.  
  52.  
  53. Wykonujemy polecenie $sleep 200, a następnie wysyłamy sygnał zatrzymania SIGSTOP,
  54. poprzez wciśnięcie kombinacji CTRL+Z przenosimy proces do tła.
  55. 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
  56. ($jobs - l zmiana stanu suspended na running).
  57.  
  58. Zadanie 5.
  59. Zgodnie z poleceniem uruchamiamy proces z obniżonym priorytetem: $nice -5 sleep 100 &
  60. Sprawdzamy wartość nice, $ps -ul usux1 -> jest równa xx. Wartość PRI to 90.
  61. Zmieniamy wartość NICE za pomocą komendy $renice 19 -p 3021.
  62. Dostajemy komunikat: old priority 10, new priority 19. Nowa wartość PRI to 99.
  63. Niemożliwe jest ustawienie wyższego priorytetu (czyli niższej wartości NICE) -
  64. dostajemy komunikat "setpriority: brak dostępu"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement