Наверх Системное программирование
Предыдущий раздел Оглавление Следующий раздел

ЛАБОРАТОРНАЯ РАБОТА № 7

Разработка имитатора планировщика процессов ОС

Цель работы: разработать имитатор планировщика процессов ОС

Методические указания к выполнению лабораторной работы

Необходимо на любом доступном языке программирования написать программу – эмулятор планировщика процессов операционной системы. Программа должна содержать следующие элементы интерфейса пользователя:

– окно с программами (имитация exe-файлов)

– окно с процессами (имитация процессов, должно отражать системный контекст процесса)

– окно с ресурсами вычислительной системы (имитация устройств компьютера)

– кнопку timer, при нажатии происходит имитация прерывания таймера.

В программе должна быть предусмотрена возможность "создания" процессов и задание необходимых им ресурсов, которые должны распределяться и планироваться в зависимости от выбранного механизма планирования.

Далее необходимо в соответствии со своим вариантом реализовать механизм планирования процессов.

Далее необходимо разработать набор тестов демонстрирующих пре-имущества и недостатки вашего алгоритма планирования. Например, для алгоритма приоритетного планирования со статическими приоритетами должна тестироваться ситуация, когда процесс с низким приоритетом долгое время не может перейти в состояние «исполнение».

1) FCFS (FIFO)

2) RR

3) SJF

4) Гарантированное планирование

5) Приоритетное планирование со статическими приоритетами

6) Приоритетное планирование с динамическими приоритетами

7) MQ (Многоуровневые очереди)

8) MFQ (Многоуровневые очереди с обратной связью)

9) MFQ (Многоуровневые очереди с обратной связью)

В отчете должно быть представлено подробное описание выбранного механизма планирования процессов и наглядно (по результатам работы программы) отображены особенности его работы, а также приведены его достоинства и недостатки.

Ход выполнения лабораторной работы

Для данной визуализации работы ОС потребуются базовые знания JS, HTML и CSS.

Всю доступную область нужно разбить на 5 частей.

Первая часть это "Список программ", в которой располагаются все установленные программы на нашей операционной системе.

По клику на значок той или иной программы она запускается, после чего помещается в блок "Диспетчер процессов".

По клику на значок программы в блоке "Диспетчер процессов" выводится информация о данном процессе: количество процессов, количество занятой памяти, используемые модули и таблица виртуального адресного пространства процесса.

Также, когда запускается процессор, в блоке "Визуализация тактов процессора" можно наблюдать как процессор отрабатывает такты того или иного процесса по принципу FIFO, для лучшего представления работы реализована логика работы кнопки "Сделать прерывание".

Под блоком "Визуализация тактов процессора" размещен стилизованный блок, в котором процессор как бы отрабатывает ASM-код активного процесса, под этим блоком размещен блок "Диспетчер устройств ПК", для отрисовки диаграмм была задействована JS библиотека "CanvasJS", не требующая зависимости от jQuery.

Для каждого логического функционального элемента данной программы была написана своя функция, предназначение которой наглядно видно из работы. Также основное правило данной программы, что html разметка многих элементов создается динамически, в изначальном html документе только каркас страницы.

Пример визуализации ОС

Предыдущий раздел Оглавление Следующий раздел