Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Подготовка курсовой работы к защите 2 страница




Тема 14. Разработка многопоточного приложения, демонстрирующего распараллеливание вычислений на примере вычисления нормы вектора в Евклидовом линейном пространстве большой размерности и использующего механизм управления динамически распределяемой памятью.

Содержание задания.

Разработайте многопоточное приложение, выполняющее вычисление нормы вектора a. Каждый из p потоков вычисляет частичную сумму квадратов компонент вектора: от некоторого элемента a i до a i+k-1 (k последовательных элемента). Параметры k и p должны быть варьируемыми (предусмотреть поля ввода для них в диалоговом окне приложения). Если некоторый поток уже вычисляет сумму квадратов элементов от a i до a i+k-1, то следующий приступающий к вычислению поток выбирает для расчета последовательность элементов от a i+k до a i+2k-1. Выполнив вычисление частичной суммы квадратов компонентов вектора a, поток проверяет, нет ли последовательности элементов в количестве не более k, сумма квадратов которой еще не вычислялась. Если такая последовательность есть, то приступает к суммированию квадратов ее элементов. В противном случае приостанавливает своё выполнение. Суммирование частичных сумм выполняется путем их накопления (сложения) в глобальной переменной, первоначально инициализированной нулевым значением, самими потоками. Вычислительный поток после завершения работы отправляет (пользовательское) сообщение главному потоку. Главный поток, получив сообщения о завершении вычислений всеми потоками, извлекает квадратный корень из результата суммирования и выводит результат на экран и запускает поток, записывающий результат в конец файла-протокола. В каждом потоке должна быть задержка в выполнении вычислений (чтобы дать возможность поработать всем потокам). Синхронизацию потоков между собой для выбора суммируемой подпоследовательности компонент вектора и доступа к накапливающей сумму квадратов компонент вектора переменной организуйте через критические секции, мьютексы или события с автоматическим сбросом (в любой комбинации). Для хранения компонент вектора используйте функции семейства Win 32 API HeapXXX() для управления динамически распределяемой памятью. Разработайте необходимый пользовательский интерфейс для ввода размерности вектора N и значений его компонент, запуска расчета, задания количества вычисляющих частичные суммы потоков, задания количества суммируемых квадратов элементов одним потоком, вывода нормы вектора. Для ускорения ввода предусмотрите возможность не заполнять нулевые компоненты вектора (не заполненные компоненты вектора должны сами инициализироваться нулями). Например, для ввода вектора предусмотрите два поля ввода: номер компоненты, значение компоненты; и кнопку для команды задания компоненты вектора. Разработайте файл протокола, в который должна записываться следующая информация: размерность вектора, его компоненты, результат (норма), а также информацию о том, каким потоком (номером) и какая подпоследовательность элементов просуммирована (задать ее номером первого элемента). В пользовательском интерфейсе предусмотрите кнопку для вызова диалогового окна для выбора файла протокола.

Тема 15. Разработка приложения по поиску заданной строки во всех текстовых файлах заданного каталога с использованием функции управления файлами Win 32 API.

Содержание задания.

Создать приложение, осуществляющее поиск заданной текстовой строки в текстовых файлах стандарта ANSI (расширение txt) из заданного каталога и его подкаталогов.

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

Создайте также поле ввода для строки поиска и список с вертикальной линейкой прокрутки для выдачи результатов поиска. В этот список должны добавляться имена файлов с полным маршрутом доступа к ним и количество вхождений заданной строки.

Операции поиска должны выполняться в отдельном рабочем потоке. Синхронизацию рабочего потока с первичным потоком осуществите с помощью событий с автоматическим сбросом. Для операций с файлами использовать функции управления файлами Win 32 API.

Используя редактор Edit (или WordPad с выбором MS DOS формата файла), подготовьте несколько файлов (~10) для тестирования и демонстрации программы.

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

Содержание задания.

Создать приложение, осуществляющее поиск заданной текстовой строки в текстовых файлах стандарта ANSI (расширение txt) из заданного каталога и его подкаталогов. Создайте в приложении необходимые элементы управления по выбору текущего каталога для поиска и задания режима поиска: только текстовые файлы самого каталога или текстовые файлы каталога и всех его подкаталогов. Создайте также поле ввода для строки поиска и список с вертикальной линейкой прокрутки для выдачи результатов поиска. В этот список должны добавляться имена файлов с полным маршрутом доступа к ним и количество вхождений заданной строки. Операции поиска должны выполняться в отдельном рабочем потоке. Синхронизацию рабочего потока с первичным потоком осуществите с помощью событий с автоматическим сбросом. Для выполнения операций поиска строки в файлах использовать механизм проецирования файлов в память. Используя редактор Edit (или WordPad с выбором MS DOS формата файла), подготовьте несколько файлов (~10) для тестирования и демонстрации программы.

Тема 17. Создание набора из трех приложений, моделирующего работу автоматизированной системы продажи билетов, и иллюстрирующего решение проблемы синхронизации процессов-писателей и процессов-читателей.

Содержание задания.

Набор состоит из трех приложений: приложение базы данных билетов, приложение кассир (писатель), приложение справочная информация (читатель). Приложение базы данных билетов запускается в единственном экземпляре. Оно должно хранить набор записей о номерах рейсов с указанием текущего числа свободных мест. Для хранения этого набора записей используйте динамически распределяемую память. Должен быть предусмотрен интерфейс для ввода записи о рейсе и количестве первоначального количества свободных мест. Приложение кассир может быть запущено в нескольких экземплярах. В нем должен быть предусмотрен интерфейс для задания номера рейса, на который приобретается один билет. После удовлетворения запроса приложение закрывается. Если удовлетворить запрос нельзя должно быть выдано уведомление, что свободных мест на рейс нет. Приложение должно ожидать появления свободных мест, если только не будет закрыто принудительно, что означает снятие заявки на билет на соответствующий рейс. Приложение справочник запускается в любом числе экземпляров. Оно должно выдавать список имеющихся рейсов с текущим количеством свободных мест на каждый. Синхронизацию процессов осуществить помощью семафоров.

Тема 18. Разработка приложения по поддержке набора данных на основе файла с использованием функций Win 32 API по управлению им и взаимоисключением при чтении, изменении, добавлении и удалении записей разными экземплярами этого приложения на основе механизма блокировки части файла.

Содержание задания.

Разработать приложение по поддержке набора данных. Набор данных хранится в файле. Должны поддерживаться следующие функции: добавление записи, изменение записи, удаление записи, навигация по записям (вперед, назад, выбор записи с заданным номером). Разработайте необходимый пользовательский интерфейс по работе с набором данных (поля ввода с подписями названий полей, кнопки для выполнения команд управления, метка с отображением полного количества записей и т.д.).

Для операций с файлом использовать функции управления файлами Win 32 API. Удаляемые записи должны помечаться как удаленные, само же удаление записей с дефрагментацией файла должно производиться по отдельной команде “сжатие файла набора данных”.

Приложение должно корректно работать при запуске нескольких его копий. Для этого использовать блокирование отдельной записи при выполнении ее чтения, изменения, добавления или удаления. Процедура сжатия файла должна выполняться только, если запущен один экземпляр приложения (в противном случае приложение должно операцию не выполнять и уведомлять о невозможности ее выполнить; при выполнении этой операции должны блокироваться все записи файла).

Поля данных: Наименование товара (20 символов), Цена, Количество, Дата (поступления на склад).

Тема 19. Разработка приложения по поддержке набора данных на основе файла с использованием функций Win 32 API по управлению им и взаимоисключением при добавлении, изменении и удалении записей разными экземплярами этого приложения на основе механизма блокировки части файла.

Содержание задания.

Разработать приложение по поддержке набора данных. Набор данных хранится в файле. Должны поддерживаться следующие функции: добавление записи, изменение записи, удаление записи, навигация по записям (вперед, назад, выбор записи с заданным номером). Разработайте необходимый пользовательский интерфейс по работе с набором данных (поля ввода с подписями названий полей, кнопки для выполнения команд управления, метка с отображением полного количества записей и т.д.).

Для операций с файлом использовать функции управления файлами Win 32 API. Удаляемые записи должны помечаться как удаленные, само же удаление записей с дефрагментацией файла должно производиться по отдельной команде “сжатие файла набора данных”.

Приложение должно корректно работать при запуске нескольких его копий. Для этого использовать блокирование отдельной записи при выполнении ее изменения, добавления или удаления. Процедура сжатия файла должна выполняться только, если запущен один экземпляр приложения (в противном случае приложение должно операцию не выполнять и уведомлять о невозможности ее выполнить). Должно допускаться чтение одной и той же записи одновременно несколькими экземплярами приложений. Если одно из приложений в этот момент изменяет запись, то в других приложениях она должна тут же отобразиться (используйте по своему выбору один из механизмов оповещения об этом других экземпляров приложения, например механизм сообщений).

Поля данных: Наименование товара (20 символов), Цена, Количество, Дата (поступления на склад).

Тема 20. Разработка приложения с несколькими обрабатывающими файл потоками, использующими взаимоисключение на основе механизма блокировки части файла.

Содержание задания.

Разработать приложение с тремя рабочими потоками. Первоначально по команде главный поток заполняет файл 10000 – ми трехбайтовых записей, поля каждой из которых формируются случайным образом. Каждая запись интерпретируется как цвет в модели RGB и используется для закраски квадрата, отображаемого в области рисунка диалогового окна приложения. Область рисунка окна приложения разбивается на 100×100 квадратов. Записи файла отображаются на матрицу квадратов области рисунка построчно. После создания файла записей главный поток прорисовывает соответствующие им квадраты в области рисунка. Далее, по соответствующей команде запускаются одновременно три рабочих потока. Первый рабочий поток упорядочивает записи файла в порядке возрастания по первому полю (интенсивность красного цвета). Второй рабочий поток упорядочивает записи по второму полю (интенсивность зеленого цвета) в порядке возрастания при равенстве у записей первых полей. Третий рабочий поток упорядочивает записи по третьему полю (интенсивность синего цвета) в порядке возрастания при равенстве у записей первых полей и вторых полей. Упорядочение производится перестановкой двух соседних записей путем циклического продвижения по записям файла каждым из потоков. Перед сравнением пара соседних записей файла блокируется для обеспечения взаимоисключения потоков. После каждой перестановки пары соседних записей должна происходить перерисовка соответствующей пары квадратов в области рисунка окна приложения. Остановка работы потоков производится по соответствующей команде. Предусмотрите все необходимые элементы управления в интерфейсе приложения. Для лучшего наблюдения за работой потоков предусмотрите временные задержки в их работе. Управление величиной задержки вынесите в интерфейс приложения.

Тема 21. Разработка приложения по поддержке набора данных на основе файла с использованием функций Win 32 API по управлению им и взаимоисключением при чтении, изменении, добавлении и удалении записей разными экземплярами этого приложения на основе объекта мютекс без блокировки частей файла.

Содержание задания.

Разработать приложение по поддержке набора данных. Набор данных хранится в файле. Должны поддерживаться следующие функции: добавление записи, изменение записи, удаление записи, навигация по записям (вперед, назад, выбор записи с заданным номером). Разработайте необходимый пользовательский интерфейс по работе с набором данных (поля ввода с подписями названий полей, кнопки для выполнения команд управления, метка с отображением полного количества записей и т.д.).

Для операций с файлом использовать функции управления файлами Win 32 API. Удаляемые записи должны помечаться как удаленные, само же удаление записей с дефрагментацией файла должно производиться по отдельной команде “сжатие файла набора данных”.

Приложение должно корректно работать при запуске нескольких его копий. Для этого использовать синхронизацию процессов экземпляров приложения при выполнении чтения, изменения, добавления или удаления записи на основе объекта мютекс. Процедура сжатия файла должна выполняться только, если запущен один экземпляр приложения (в противном случае приложение должно операцию не выполнять и уведомлять о невозможности ее выполнить). Механизм блокировки файла или его части не использовать.

Поля данных: Преподаватель (30 символов), Дисциплина (20 символов), Факультет (20 символов), Группа (10 символов), Число студентов, Дата экзамена.

Тема 22. Разработка приложения по поддержке набора данных на основе файла с использованием функций Win 32 API по управлению им и взаимоисключением при изменении, добавлении и удалении записей разными экземплярами этого приложения на основе объекта мютекс без блокировки частей файла.

Содержание задания.

Разработать приложение по поддержке набора данных. Набор данных хранится в файле. Должны поддерживаться следующие функции: добавление записи, изменение записи, удаление записи, навигация по записям (вперед, назад, выбор записи с заданным номером). Разработайте необходимый пользовательский интерфейс по работе с набором данных (поля ввода с подписями названий полей, кнопки для выполнения команд управления, метка с отображением полного количества записей и т.д.).

Для операций с файлом использовать функции управления файлами Win 32 API. Удаляемые записи должны помечаться как удаленные, само же удаление записей с дефрагментацией файла должно производиться по отдельной команде “сжатие файла набора данных”.

Приложение должно корректно работать при запуске нескольких его копий. Для этого использовать синхронизацию процессов экземпляров приложения при выполнении изменения, добавления или удаления записи на основе объекта мютекс. Процедура сжатия файла должна выполняться только, если запущен один экземпляр приложения (в противном случае приложение должно операцию не выполнять и уведомлять о невозможности ее выполнить). Должно допускаться чтение одной и той же записи одновременно несколькими экземплярами приложений. Если одно из приложений в этот момент изменяет запись, то в других приложениях она должна тут же отобразиться (используйте по своему выбору один из механизмов оповещения об этом других экземпляров приложения, например механизм сообщений).

Поля данных: Преподаватель (30 символов), Дисциплина (20 символов), Факультет (20 символов), Группа (10 символов), Число студентов, Дата экзамена.

Тема 23. Разработка приложения с несколькими обрабатывающими файл потоками, использующими взаимоисключение на основе объекта мютекс без блокировки частей файла.

Содержание задания.

Разработать приложение с тремя рабочими потоками. Первоначально по команде главный поток заполняет файл 10000 – ми трехбайтовых записей, поля каждой из которых формируются случайным образом. Каждая запись интерпретируется как цвет в модели RGB и используется для закраски квадрата, отображаемого в области рисунка диалогового окна приложения. Область рисунка окна приложения разбивается на 100×100 квадратов. Записи файла отображаются на матрицу квадратов области рисунка построчно. После создания файла записей главный поток прорисовывает соответствующие им квадраты в области рисунка. Далее, по соответствующей команде запускаются одновременно три рабочих потока. Первый рабочий поток упорядочивает записи файла в порядке возрастания по первому полю (интенсивность красного цвета). Второй рабочий поток упорядочивает записи по второму полю (интенсивность зеленого цвета) в порядке возрастания при равенстве у записей первых полей. Третий рабочий поток упорядочивает записи по третьему полю (интенсивность синего цвета) в порядке возрастания при равенстве у записей первых полей и вторых полей. Упорядочение производится перестановкой двух соседних записей путем циклического продвижения по записям файла каждым из потоков. Для обеспечения взаимоисключения потоков при сравнении и перестановке соседних записей использовать объект мьютекс. Блокировку файла и его частей не использовать. После каждой перестановки пары соседних записей должна происходить перерисовка соответствующей пары квадратов в области рисунка окна приложения. Остановка работы потоков производится по соответствующей команде. Предусмотрите все необходимые элементы управления в интерфейсе приложения. Для лучшего наблюдения за работой потоков предусмотрите временные задержки в их работе. Управление величиной задержки вынесите в интерфейс приложения.

Тема 24. Разработка приложения по поддержке набора данных на основе файла с использованием функций Win 32 API по управлению им и взаимоисключением при чтении, изменении, добавлении и удалении записей разными экземплярами этого приложения на основе объекта событие с автоматическим сбросом без блокировки частей файла.

Содержание задания.

Разработать приложение по поддержке набора данных. Набор данных хранится в файле. Должны поддерживаться следующие функции: добавление записи, изменение записи, удаление записи, навигация по записям (вперед, назад, выбор записи с заданным номером). Разработайте необходимый пользовательский интерфейс по работе с набором данных (поля ввода с подписями названий полей, кнопки для выполнения команд управления, метка с отображением полного количества записей и т.д.).

Для операций с файлом использовать функции управления файлами Win 32 API. Удаляемые записи должны помечаться как удаленные, само же удаление записей с дефрагментацией файла должно производиться по отдельной команде “сжатие файла набора данных”.

Приложение должно корректно работать при запуске нескольких его копий. Для этого использовать синхронизацию процессов экземпляров приложения при выполнении чтения, изменения, добавления или удаления записи на основе объекта событие с автоматическим сбросом. Процедура сжатия файла должна выполняться только, если запущен один экземпляр приложения (в противном случае приложение должно операцию не выполнять и уведомлять о невозможности ее выполнить). Механизм блокировки файла или его части не использовать.

Поля данных: Студент (20 символов), Факультет (10 символов), Курс, Группа (8 символов), Дата рождения, Дата поступления.

Тема 25. Разработка приложения по поддержке набора данных на основе файла с использованием функций Win 32 API по управлению им и взаимоисключением при изменении, добавлении и удалении записей разными экземплярами этого приложения на основе объекта событие с автоматическим сбросом без блокировки частей файла.

Содержание задания.

Разработать приложение по поддержке набора данных. Набор данных хранится в файле. Должны поддерживаться следующие функции: добавление записи, изменение записи, удаление записи, навигация по записям (вперед, назад, выбор записи с заданным номером). Разработайте необходимый пользовательский интерфейс по работе с набором данных (поля ввода с подписями названий полей, кнопки для выполнения команд управления, метка с отображением полного количества записей и т.д.).

Для операций с файлом использовать функции управления файлами Win 32 API. Удаляемые записи должны помечаться как удаленные, само же удаление записей с дефрагментацией файла должно производиться по отдельной команде “сжатие файла набора данных”.

Приложение должно корректно работать при запуске нескольких его копий. Для этого использовать синхронизацию процессов экземпляров приложения при выполнении изменения, добавления или удаления записи на основе объекта событие с автоматическим сбросом. Процедура сжатия файла должна выполняться только, если запущен один экземпляр приложения (в противном случае приложение должно операцию не выполнять и уведомлять о невозможности ее выполнить). Должно допускаться чтение одной и той же записи одновременно несколькими экземплярами приложений. Если одно из приложений в этот момент изменяет запись, то в других приложениях она должна тут же отобразиться (используйте по своему выбору один из механизмов оповещения об этом других экземпляров приложения, например механизм сообщений).

Поля данных: Студент (20 символов), Факультет (10 символов), Курс, Группа (8 символов), Дата рождения, Дата поступления.

Тема 26. Разработка приложения с несколькими обрабатывающими файл потоками, использующими взаимоисключение на основе объекта событие с автоматическим сбросом без блокировки частей файла.

Содержание задания.

Разработать приложение с тремя рабочими потоками. Первоначально по команде главный поток заполняет файл 10000 – ми трехбайтовых записей, поля каждой из которых формируются случайным образом. Каждая запись интерпретируется как цвет в модели RGB и используется для закраски квадрата, отображаемого в области рисунка диалогового окна приложения. Область рисунка окна приложения разбивается на 100×100 квадратов. Записи файла отображаются на матрицу квадратов области рисунка построчно. После создания файла записей главный поток прорисовывает соответствующие им квадраты в области рисунка. Далее, по соответствующей команде запускаются одновременно три рабочих потока. Первый рабочий поток упорядочивает записи файла в порядке возрастания по первому полю (интенсивность красного цвета). Второй рабочий поток упорядочивает записи по второму полю (интенсивность зеленого цвета) в порядке возрастания при равенстве у записей первых полей. Третий рабочий поток упорядочивает записи по третьему полю (интенсивность синего цвета) в порядке возрастания при равенстве у записей первых полей и вторых полей. Упорядочение производится перестановкой двух соседних записей путем циклического продвижения по записям файла каждым из потоков. Для обеспечения взаимоисключения потоков при сравнении и перестановке соседних записей использовать объект событие с автоматическим сбросом. Блокировку файла и его частей не использовать. После каждой перестановки пары соседних записей должна происходить перерисовка соответствующей пары квадратов в области рисунка окна приложения. Остановка работы потоков производится по соответствующей команде. Предусмотрите все необходимые элементы управления в интерфейсе приложения. Для лучшего наблюдения за работой потоков предусмотрите временные задержки в их работе. Управление величиной задержки вынесите в интерфейс приложения.

Тема 27. Разработка приложения с несколькими обрабатывающими файл потоками, использующими взаимоисключение на основе критической секции без блокировки частей файла.

Содержание задания.

Разработать приложение с тремя рабочими потоками. Первоначально по команде главный поток заполняет файл 10000 – ми трехбайтовых записей, поля каждой из которых формируются случайным образом. Каждая запись интерпретируется как цвет в модели RGB и используется для закраски квадрата, отображаемого в области рисунка диалогового окна приложения. Область рисунка окна приложения разбивается на 100×100 квадратов. Записи файла отображаются на матрицу квадратов области рисунка построчно. После создания файла записей главный поток прорисовывает соответствующие им квадраты в области рисунка. Далее, по соответствующей команде запускаются одновременно три рабочих потока. Первый рабочий поток упорядочивает записи файла в порядке возрастания по первому полю (интенсивность красного цвета). Второй рабочий поток упорядочивает записи по второму полю (интенсивность зеленого цвета) в порядке возрастания при равенстве у записей первых полей. Третий рабочий поток упорядочивает записи по третьему полю (интенсивность синего цвета) в порядке возрастания при равенстве у записей первых полей и вторых полей. Упорядочение производится перестановкой двух соседних записей путем циклического продвижения по записям файла каждым из потоков. Для обеспечения взаимоисключения потоков при сравнении и перестановке соседних записей использовать критическую секцию. Блокировку файла и его частей не использовать. После каждой перестановки пары соседних записей должна происходить перерисовка соответствующей пары квадратов в области рисунка окна приложения. Остановка работы потоков производится по соответствующей команде. Предусмотрите все необходимые элементы управления в интерфейсе приложения. Для лучшего наблюдения за работой потоков предусмотрите временные задержки в их работе. Управление величиной задержки вынесите в интерфейс приложения.

Тема 28. Разработка приложения, моделирующего возникновение взаимоблокировок и восстановление после них.

Содержание задания.

Разработайте приложение, моделирующее обнаружение взаимоблокировок в системе, включающей набор из нескольких типов ресурсов в количестве n каждого типа и m потоков. Заставьте каждый поток сгенерировать необходимый ему набор ресурсов (например, три ресурса типа A, один ресурс типа B и пять ресурсов типа C). Затем каждый раз запрашивайте из конкретного набора ресурс одного определенного типа в произвольном порядке с паузами разной длительности. Сделайте так, чтобы каждый поток удерживал полученные ресурсы, пока не будут удовлетворены все его дополнительные запросы. С этого момента должны начать возникать взаимоблокировки. Запустите другой поток, который бы проверял наличие взаимоблокировок каждые несколько секунд. В случае возникновения тупиковой ситуации он должен будет сообщить об этом и начать уничтожение потоков, вовлеченных во взаимоблокировку. Испытайте различные эвристические подходы к выбору жертвы среди потоков и проанализируйте, при использовании какого метода среднее время между возникновением взаимоблокировок является наименьшим. Реализуйте в приложении также аналитический метод обнаружения взаимоблокировок. Разработайте необходимый пользовательский интерфейс приложения.

Тема 29. Разработка приложений, моделирующих работу дискового накопителя.

Содержание задания.

Разработайте приложение, моделирующее работу дискового накопителя с двумя пластинами (т.е. четырьмя поверхностями), четырьмя головками чтения/записи, 25 цилиндрами и 20 секторами на каждой дорожке. Накопитель должен помнить текущую позицию головок чтения/записи и выполнять операции чтения, записи и позиционирования. Эти операции должны возвращать время в миллисекундах, необходимое для выполнения запроса (для примера можно задать время перемещения между дорожками 2 мс, среднее время позиционирования 10 мс и вращательную задержку 5 мс). После этого напишите приложение, генерирующее равномерно распределенные запросы с указанием пластины, цилиндра, сектора и количества запрашиваемых секторов. Эти запросы должны отправляться диспетчеру дисковых операций (первое приложение), который будет упорядочивать их и посылать накопителю (первое приложение) для выполнения. Накопитель должен выполнять операции чтения, записи и позиционирования. Используйте возвращаемые накопителем величины, чтобы определить пропускную способность каждого алгоритма, время его реагирования и разброс этого времени. Рабочие операции обоих приложений должны выполняться в отдельных рабочих потоках.




Поделиться с друзьями:


Дата добавления: 2015-08-31; Просмотров: 326; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.038 сек.