Lekcja: Zadania systemu operacyjnego i jego warstwy
Cel lekcji
Poznanie podstawowych funkcji systemu operacyjnego oraz jego architektury warstwowej. Dowiesz się, jakie są zadania systemu operacyjnego oraz jakie warstwy wchodzą w skład jego architektury, a także jak każda z nich wpływa na działanie komputera.
1. Wprowadzenie do systemu operacyjnego
Definicja: System operacyjny (SO) to oprogramowanie, które działa jako pośrednik pomiędzy sprzętem komputera a użytkownikiem, zarządzając zasobami sprzętowymi i programowymi. Bez systemu operacyjnego użytkownik nie miałby możliwości korzystania z komputera w sposób zrozumiały i efektywny.
1.1. Główne zadania systemu operacyjnego
1. Zarządzanie procesami
Proces to jednostka wykonywalna programu. System operacyjny musi nadzorować, w jaki sposób uruchamiane są procesy oraz jakim zasobom mają dostęp. Zadania SO w tym zakresie to:
- Tworzenie, planowanie i usuwanie procesów.
- Zapewnienie odpowiedniej kolejki procesów (zarządzanie przydzielaniem czasu procesora).
- Synchronizacja procesów i rozwiązywanie problemów związanych z współbieżnością (np. blokady międzyprocesowe).
2. Zarządzanie pamięcią
Pamięć RAM jest kluczowym zasobem w systemie komputerowym, który musi być efektywnie zarządzany. SO odpowiada za:
- Alokację i dealokację pamięci dla procesów.
- Zarządzanie pamięcią wirtualną, która umożliwia symulowanie większej ilości pamięci przy użyciu dysku twardego.
- Ochronę pamięci, zapewniając, że procesy nie będą ingerować w pamięć innych procesów.
3. Zarządzanie urządzeniami wejścia/wyjścia (I/O)
System operacyjny pośredniczy w komunikacji pomiędzy procesami a urządzeniami peryferyjnymi (np. klawiaturą, myszą, drukarką). Jego zadania to:
- Sterowanie urządzeniami, czyli uruchamianie i zatrzymywanie pracy urządzeń.
- Obsługa przerwań związanych z operacjami I/O.
- Buforowanie danych, aby zminimalizować opóźnienia związane z wolniejszymi urządzeniami.
4. Zarządzanie systemem plików
System plików to struktura danych, która organizuje i przechowuje pliki na nośnikach pamięci (np. dyskach twardych). SO musi:
- Tworzyć, odczytywać, zapisywać i usuwać pliki.
- Zarządzać uprawnieniami do plików, aby zapewnić dostęp wyłącznie dla autoryzowanych użytkowników.
- Zapewniać narzędzia do organizacji plików, takie jak foldery i katalogi.
5. Ochrona i bezpieczeństwo
SO musi chronić system przed złośliwym oprogramowaniem, nieautoryzowanym dostępem oraz awariami. Ważne aspekty to:
- Zapewnienie odpowiednich mechanizmów kontroli dostępu.
- Szyfrowanie danych, aby zapobiec ich przechwyceniu.
- Regularne aktualizowanie systemu w celu usunięcia podatności na ataki.
6. Interfejs użytkownika
System operacyjny zapewnia interfejs użytkownika, który umożliwia komunikację z komputerem. Może to być:
- Graficzny interfejs użytkownika (GUI) – umożliwia korzystanie z myszy i ikon (np. Windows, macOS).
- Interfejs wiersza poleceń (CLI) – użytkownik wydaje polecenia tekstowe (np. Linux, Windows PowerShell).
2. Warstwy systemu operacyjnego
System operacyjny jest zbudowany z wielu warstw, które tworzą hierarchię odpowiedzialności za różne zadania. Struktura warstwowa zapewnia lepsze zarządzanie złożonością systemu.
2.1. Architektura warstwowa systemu operacyjnego
1. Warstwa sprzętowa
Jest to najniższa warstwa, obejmująca fizyczne komponenty komputera, takie jak procesor (CPU), pamięć, dyski twarde, karta graficzna, urządzenia wejścia/wyjścia (klawiatura, mysz, drukarka itp.). System operacyjny pośredniczy w komunikacji pomiędzy użytkownikiem a sprzętem. Do głównych zadań tej warstwy należy:
- Interpretowanie instrukcji z wyższych warstw i przekazywanie ich do odpowiednich urządzeń.
- Odbieranie danych z urządzeń i przekazywanie ich dalej do wyższych warstw.
2. Warstwa jądra (kernel)
Jądro jest sercem systemu operacyjnego i zarządza bezpośrednią komunikacją z warstwą sprzętową. Pełni kluczową rolę w zarządzaniu zasobami systemu. Główne zadania jądra to:
- Zarządzanie procesami: Przypisywanie czasu procesora procesom oraz zarządzanie wielozadaniowością.
- Zarządzanie pamięcią: Zapewnienie, że procesy otrzymują odpowiednią ilość pamięci.
- Zarządzanie urządzeniami: Komunikacja z urządzeniami peryferyjnymi za pomocą sterowników.
- Bezpieczeństwo: Ochrona zasobów systemu i nadzór nad dostępem do nich.
3. Warstwa usług systemowych
Ta warstwa oferuje interfejs pomiędzy systemem operacyjnym a aplikacjami użytkownika. Usługi systemowe, zwane również API (Application Programming Interface), dostarczają aplikacjom funkcje potrzebne do korzystania z zasobów systemu bez konieczności bezpośredniego dostępu do jądra. Przykładowe zadania tej warstwy:
- Udostępnienie interfejsu do plików i folderów.
- Zarządzanie siecią i komunikacją.
- Obsługa komunikatów między procesami.
4. Warstwa aplikacji
To najwyższa warstwa, w której działają programy użytkownika. Są to aplikacje, które wykonują konkretne zadania, takie jak edytory tekstu, przeglądarki internetowe czy programy do obsługi poczty elektronicznej. System operacyjny zapewnia aplikacjom środowisko do działania, ale aplikacje nie mają bezpośredniego dostępu do sprzętu – komunikują się z nim poprzez wyższe warstwy systemu.
3. Ciekawe ćwiczenia w CMD
Ćwiczenie 1: Sprawdzanie procesów
- Otwórz wiersz poleceń (CMD).
- Wpisz polecenie:
tasklist
To polecenie wyświetli listę aktualnie działających procesów.
- Zrób notatki o kilku procesach, które widzisz. Co sądzisz o ich funkcji?
Ćwiczenie 2: Zarządzanie pamięcią
- W CMD wpisz:
systeminfo
To polecenie wyświetli szczegółowe informacje o systemie, w tym o pamięci RAM.
- Zwróć uwagę na ilość dostępnej pamięci i porównaj ją z tym, co widziałeś w
tasklist
.
Ćwiczenie 3: Zarządzanie urządzeniami
- Wpisz:
wmic logicaldisk get name, description, freespace, size
To polecenie pokaże dostępne dyski oraz ich wolne i zajęte miejsce.
- Co sądzisz o dostępnej przestrzeni na dysku? Czy uważasz, że powinieneś coś z tym zrobić?
Ćwiczenie 4: Zatrzymywanie procesu
- Wpisz:
tasklist
i znajdź proces, który chciałbyś zakończyć (np. Notepad).
- Wpisz polecenie (używając identyfikatora procesu, np. 1234):
taskkill /PID 1234 /F
To polecenie zakończy wybrany proces.
Ćwiczenie 5: Tworzenie i usuwanie folderów
- Wpisz:
mkdir testfolder
To polecenie stworzy nowy folder o nazwie "testfolder".
- Aby usunąć folder, wpisz:
rmdir testfolder
Co się stanie, jeśli spróbujesz usunąć folder, który nie jest pusty?