OS Algorithm Simulator - это обучающее приложение, которое позволяет моделировать алгоритмы, обеспечивающие работу операционной системы (ОС).
Как вы знаете, основная задача ОС - управлять 4 ресурсами:
- ЦП.
- Память.
- Система ввода / вывода (I / O).
- Файловая система.
Каждая ОС содержит несколько алгоритмов, обеспечивающих указанные выше функции. Например:
- Алгоритм планирования ЦП выбирает, какой процесс должен занять ЦП в каждый момент времени.
- Другой алгоритм отвечает за недопущение тупиковой ситуации, когда процессы распределяют ресурсы.
- Алгоритм управления памятью делит память на части для каждого процесса, а другой алгоритм решает, какие части следует поменять местами, а какие оставить в ОЗУ. Размещение может быть непрерывным или нет. В последнем случае у нас будут более современные механизмы, такие как разбиение по страницам или сегментация. Затем алгоритм замены страниц решит, какие страницы могут оставаться в памяти, а какие - нет.
- Другой алгоритм отвечает за то, чтобы обращать внимание на все прерывания, которые оборудование может вызвать в системе ввода-вывода.
- И так далее.
Чтобы глубоко понять ОС, нужно знать, как работают эти алгоритмы и почему некоторые подходы, которые кажутся разумными, были отвергнуты известными операционными системами, такими как Windows или Linux. Цель этого приложения - предоставить объяснения о различных подходах к каждой проблеме и проиллюстрировать, как работает каждый алгоритм, с помощью моделирования. Для этой цели это приложение содержит несколько примеров, но также позволяет вам предоставлять свои собственные наборы данных и проверять, как каждый алгоритм будет работать с ними. Также важно отметить, что в большинстве случаев это приложение не содержит современных алгоритмов, а содержит упрощения, которые мы считаем лучшими для процесса обучения.
Особенности:
- Несколько алгоритмов планирования процессов с вытеснением и без прерывания:
* Первым прибыл - первым обслужен Эквивалент в русском языке: поздний гость гложет и кость
* Сначала кратчайшая работа
* Самое короткое оставшееся время сначала
* На основе приоритета (без вытеснения)
* На основе приоритета (упреждающий)
* По-круговой
- Алгоритмы тупика:
* Избежание тупиковых ситуаций (алгоритм банкира).
- Непрерывное выделение памяти * Первая посадка
* Наиболее подходящий
* Наихудший вариант
- Алгоритмы замены страниц:
* Оптимальная замена страниц
* Первым прибыл, первым обслужен
* Наименее недавно использованные
* Первым пришел - первым вышел со вторым шансом
* Не часто используется
* Старение
- Для каждого алгоритма:
* Это позволяет создавать собственные наборы данных для моделирования.
* Он включает тестовый режим для проверки вашего понимания.