膯wiczenia - Procesy i W膮tki w Systemie Operacyjnym

膯wiczenie 1: Rozpoznawanie stan贸w procesu

Cel: Zrozumienie r贸偶nych stan贸w procesu w systemie operacyjnym.

Zadanie: Opisz r贸偶ne stany procesu w systemie operacyjnym i podaj przyk艂ady dla ka偶dego z nich.

Instrukcja:

Oczekiwany wynik:

膯wiczenie 2: Prze艂膮czanie kontekstu

Cel: Zrozumienie procesu prze艂膮czania kontekstu mi臋dzy procesami i w膮tkami.

Zadanie: Wyja艣nij, czym jest prze艂膮czanie kontekstu i przeprowad藕 symulacj臋 prze艂膮czania kontekstu mi臋dzy dwoma procesami.

Instrukcja:

Symulacja prze艂膮czania kontekstu:

// Proces 1 - zapisz stan
// Proces 2 - za艂aduj stan

// Zapisywanie stanu procesu 1
process1_state = saveState(process1);

// Za艂adowanie stanu procesu 2
loadState(process2);
            

膯wiczenie 3: Tworzenie i zarz膮dzanie procesami w systemie Linux

Cel: Praktyczne zapoznanie z narz臋dziami do zarz膮dzania procesami w systemie Linux.

Zadanie: Uruchom terminal w systemie Linux i wykonaj poni偶sze polecenia:

Przyk艂adowy kod:

# Wy艣wietlenie listy proces贸w
ps -aux

# Zako艅czenie procesu
kill 

# Zmiana priorytetu procesu
nice -n 10 
            

膯wiczenie 4: W膮tki w systemie operacyjnym

Cel: Zrozumienie, jak w膮tki wsp贸艂dziel膮 zasoby i jak dzia艂aj膮 w systemie operacyjnym.

Zadanie: Utw贸rz skrypt, kt贸ry symuluje dzia艂anie dw贸ch w膮tk贸w: jeden b臋dzie zlicza艂 liczby, a drugi b臋dzie wypisywa艂 tekst.

Instrukcja:

import threading

# Funkcja zliczaj膮ca liczby
def count_numbers():
    for i in range(1, 6):
        print(i)

# Funkcja wypisuj膮ca tekst
def print_text():
    for i in range(1, 6):
        print("W膮tek 2: Tekst", i)

# Tworzenie w膮tk贸w
thread1 = threading.Thread(target=count_numbers)
thread2 = threading.Thread(target=print_text)

# Uruchomienie w膮tk贸w
thread1.start()
thread2.start()

# Czekanie na zako艅czenie w膮tk贸w
thread1.join()
thread2.join()
            

膯wiczenie 5: Por贸wnanie proces贸w i w膮tk贸w

Cel: Zrozumienie r贸偶nic mi臋dzy procesami a w膮tkami.

Zadanie: Por贸wnaj procesy i w膮tki, wskazuj膮c scenariusze, w kt贸rych lepsze jest u偶ycie proces贸w, a w kt贸rych w膮tki.

Instrukcja:

# Tabela por贸wnawcza proces贸w i w膮tk贸w:

# | Kryterium               | Procesy                 | W膮tki                  |
# |-------------------------|-------------------------|------------------------|
# | Izolacja pami臋ci         | Tak                     | Nie                    |
# | Koszt prze艂膮czania       | Wysoki                  | Niski                  |
# | Komunikacja              | Mi臋dzyprocesowa         | Wsp贸lna pami臋膰         |
# | Zastosowanie             | Aplikacje izolowane     | Wielozadaniowo艣膰       |