Студенческий сайт КФУ - ex ТНУ » Учебный раздел » Учебные файлы »ПРОГРАММИРОВАНИЕ

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

Тип: курсовая работа
Категория: ПРОГРАММИРОВАНИЕ
Скачать
Купить
Обзор различных способов реализации много поточности в языках программирования и операционных системах, а также разработка прототипа приложения реализующего многопоточность. Создание приложения в Delphi, реализующего потоки выполнения уровня пользователя.
Краткое сожержание материала:

Размещено на

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

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

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

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

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

Группа: ПС - 504

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

Челябинск, 2012

Содержание

Введение

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

1.1 Процессы

1.2 Потоки

1.3 Многопоточность

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

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

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

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

Заключение

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

Приложение

Введение

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

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

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

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

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

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

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

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

Задачи:

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

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

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

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

1.1 Процесс

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1.2 Потоки

Поток (англ. Thread -- нить) - является наименьшей единицей обработки, исполнение которой может быть назначено операционной системой. Реализация потоков выполнения и процессов в разных операционных системах отличается друг от друга, но в большинстве случаев поток выполнения находится внутри процесса. Несколько потоков выполнения могут существовать в рамках одного и того же процесса и совместно использовать ресурсы, такие как память, тогда как процессы не разделяют этих ресурсов. В частности, потоки выполнения разделяют инструкции процесса (его код) и его контекст (значения переменных, которые они имеют в любой момент времени). На одном процессоре Многопоточность обычно происходит путём временного мультиплексирования (как и в случае многозадачности): процессор переключается между разными потоками выполнения. Это переключение контекста обычно происходит достаточно часто, чтобы пользователь воспринимал выполнение потоков или задач как одновременное. В многопроцессорных и многоядерных системах потоки или задачи могут реально выполняться одновременно, при этом каждый процессор или ядро обрабатывает отдельный поток или задачу. Многие современные операционные системы поддерживают как временные нарезки от планировщика процессов, так и многопроцессорные потоки выполнения. Ядро операционной системы позволяет программистам управлять потоками выполнения через интерфейс системных вызовов. Некоторые реализации ядра называют потоком ядра, другие же -- лёгким процессом (англ. light-weight process, LWP), представляющим собой особый тип потока выполнения ядра, который совместно использует одни и те же состояния и данные. Программы могут иметь пользовательское пространство потоков выполнения при создании потоков с помощью таймеров, сигналов или другими методами, позволяющими прервать выполнение и создать временную нарезку для конкретной ситуации (Ad hoc).

1. Отличие потоков выполнения от процессов.

Потоки выполнения отличаются от традиционных процессов многозадачной операционной системы тем, что:

· процессы, как правило, независимы, тогда как потоки выполнения существуют как составные элементы процессов

· процессы несут значительно больше информации о состоянии, тогда как несколько потоков выполнения внутри процесса совместно используют информацию о состоянии, а также память и другие вычислительные ресурсы

· процессы имеют отдельные адресные пространства, тогда как потоки выполнения совместно используют их адресное пространство

· процессы взаимодействуют только через предоставляемые системой механизмы связей между процессами

· переключение контекста между потоками выполнения в одном процессе, как правило, быстрее, чем переключение контекста между процессами.

· Такие системы, как Windows NT и OS/2, как говорят, имеют «дешёвые» потоки выполнения и «дорогие» процессы. В других операционных системах разница между потоками выполнения и процессами не так велика, за исключением расходов на переключение адресного пространства, которое подразумевает использование буфера ассоциативной трансляции.

1.3 Многопоточность

Многопоточность -- свойство платформы (например, операционной системы, виртуальной машины и т. д.) или приложения, состоящее в том, что процесс, порождённый в операционной системе, может состоять из нескольких потоков, выполняющихся «параллельно», то есть без предписанного порядка во времени. При выполнении некоторых задач такое разделение может достичь более эффективного использования ресурсов вычислительной машины. Такие потоки называют также потоками выполнения (от англ. thread of execution); иногда называют «нитями» (буквальный перевод англ. thread) или неформально «тредами». Сутью многопоточности я...

Другие файлы:

Решеточно упорядоченные группы
В книге содержится изложение современного состояния теории решеточно упорядоченных групп — интенсивно развивающейся области алгебры. Особое внимание у...

Размерность конечных упорядоченных множеств
Основные понятия размерности упорядоченных множеств. Определение размерности упорядоченного множества. Свойства размерности конечных упорядоченных мно...

Частично упорядоченные алгебраические системы
Книга профессора Будапештского университета Л. Фукса представляет собой первый в мировой литературе систематический обзор основных результатов исследо...

На спицах
Содержание:Модель №1_Шлем женский.Модель №2_Жакет для мальчика.Модель №3_Платье женское.Модель №4_Женский шарф и шапка.Модель №5_Костюм для девочки.Мо...

Моделирование макроэкономических процессов
Теоретико-методическое описание моделирования макроэкономических процессов. Модель Харрода-Домара, модель Солоу как примеры модели макроэкономической...