Разработка приложения с несколькими обрабатывающими файл потоками, использующими взаимоисключение на основе критической секции без блокировки частей файла - Лабораторная работа
Разработка приложения с помощью среды Microsoft Visual Studio 2010 Express. Интерфейс приложения. Разработка конечного программного продукта, демонстрирующего работу многопоточного приложения, использующего взаимоисключение на основе критической секции.
При низкой оригинальности работы "Разработка приложения с несколькими обрабатывающими файл потоками, использующими взаимоисключение на основе критической секции без блокировки частей файла", Вы можете повысить уникальность этой работы до 80-100%
Второй рабочий поток упорядочивает записи по второму полю (интенсивность зеленого цвета) в порядке возрастания при равенстве у записей первых полей. Третий рабочий поток упорядочивает записи по третьему полю (интенсивность синего цвета) в порядке возрастания при равенстве у записей первых полей и вторых полей. HTHREAD1 = CREATETHREAD (NULL, 0,&Thread1, NULL, CREATE_SUSPENDED, NULL); HTHREAD2 = CREATETHREAD (NULL, 0,&Thread2, NULL, CREATE_SUSPENDED, NULL); HTHREAD3 = CREATETHREAD (NULL, 0,&Thread3, NULL, CREATE_SUSPENDED, NULL);Процесс (задача) - программа, находящаяся в режиме выполнения. В многозадачной системе реальный процессор переключается с процесса на процесс, но для упрощения модели рассматривается набор процессов, идущих параллельно (псевдопараллельно). Каждому процессу соответствует адресное пространство и одиночный поток исполняемых команд. Это менее выгодно, чем создать квазипараллельный поток внутри этого процесса с одним адресным пространством. Пример: текстовый редактор с тремя потоками может одновременно взаимодействовать с пользователем, форматировать текст и записывать на диск резервную копию.
Вывод
Процесс (задача) - программа, находящаяся в режиме выполнения. В многозадачной системе реальный процессор переключается с процесса на процесс, но для упрощения модели рассматривается набор процессов, идущих параллельно (псевдопараллельно). Каждому процессу соответствует адресное пространство и одиночный поток исполняемых команд. В многопользовательских системах, при каждом обращении к одному и тому же сервису, приходится создавать новый процесс для обслуживания клиента. Это менее выгодно, чем создать квазипараллельный поток внутри этого процесса с одним адресным пространством. Преимущества использования потоков: · Упрощение программы в некоторых случаях, за счет использования общего адресного пространства.
· Быстрота создания потока, по сравнению с процессом, примерно в 100 раз.
· Повышение производительности самой программы, т.к. есть возможность одновременно выполнять вычисления на процессоре и операцию ввода / вывода. Пример: текстовый редактор с тремя потоками может одновременно взаимодействовать с пользователем, форматировать текст и записывать на диск резервную копию.
Во время разработки программного продукта я изучил и применил на практике использование нескольких потоков в одном приложении. Это позволило увеличить быстродействие приложения, а также разграничить пользовательский интерфейс и обработку данных.
Также я познакомился и научился применять функции WINAPI для работы с файлами. Это также позволило увеличить быстродействие и упростить программный продукт, так как доступ к файлам осуществлялся напрямую через Windows.
В итоге был разработан конечный программный продукт, наглядно демонстрирующий работу многопоточного приложения. Уверен, полученные знания можно будет применять в дальнейшем для разработки более сложных проектов.
Список литературы
1. А.В. Гордеев. Операционные системы: Учебник для вузов. 2-е изд. - СПБ.: Питер, 2007. - 416 с.: ил.
2. С.В. Назаров. Операционные среды, системы и оболочки. Основы структурной и функциональной организации: Учеб.пособие. - М.: КУДИЦ-ПРЕСС, 2007. - 504 с., илл.
3. С.В. Назаров, Л.П. Гудыно, А.А. Кириченко. Операционные системы. Практикум. Под ред. С.В. Назарова - М.: КУДИЦ-ПРЕСС, 2008. - 464 с., илл.
5. Д.В. Иртегов. Введение в операционные системы. - 2-е изд., перераб. и доп. - СПБ.: БХВ-Петербург, 2008. - 1040 с.: ил. - (Учебное пособие)
6. Х.М. Дейтел, П.Дж. Дейтел, Д.Р. Чофнес. Операционные системы. Основы и принципы: Третье издание. Пер. с англ. - М.: ООО «Бином-Пресс», 2006 г. - 1024 с.: ил.
7. Х.М. Дейтел, П.Дж. Дейтел, Д.Р. Чофнес. Операционные системы. Распределенные системы, сети, безопасность: Третье издание. Пер. с англ. - М.: ООО «Бином-Пресс», 2006 г. - 704 с.: ил.
8. Э. Таненбаум. Современные операционные системы. 2-е изд. - СПБ.: Питер, 2006. - 1038 с.: ил.
9. Д. Бэкон, Т. Харрис. Операционные системы. - СПБ.: Питер; Киев: Издательская группа BHV, 2004. - 800 с.: ил.
10. Джеффри Рихтер. Windows для профессионалов (программирование в Win32 API для WINDOWSNT 3.5 и Windows 95) /Пер. с англ. - М.: Издательский отдел «Русская редакция» ТОО «CHANNELTRADINGLTD.», 1995. - 720 с.: ил.
11. Джеффри Рихтер. Windows для профессионалов: создание эффективных Win32 приложений с учетом специфики 64-разрядной Windows /Пер. с англ. - 4-е изд. - Спб.: Питер; М.: Издательство «Русская редакция», 2008. - 722 с.: ил.
12. Ч. Петзолд. Программирование для Windows 95. Том 1: пер. с англ. - СПБ.: BHV - Санкт-Петербург, 1997. - 752 с., ил.
13. Ч. Петзолд. Программирование для Windows 95. Том 2: пер. с англ. - СПБ.: BHV - Санкт-Петербург, 1997. - 368 с., ил.
Размещено на
Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность своей работы