OS Algorithm Simulator to aplikacja edukacyjna, która pozwala na symulację algorytmów, które sprawiają, że system operacyjny (OS) działa.
Jak być może wiesz, głównym celem systemu operacyjnego jest zarządzanie 4 zasobami:
- Procesor.
- Pamięć.
- System wejścia / wyjścia (I / O).
- System plików.
Każdy system operacyjny zawiera kilka algorytmów zapewniających powyższe funkcjonalności. Na przykład:
- Algorytm planowania procesora wybiera, który proces powinien zająć procesor w każdej chwili.
- Inny algorytm jest odpowiedzialny za zapobieganie zakleszczeniu, gdy procesy alokują zasoby.
- Algorytm zarządzania pamięcią dzieli pamięć na porcje dla każdego procesu, a inny decyduje, które części powinny zostać zamienione, a które powinny pozostać w pamięci RAM. Alokacja może być ciągła lub nie. W tym drugim przypadku będziemy mieli bardziej nowoczesne mechanizmy, takie jak stronicowanie czy segmentacja. Następnie algorytm zastępowania stron zadecyduje, które strony mogą pozostać w pamięci, a które nie.
- Inny algorytm jest odpowiedzialny za zwracanie uwagi na wszystkie przerwy, które sprzęt może wywołać w systemie we / wy.
- I tak dalej.
Aby dogłębnie zrozumieć system operacyjny, trzeba wiedzieć, jak działają te algorytmy i dlaczego niektóre podejścia, które wydają się rozsądne, zostały odrzucone przez dobrze znane systemy operacyjne, takie jak Windows czy Linux. Celem tej aplikacji jest wyjaśnienie różnych podejść do każdego problemu i zilustrowanie, jak działa każdy algorytm za pomocą symulacji. W tym celu ta aplikacja zawiera kilka przykładów, ale pozwala również na dostarczanie własnych zbiorów danych i sprawdzanie, jak każdy algorytm będzie na nich działał. Należy również powiedzieć, że w większości przypadków aplikacja ta nie zawiera najnowocześniejszych algorytmów, ale uproszczenia, które uważamy za lepsze dla procesu uczenia się.
Cechy:
- Kilka prewencyjnych i nie wywłaszczających algorytmów planowania procesów:
* Kto pierwszy ten lepszy
* Najpierw najkrótsza praca
* Najpierw najkrótszy pozostały czas
* Oparte na priorytetach (bez wywłaszczania)
* Oparte na priorytetach (wywłaszczanie)
* Round Robin
- Algorytmy zakleszczenia:
* Unikanie zakleszczenia (algorytm bankiera).
- Ciągła alokacja pamięci * Pierwsze dopasowanie
* Najlepsze dopasowanie
* Najgorsze dopasowanie
- Algorytmy zamiany stron:
* Optymalna wymiana strony
* First-In-First-Out
* Najdawniej używane
* First-In-First-Out z drugą szansą
* Nie często używane
* Starzenie się
- Dla każdego algorytmu:
* Umożliwia tworzenie niestandardowych zestawów danych do symulacji.
* Zawiera tryb testowy, aby sprawdzić swoje rozumienie.