Автор работы: Пользователь скрыл имя, 22 Июня 2012 в 21:01, лабораторная работа
Одной из основных подсистем мультипрограммной ОС, непосредственно влияющей на функционирование вычислительной машины, является подсистема управления процессами и потоками, которая занимается их созданием и уничтожением, поддерживает взаимодействие между ними, а также распределяет процессорное время между несколькими одновременно существующими в системе процессами и потоками.
Введение 3
Постановка задачи 4
Руководство пользователя 5
Руководство программиста 8
Описание структуры программы 8
Описание структур данных 8
Описание алгоритмов 10
Заключение 18
Литература 19
Министерство образования и науки Российской Федерации
Федеральное
государственное бюджетное образовательное
учреждение высшего профессионального
образования
Нижегородский
государственный университет
Факультет
вычислительной математики и кибернетики
Отчет
по лабораторной работе
Моделирование
работы планировщика
потоков ОС
Выполнил: студент группы 8111
___________________ Пьянников А.А.
Подпись
Научный руководитель:
___________________ Сысоев А.В.
Подпись
Нижний Новгород
2011
Содержание
Одной из основных подсистем
мультипрограммной ОС, непосредственно
влияющей на функционирование
вычислительной машины, является
подсистема управления
Подсистема управления
Когда в системе одновременно выполняется
несколько независимых задач, то возникают
дополнительные проблемы. Хотя потоки
возникают и выполняются асинхронно, у
них может возникнуть необходимость во
взаимодействии, например при обмене данными.
Согласование скоростей потоков также
очень важно для предотвращения эффекта
«гонок» (когда несколько потоков пытаются
изменить один и тот же файл), взаимных
блокировок или других коллизий, которые
возникают при совместном использовании
ресурсов. Синхронизация потоков является
одной из важных функций подсистемы управления
процессами и потоками.
Каждый раз, когда процесс
Требуется реализовать программу, эмулирующую
работу планировщика потоков операционной
системы. Программе на вход подаются характеристики
потоков: порядковый номер и время выполнения.
Необходимо расположить потоки в порядке
их обработки центральным процессором.
На выходе программы должна получиться
последовательность, которая задаёт порядок
выполнения потоков центральным процессором.
Программа должна предлагать пользователю
возможность выбора метода сортировки
данных. Должна уметь измерять время выполнения
процедуры сортировки. Для каждой сортировки
необходимо выводить число выполненных
перестановок и сравнений. По окончанию
выполнения сортировки необходимо предоставить
пользователю возможность повторить работу
с потоками с применением другого алгоритма
сортировки. Также пользователь должен
иметь возможность сравнить эффективность
сортировки разными алгоритмами.
Программа должна реализовывать диалог
с пользователем посредством интерфейса,
который включает возможность выбора
количества потоков, способ задания времени
потоков (ручной ввод, генерация случайным
образом, чтение из файла), метод сортировки
потоков, способ задания времени центрального
процессора (ручной ввод, генерация случайным
образом, чтение из файла). Интерфейс должен
давать пользователю возможность просмотреть
статистику по последней выполненной
сортировке, а также по всем имеющимся
сортировкам. Кроме того, должна осуществляться
проверка на корректность введенных данных.
В случае ошибки необходимо известить
об этом пользователя и предложить повторный
ввод.
Технические требования:
Время работы потока - число из диапазона от 1 до 40000.
Программа должна поддерживать не менее 20000 потоков.
Чтобы
начать работу, нужно запустить файл
StreamOS.exe.
Рис. 1. Вид
главного окна программы.
Описание
компонентов главного
окна программы StreamOS
При нажатии клавиши Enter в «Количество
потоков» будут сгенерировано введенное
количество потоков и вывод их в поле «Первоначальные
потоки» в формате ID и Time построчно. Диапазон
значений количества потоков – от 1 до
20000, кванта времени – от 1 до 1000.
При клике на «Случайная генерация» программа сгенерирует
введенное количество потоков и выведет их в поле «Первоначальные потоки» в
формате ID Time построчно. Значения ID и Time колеблются в диапазонах от 1
до 20000 и от 1 до 40000 соответственно.
При клике на «Ручной ввод» станут доступны для ввода поля ID и Time. Чтобы
сформировать поток, необходимо ввести сначала ID (значение от 1 до 20000), затем
нажать клавишу Enter, ввести Time (значение от 1 до 40000) и снова нажать Enter.
В результате введенные значения
будут добавлены в поле «Первоначальные
потоки».
При клике на «Чтение из файла» откроется окно для выбора файла с первоначальными потоками формата .txt. После того, как файл будет выбран, программа выведет все данные в поле «Первоначальные потоки» в соответствующем формате.
Рис. 2. Вид окна статистики.
Описание
компонентов окна статистики программы
StreamOS:
При клике на кнопку «Статистика» откроется
второе окно программы. В верхней части
окна приведена статистика по последнему
построению расписания, т.е. тип построения,
время работы, количество перестановок
и сравнений. Ниже можно выбрать любое
проведенное построение и посмотреть
его статистику. Внизу окна находится
кнопка «Сравнить эффективность типов
построения», при клике на которую в поле
«Результат сравнения» будет выведена
информация о самом эффективном и малоэффективном
типах построения из всех проведенных
на данный момент.
В программе StreamOS используются некоторые стандартные модули среды Delphi: Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls и содержится дополнительное модальное окно для вывода статистики.
В программе StreamOS использованы объекты
таких классов, как: TForm, TEdit, TLable, TButton, TMemo,
TSaveDialog, TOpenDialog, TRadioGroup; стандартные процедуры
обработки событий и собственные процедуры.
Описание процедур главного окна программы:
Информация о работе Моделирование работы планировщика потоков ОС