Пример готовой курсовой работы по предмету: Программирование
Содержание
Анализ технического задания
1.1 Постановка задачи
В данной курсовой работе требуется разработать программу, моделирующую планировщика заданий на основе алгоритмов с относительными приоритетами . Программа должна:
• Добавлять новые задания в очередь заданий с указанным приоритетом и объемом работы, что на задание возлагается,
• Реализовать возможность смены приоритетов запущенных заданий в процессе выполнения,
• Моделирование досрочного окончания работы задания и переход его в состояние ожидания.
На вход программы должны подаваться задания, имеющие имя, приоритет и объем работы, что надо выполнить. На выходе должен демонстрироваться процесс выполнения заданий и переход состояния выполнений с одного заданий к другому.
1.2 Описание алгоритма с относительными приоритетами
Существует две разновидности приоритетных алгоритмов: алгоритмы, использующие относительные приоритеты, и алгоритмы, использующие абсолютные приоритеты.
В обоих случаях выбор процесса на выполнение из очереди готовых осуществляется одинаково: выбирается процесс, имеющий наивысший приоритет. Однако проблема определения момента смены активного процесса решается по-разному. В системах с относительными приоритетами активный процесс выполняется до тех пор, пока он сам не освободит процессор, т.е.:
• процесс покидает систему, поскольку завершился или произошла ошибка,
• процесс переходит в состояние ОЖИДАНИЕ (т.е. отсутствует переход в состояние готовность после исчерпания времени работы).
Для организации алгоритмов, основанных на приоритетах, необходимо решить следующие задачи:
• определение заданий с максимальным приоритетом;
• определение момента пересчета приоритета.
Пересчет максимального приоритета может происходить:
• при появлении нового задания в системе;
• при наступлении любого события, т.е. при обработке прерываний, а также через определенные интервалы времени.
Существует два основных типа процедур планирования процессов:
• вытесняющие;
• невытесняющие.
Соответствующие способы планирования называются вытесняющей многозадачностью и невытесняющей многозадачностью.
Невытесняющая многозадачность это способ планирования процессов, при котором активный процесс выполняется до тех пор, пока он сам, по собственной инициативе, не отдаст управление планировщику операционной системы для того, чтобы тот выбрал из очереди другой, готовый к выполнению процесс.
Вытесняющая многозадачность это такой способ, при котором решение о переключении процессора с выполнения одного процесса на выполнение другого процесса принимается планировщиком операционной системы, а не исполняющейся задачей.
Наличие или отсутствие вытесняемости процессов в системе определяет степень централизации алгоритмов планирования.
При невытесняющей многозадачности механизм планирования разделен между системами и прикладными программами, т.е. имеет место децентрализованный способ управления планированием. Прикладная программа, загруженная на выполнение, получив управление от операционной системы, сама определяет момент завершения очередной итерации, а значит и момент передачи управления операционной системе, с помощью какого-либо системного вызова. В задачу операционной системы входит только формирование очереди задач и выбор следующей задачи на выполнение. Такой механизм планирования создает проблемы, как для пользователей, так и для разработчиков.
Для пользователей это означает, что управление системой теряется на произвольный период времени. Если приложение тратит слишком много времени на выполнение какой-либо работы, например, на форматирование диска, пользователь не может переключиться с этой задачи на другую задачу, например, на текстовый редактор, в то время как форматирование продолжалось бы в фоновом режиме. Поэтому разработчики приложений для невытесняющей операционной среды, возлагая на себя функции планировщика, должны создавать приложения так, чтобы они выполняли свои задачи небольшими частями. Например, программа форматирования может отформатировать одну дорожку дискеты и вернуть управление системе. После выполнения других задач система возвратит управление программе форматирования, чтобы та отформатировала следующую дорожку
В системах с вытесняющей многозадачностью такие ситуации, как правило, исключены, так как центральный планирующий механизм снимет зависшую задачу с выполнения, т.е. в системах с вытесняющей многозадачностью механизм планирования целиком сосредоточен в операционной системе.
Однако распределение функций планировщика между системой и приложениями (т.е. децентрализованный механизм планирования) не всегда является недостатком, а при определенных условиях может быть и преимуществом, потому что дает возможность разработчику приложений самому проектировать алгоритм планирования, наиболее подходящий для данного фиксированного набора задач. Так как разработчик сам определяет в программе момент времени передачи управления, то при этом исключаются нерациональные прерывания программ в "неудобные" для них моменты времени. Кроме того, легко разрешаются проблемы совместного использования данных: задача во время каждой итерации использует их монопольно и уверена, что на протяжении этого периода никто другой не изменит эти данные. Существенным преимуществом невытесняющих систем является более высокая скорость переключения с задачи на задачу.
Примером эффективного использования невытесняющей многозадачности является файл-сервер NetWare, в котором, в значительной степени благодаря этому, достигнута высокая скорость выполнения файловых операций. Менее удачным оказалось использование невытесняющей многозадачности в операционной среде Windows 3.х.
Однако почти во всех современных операционных системах, ориентированных на высокопроизводительное выполнение приложений (UNIX, Windows NT, OS/2, VAX/VMS), реализована вытесняющая многозадачность.
Система планирования с относительными приоритетами является невытесняющей. Процесс не может быть вытеснен другими заданиями. Очередь готовых процессов одна. Процесс всегда ставится в конец очереди. На исполнение из очереди выбирается процесс с наибольшим приоритетом. Смена выполняющегося задания происходит в следующих случаях:
• процесс завершен или произошла ошибка;
• процесс перешел в состояние ожидания.
Схема дисциплины обслуживания с относительными приоритетами и граф состояний процесса в системе с дисциплиной обслуживания с относительными приоритетами представлены на рис 1.1
Рис.1.1. а) Схема дисциплины обслуживания с относительными приоритетами;
б) Граф состояний процесса в системе с дисциплиной обслуживания с относительными приоритетами
. Достоинства:
• учитывается приоритетность задач
Недостатки:
• вероятность бесконечного откладывания обслуживания
• потеря контроля над системой (контроль теряется в тот момент, когда управление передается процессу)
1.3 Обзор решения поставленных задач
Таким образом, в данной курсовой работе необходимо:
1. Разработать графический интерфейс для программы.
2. Реализовать планирование выполнения заданий, что стоят в очереди, по алгоритму с относительными приоритетами, в том числе, предусмотреть способ передачи управления от одного задания к другому после выполнения работы до конца, после досрочного завершения, а также после прерывания и перехода в состояние ожидания.
3. Обеспечить для пользователя возможность добавлять новые задания с указанием их приоритета, объема возлагаемой на них работы, отменять уже добавленные задания, моделируя таким образом их досрочное завершение, прерывать запущенные задания, переводя их в режим ожидания, изменять ранее заданные параметры заданий, следить за ходом выполнения, задавать темп выполнения.
Выдержка из текста
Тема планирования процессов представляет интерес с позиций повышения эффективности обработки информации. В последние годы, с развитием субмикронных технологий, стало возможным создание компактных многоядерных систем, что сделало это направление основным в эволюции компьютерных технологий. Вместе с тем, повышение сложности организации работы вычислительных комплексов, как на аппаратном, так и на программном уровне, требует реализации многозадачности, под которой понимают возможность выполнять несколько действий одновременно. Это свойство присуще многим биологическим и техническим системам, например, человеку, любому животному, современному компьютеру.
Планирование процессов включает в себя решение следующих задач:
• определение момента времени для смены выполняемого процесса;
• выбор процесса на выполнение из очереди готовых процессов;
• переключение контекстов "старого" и "нового" процессов.
Первые две задачи решаются программными средствами, а последняя в значительной степени аппаратно.
Целью данной курсовой работы является создание программной модели планировщика заданий на основе алгоритмов с относительными приоритетами. Для создания приложения был выбран язык программирования Delphi и среда разработки Borland Delphi
7. Приложение должно позволять пользователю запускать задания, добавляя их в очередь заданий, иметь возможность изменять параметры заданий, а также снимать задания с выполнения и прерывать их выполнение
Список использованной литературы
1. http://www.exponenta.ru/educat/systemat/gutorov
2. http://education.aspu.ru/view.php?olif=gl 4
3. http://habrahabr.ru/post/154609/
4. http://www.delphi-manual.ru/timer.php
5. http://delphiworld.narod.ru/base/floatspinedit.html