Post date: Oct 2, 2010 11:40:32 AM
Операционная система управляет всеми ресурсами системы, в том числе и ресурсом центрального процессора. Этот ресурс может быть выделен исполняемым сущностям - потокам. В операционной системе в каждый момент времени может быть несколько потоков ожидающих выполнения, поэтому возникает задача выбора очередного потока на исполнение. В данной модельной задаче будем считать, что прерывание выполнения потока не допускается. Ресурс центрального процессора представляется в виде непрерывного кванта времени, который может быть выделен потоку для его исполнения. В нашей модели будем считать, что нам известно сколько времени требуется каждому потоку на выполнение. Алгоритм выбора очередного потока на исполнение будет состоять в выборе потока, который имеет максимально близкое время работы к выделенному кванту времени.
Предлагается реализовать программу, эмулирующую работу планировщика потоков операционной системы. Программе на вход подаются потоки, каждый из которых имеет характеристики: порядковый номер и время выполнения. При этом программа должна расположить данные потоки в порядке их обработки центральным процессором. На выходе программы получается последовательность, которая задаёт порядок выполнения потоков центральным процессором.
Программа должна предлагать пользователю возможность выбора метода сортировки данных. Должна уметь измерять время выполнения процедур сортировки и поиска информации. Так же для сортировки необходимо выводить число выполненных перестановок и сравнений. По окончанию выполнения сортировок необходимо предоставить пользователю возможность повторить испытание над исходным массивом с применением других типов сортировки. Пользователь должен иметь возможность сравнить эффективность сортировки разными алгоритмами.
Программа должна реализовывать диалог с пользователем посредством интерфейса, который включает возможность выбора количества потоков, способ задания времени потоков (ручной ввод, генерация случайным образом, чтение из файла), метод сортировки потоков, способ задания времени центрального процессора (ручной ввод, генерация случайным образом, чтение из файла). Интерфейс должен предлагать пользователю выбрать способ отображения статистики по выполненной задаче. Кроме того, должна осуществляться проверка на корректность введенных данных (например, в режиме меню на существование выбранного пункта меню). В случае ошибки необходимо известить об этом пользователя и предложить повторный ввод.
Технические требования:
Каждому студенту необходимо реализовать не менее 3 сортировок. Полный список рассмотренных сортировок ниже:
Лучший источник информации по сортировкам: Дональд Кнут. Искусство программирования, том 3. Сортировка и Поиск.
Ищите свою фамилию в списке (81-02, 81-12), порядковый номер - соответствует набору сортировок, которые необходимо реализовать:
По лабораторной работе необходимо предоставить отчёт (шаблон отчёта).
Сдача отчёта должна быть осуществлена не позднее, чем через неделю после сдачи программы.
На выполнение лабораторной работы отводится 4 недели.
Dead Line: 23:59 29.10.2010