Модель логически упорядоченных процессов

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

ЧОУ ВПО Южно-Уральский институт управления и экономики

Кафедра Информационные технологии и системы

 

 

 

 

 

 

 

 

 

 

 

Курсовая работа

Модель логически упорядоченных процессов

 

 

Выполнил: Тройнов Евгений Александрович

Группа: ПС - 504

Проверил(а): Мухина Юлия Рамильевна.

 

 

 

 

 

 

 

Челябинск, 2012

 

Содержание

 

Введение

. Теоретическая часть

.1 Процессы

.2 Потоки

.3 Многопоточность

. Практическая часть

.1 Взаимодействие потоков

.2 Реализация потоков в Delphi

.3 Программа, реализующая пример многопоточного приложения

Заключение

Список литературы

Приложение

 

 

Введение

 

Целью курсовой работы является изучение различных способов реализации много поточности в языках программирования и операционных системах, и разработка прототипа приложения реализующего многопоточность.

Долгое время повышение производительности традиционных одноядерных процессоров в основном происходило за счет последовательного увеличения тактовой частоты (около 80% производительности процессора определяла именно тактовая частота) с одновременным увеличением количества транзисторов на одном кристалле. Однако дальнейшее повышение тактовой частоты упирается в ряд фундаментальных физических барьеров (поскольку технологический процесс почти вплотную приблизился к размерам атома: сегодня процессоры выпускаются по 45-нм технологии, а размеры атома кремния - приблизительно 0,543 нм):

во-первых, с уменьшением размеров кристалла и с повышением тактовой частоты возрастает ток утечки транзисторов. Это ведет к повышению потребляемой мощности и увеличению выброса тепла;

во-вторых, преимущества более высокой тактовой частоты частично сводятся на нет из-за задержек при обращении к памяти, так как время доступа к памяти не соответствует возрастающим тактовым частотам;

в-третьих, для некоторых приложений традиционные последовательные архитектуры становятся неэффективными с возрастанием тактовой частоты из-за так называемого фон-неймановского узкого места - ограничения производительности в результате последовательного потока вычислений. При этом возрастают резистивно-емкостные задержки передачи сигналов, что является дополнительным узким местом, связанным с повышением тактовой частоты.

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

Использование нескольких процессов фактически означает использование нескольких программ, которые выполняются независимо друг от друга. Такой подход создает большие неудобства в управлении обмена данными между этими программами. В качестве альтернативы существует другой подход - создание многопоточных программ. Обмен данными между потоками существенно упрощается. Но управление такими программами усложняется, и вся ответственность ложится на программиста.

Цель курсовой работы изучить реализацию и использование многопоточности.

Задачи:

.Изучить теоретические вопросы по проблеме использования потоков и процессов

.Рассмотреть способы реализации многопоточности в Delphi

Создать приложение в Delphi реализующее многопоточность типа N:1 (потоки выполнения уровня пользователя).

 

 

. Теоретическая часть

 

.1 Процесс

 

Процесс - выполнение пассивных инструкций компьютерной программы на процессоре ЭВМ. Стандарт ISO 9000:2000 Definitions определяет процесс как совокупность взаимосвязанных и взаимодействующих действий, преобразующих входящие данные в исходящие. Компьютерная программа сама по себе это только пассивная совокупность инструкций, в то время как процесс - это непосредственное выполнение этих инструкций. Часто процессом называют выполняющуюся программу и все её элементы: адресное пространство, глобальные переменные, регистры, стек, открытые файлы и т. д.

. Создание процесса.

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

Обычно они создаются:

При запуске ОС.

При появлении запроса на создание процесса - происходит в случае, если работающий процесс создает новый процесс.

. Завершение процесса.

Минимум 2 этапа завершения:

Процесс удаляется из всех очередей планирования, т.е. ОС больше не планирует выделение каких-либо ресурсов процессу

Сбор статистики о потреблённых процессом ресурсов с последующим удалением его из памяти

Причины завершения процесса:

Обычный выход

Выход по исключению или ошибке

Недостаточный объем памяти

Превышение лимита отведённого программе времени

Выход за пределы отведённой области памяти

Неверная команда (данные интерпретируются как команды)

Ошибка защиты

Завершение родительского процесса

Ошибка ввода/вывода

Вмешательство оператора

 

.2 Потоки

 

Поток (англ. Thread - нить) - является наименьшей единицей обработки, исп