Java - Курсовая работа, Требуется разработать программную систему для
Мне нужна только программа, оформлять в ворде не нужно.
Задание к курсовой работе
Для модели вычислительной системы (ВС) с N-ядерным процессором и мультипрограммным режимом выполнения поступающих заданий требуется разработать программную систему для имитации процесса обслуживания заданий в вычислительных системах.
При построении модели функционирования вычислительной системы должны учитываться следующие основные моменты обслуживания заданий:
- генерация нового задания;
- постановка задания в очередь для ожидания момента освобождения процессора;
- выборка задания из очереди при освобождении процессора после обслуживания очередного задания.
Генерация задания:
Считается, что в распоряжении вычислительной системы имеется N ГБ оперативной памяти для размещения рабочей области процесса и M (3<=m<=5) ресурсов R1, R2,…, Rm, обращение к которым переводит процесс в состояние ожидания.
Генерация нового задания (процесса) может происходить:
в интерактивном режиме по запросу пользователя
автоматически системой как случайное событие
Каждый процесс характеризуется:
именем;
длиной рабочей области;
интервалом непрерывного выполнения;
причиной прекращения непрерывной работы (обращение к ресурсу или завершение работы);
приоритетом, если он требуется используемым методом планирования процессора.
Перед постановкой задания в очередь имитируется размещения рабочей области процесса в оперативной памяти. В случае невозможности размещения процесс отвергается, в противном случае ему выделяется память и процесс помещается в очередь готовых заданий.
Размещение в ОП происходит одним из трёх методов:
первого подходящего;
наиболее подходящего;
наименее подходящего;
Выборка задания из очереди готовых процессов происходит в момент, когда текущий процесс исчерпал интервал непрерывной работы и освободил CPU.
В случае обращения к ресурсу процесс помещается в очередь к нему, причем время использования ресурса генерируется случайным образом.
В случае завершения процесс удаляется из очереди готовых процессов.
Все очереди к ресурсам обслуживаются алгоритмом FCFS (в порядке поступления). Считается, что в каждый момент времени процесс может обратиться только к одному ресурсу. По окончании работы с ресурсом процесс вновь помещается в очередь готовых заданий, причем генерируется новые интервал непрерывной работы и причина ее прекращения.
Варианты заданий
n/n | Стратегия планирования | Наличие вытеснения | Способ организации очереди | Динамическое повышение приоритета | Критерий вытеснения для SJF | |||||
упорядоченный список | не упорядочен. список | список частично упорядочивается через t тактов | каждому приоритету своя очередь | |||||||
По интервалу непрерывного выполнения | По оставшемуся времени | |||||||||
метод планирования памяти | ||||||||||
1 | HPF | - | + | - | ||||||
Требования к оформлению курсовой работы
Результаты выполнения курсовой работы предоставляются на носителе, который должен содержать все исходные тексты программы, а также все остальные файлы, необходимые для компиляции и запуска выполненной работы в используемой среде программирования.
Пояснительная записка к курсовой работе должна содержать:
вариант задания;
постановку задачи;
подробное описание алгоритмов планирования процессора и памяти;
диаграмму движения процессов;
объектную модель;
описание всех модулей, содержащих исходный текст программы;
инструкцию по пользованию программой.
Требования к интерфейсу
Курсовую работу требуется выполнить в среде визуального программирования (например, Microsoft Visual Studio, IntellijIdea, Eclipse, NetBeans и т.п.).
Экранная форма интерфейса приложения должна соответствовать рекомендациям по эргономике оконных приложений.
Работа может состоять из одной или нескольких форм. В формах могут быть использованы любые компоненты по желанию студентов, необходимые для того, чтобы отразить полностью работу модели вашей системы.
Система должна работать пошагово, медленно и при необходимости увеличивать скорость. Это может быть реализовано как при помощи компонентов, так и при помощи разработанного вами объекта таймер. Действия должны происходить по нажатию кнопки в главной форме.
Обязательно должны полностью просматриваться очереди к процессору и отдельно ко всем ресурсам. Должно быть видно, какой процесс занимает в данный момент ресурс. При необходимости нужно иметь возможность показать полные сведения о любом находящемся в системе процессе. В интерактивном режиме по нажатию кнопки система имитации должна выводить информацию об условиях проведения эксперимента (интенсивность потока задания, размер очередей заданий и очередей к ресурсам, производительность процессора, число тактов имитации) и полученные в результате имитации показатели функционирования вычислительной системы, в т.ч.:
количество заданий, поступивших в вычислительную систему;
количество отказов в обслуживании заданий из-за переполнения очереди;
количество заданий, выполненных процессором;
количество заданий, выполненных ресурсами;
количество заданий, покинувших систему;
среднее количество тактов ожидания обслуживания;
количество тактов простоя процессора из-за отсутствия в очереди заданий для обслуживания;
среднее время ожидания процесса в очереди готовых процессов;
среднее время выполнения процесса;
среднее время отклика системы.
Объектное моделирование
Для построения программной модели имитации процесса обслуживания заданий в вычислительной системе необходимо построить объектную модель этой системы. Для этого необходимо продумать, какие классы будут использоваться в процессе проектирования, какие у них свойства и какие методы. Необходимо также продумать, сколько будет необходимо объектов каждого класса. Нужно учитывать, что в каждом варианте свойства и методы могут существенно меняться. Кроме того, каждый студент в праве изменять по своему усмотрению и набор классов.
Ниже приводится ориентировочный вариант объектной модели.
Классы:
1) процесс (Process)
2) ресурс (Resource) (CPU, R1, R2, R3)
3) очередь к ресурсу (QueueR) (R1, R2, R3, …)
4) очередь готовых процессов (к процессору) (QueueCPU)
5) планировщик (Scheduler)
6) тактовый генератор (Timer)
1. Процесс:
Поля:
• имя;
• идентификационный номер процесса;
• интервал работы в тактах;
• время поступления процесса в систему;
• время работы процесса на центральном процессоре;
• состояние процесса;
• приоритет.
Методы:
• конструктор (устанавливает начальное значение параметров процесса);
• визуализация (отображает данные о процессе);
• финиширование (осуществляет проверку, завершил ли процесс работу на центральном процессоре);
• увеличение времени работы на центральном процессоре.
2. Ресурс:
Поля:
• имя;
• состояние ресурса;
• "указатель" на процесс.
Методы:
• конструктор (устанавливает начальное значение для ресурса);
• визуализация (выводит в окно информацию о текущем состоянии);
• присвоение статуса ресурсу;
• загрузка процесса в центральный процессор.
3. Очередь к ресурсу:
Поля:
• указатель на "вход";
• указатель на "выход"
Методы:
• конструктор;
• деструктор;
• проверка на пустоту;
• очистка очереди;
• добавление элемента в очередь;
• удаление элемента очереди;
• визуализация очереди;
4. Очередь готовых процессов:
Поля:
• указатель на "вход";
• указатель на "выход".
Методы:
• конструктор;
• деструктор;
• проверка на пустоту;
• очистка очереди;
• добавление элемента в очередь;
• удаление элемента очереди;
• визуализация очереди;
• динамическое повышение приоритета.
5. Планировщик:
Поля:
• данные о ресурсе (CPU, Rl, R2, R3,…);
• данные об очереди (q);
• данные об очередях к ресурсам (QR1, QR2, QR3, …)
Методы:
•конструктор;
• новый такт (производит изменения в системе при увеличении такта).
6. Тактовый генератор:
Поля:
• номер такта.
Методы:
• конструктор (получение номера текущего такта);
• переход на новый такт;
• визуализация (вывод информации)
Рекомендации по программированию
Приступая к реализации объектной модели вам необходимо продумать, где будут находиться созданные классы. Хорошим стилем программирования считается размещение каждого класса в своем отдельном модуле. Это улучшает читаемость программы, уменьшая длину файлов исходных текстов. Однако, следует постоянно следить за появлением перекрёстных ссылок на используемые модули). Полезно составлять схемы взаимоподключения модулей.
Приложения 1
Актуальные фриланс-проекты в категории Java
Разработка Android-приложения плеера для сервиса онлайн-ТВ
27 000 UAH
Нужен Android-разработчик для создания нативного Android-приложения для сервиса онлайн-ТВ. Планируется две версии: для мобильных устройств: смартфоны и планшеты; для Android TV / Android STB: телевизионные приставки. Ориентировочные сроки: до 3 месяцев. Ориентировочный… Java, Разработка под Android ∙ 28 дней 18 часов назад ∙ 32 ставки |