Linux – wielozadaniowość, wielodostępność, zarządzanie pamięcią

Wielozadaniowość

Linux jest systemem wielozadaniowym – co umożliwia mu równoczesne wykorzystywanie więcej niż jednego procesu (proces to egzemplarz wykonywanego programu, posiadający własną przestrzeń adresową). Za realizację wielozadaniowości odpowiedzialne jest jądro systemu operacyjnego (kernel).

Wielozadaniowość zapewniona jest przez program nazywany planistą, który realizuje algorytm szeregowania zadań w kolejce do przyznania czasu procesora. Linux może wykorzystywać wiele procesorów. Gdy system ma mniej dostępnych procesorów niż zadań to czas działania procesora jest dzielony pomiędzy wszystkie zadania.

Linux operuje także tzw. wywłaszczenie, które polega na przerwaniu wykonywania procesu, odebraniu mu procesora i przekazaniu sterowania do planisty.

Do wyświetlania listy uruchomionych procesów służy polecenie ps. Polecenia tego może używać każdy użytkownik, jednak wyświetlane będą tylko te procesy, których jest właścicielem. Najważniejszą spośród wyświetlanych informacji to:

  • PID – identyfikator procesu
  • TTY – identyfikator konsoli, z której proces został uruchomiony
  • TIME – czas procesora wykorzystany do tej pory
  • CMD – polecenie, którym uruchomiono proces

Listę procesów można wyświetlać za pomocą komendy: ps -A lub jeżeli chcemy wyświetlić procesy wg tego jak obciążają system możemy użyć polecenia top.

Zarządzanie procesami w systemie Linux

Linux jest systemem bardzo stabilnym, lecz również i w tym systemie zachodzi możliwość zawieszania procesu. Czasami zachodzi konieczność usunięcia procesu działającego. Zwykły użytkownik może usuwać tylko te procesy, których jest właścicielem. Administrator może usuwać wszystkie procesy. Do usuwania procesów służy polecenie kill. Polecenie to musi otrzymać jako argument identyfikator PID procesu. Usuwa ono proces w sposób bezpieczny (zamyka otwarte pliki, zwalnia obszary pamięci). Jeżeli procesu w ten sposób usunąć nie można to możemy wymusić jego zakończenie dodając opcję -9 do polecenia. Np. kill -9 2463.

Powyżej uruchomiłem proces o nazwie su, który jest logowaniem się jako administrator, następnie poleceniem ps wyświetliłem listę moich procesów, następnie poleceniem kill unicestwiłem proces su i zostałem automatycznie wylogowany jako administrator i przełączony na poprzedniego użytkownika.

UWAGA
Usuwanie procesów jest zabiegiem niebezpiecznym. Usunięcie ważnego procesu może spowodować unieruchomienie całego systemu.

Wielodostępność

Linux jest systemem wielodostępnym. Oznacza to, że wielu użytkowników może jednocześnie z niego korzystać.

Każdy użytkownik ma przydzielone zasoby:

  • pamięć
  • czas procesora
  • miejsce na dysku

Do jego zasobów nie nikt dostępu chyba, ze sam je udostępni. Wyjątkiem jest administrator. Użytkownik jest niezależny i odizolowany od innych. Aby zalogować się do systemu możemy skorzystać z klawiatury podłączonej do komputera, lub sieci komputerowej. Po zalogowaniu się uzyskujemy dostęp do konsoli. W linuxie zdefiniowanych jest wiele konsoli tekstowych, na których mogą logować się różni użytkownicy.

KONSOLA – LOGOWANIE
[Ctrl] + [Alt] + [Fn] np. [Ctrl] + [Alt] + [Fn] – aby zalogować się do pierwszej konsoli.
[Ctrl] + [Alt] + [F7] – powrót do środowiska graficznego.

KONTO

whoami – sprawdza z jakiego konta aktualnie korzystamy.
who – kto aktualnie jest zalogowany w systemie.

WIADOMOŚCI PRZESYŁANE POMIĘDZY UŻYTKOWNIKAMI

write – polecenie służy do wysyłania wiadomości do innego użytkownika.
wall – polecenie służy do przesyłania wiadomości do wszystkich zalogowanych użytkowników.

KONSOLA TOMKA PODCZAS WYSYŁANIA
[tomek@localhost ~]$ write wojtek
Witam. Jestem Tomek. Pozdrawiam.
KONSOLA WOJTKA PODCZAS ODCZYTU
[wojtek@localhost ~]$
message from tomek@localhost on pts/3 at 19:21 …
Witam. Jestem Tomek. Pozdrawiam.
EOF

Zarządzanie pamięcią

Czym jest pamięć wirtualna? Linux obsługuje pamięć wirtualną – wykorzystuje cześć dysku jako rozszerzenie fizycznej pamięci. Jądro zapisuje zawartość nieużywanych bloków pamięci fizycznej na dysku, umożliwiając tym samym wykorzystanie ich do innych celów. Jeżeli oryginalna zawartość jest potrzebna następuje proces odwrotny. Wszystko to odbywa się niewidocznie dla użytkownika; działające programy również nie dostrzegają róznicy. Oczywiście operacje dyskowe są znacznie wolniejsze (tysiące razy) niż
analogiczne działania na fizycznej pamięci, programy zwalniają. Część dysku twardego wykorzystywana jako pamięć wirtualna nosi nazwę obszaru wymiany – SWAP.

Linux potrafi wykorzystywać zwykły plik na systemie plików, lub oddzielną partycję jako obszar wymiany. Partycja wymiany jest szybsza, jednak trudniej zmienić jej rozmiar, niż w wypadku pliku. Możesz w celach testowych stworzyć plik wymiany, a gdy już będziesz pewien co do potrzebnego rozmiaru stworzyć osobną partycję.

Pytania:

  1. Co umożliwia mu równoczesne wykorzystywanie więcej niż jednego procesu?
  2. Jak nazywa się program, który  zapewniona nam Wielozadaniowość?
  3. Na czym polega wywłaszczenie?
  4. Jakim poleceniem możemy wyświetlić listę procesów?
  5. Kto może usunąć dowolny  proces dowolnego użytkownika?
  6. Co to jest PID?
  7. Jakie zasoby ma przydzielone każdy użytkownik w SO?
  8. Pamięć, któta wykorzystuje cześć dysku jako rozszerzenie fizycznej pamięci nazywamy?
  9. Co to jest SWAP?

Źródło:  Linux – wielozadaniowość, wielodostępność,  zarządzanie pamięcią.