Библиотека Рефераты Курсовые Дипломы Поиск
Библиотека Рефераты Курсовые Дипломы Поиск
сделать стартовой добавить в избранное
Кефирный гриб на сайте za4eti.ru

Компьютеры, Программирование Компьютеры, Программирование     Программирование, Базы данных Программирование, Базы данных

Теория многозадачности и многопоточности

Чашка "Неваляшка".
Ваши дети во время приёма пищи вечно проливают что-то на ковёр и пол, пачкают руки, а Вы потом тратите уйму времени на выведение пятен с
222 руб
Раздел: Тарелки
Ручка "Шприц", желтая.
Необычная ручка в виде шприца. Состоит из пластикового корпуса с нанесением мерной шкалы. Внутри находится жидкость желтого цвета,
31 руб
Раздел: Оригинальные ручки
Ночник-проектор "Звездное небо, планеты", черный.
Оригинальный светильник-ночник-проектор. Корпус поворачивается от руки. Источник света: 1) Лампочка (от карманных фанариков); 2) Три
350 руб
Раздел: Ночники

Введение К моменту появления персональных компьютеров в мире существовало несколько технических решений позволяющих реализовать многозадачность на больших машинах. В бывшем СССР это были машины серии ЕС и болгарские ИЗОТ. Они теоретически позволяли подключать до 255 терминалов, где каждому терминалу выделялось некоторое количество ресурсов компьютера и процессорного времени. На практике нормальная работа такого комплекса обеспечивалась при наличии не более 25-30 терминалов, или меньше при сложных задачах. Для персональных ЭВМ многозадачность не вводилась принципиально. Ведь исходя из названия PC – “Perso al Compu er” предполагалось, что работать будет один человек с одной текущей задачей. В качестве операционной системы была принята переработанная система CP/M под названием MS-DOS. Она так же не предусматривала многозадачности. Основная проблема разработки многозадачной операционной системы это не реентерабильность ее функций. То есть если один процесс запустил функцию чтения файла, то другой процесс не сможет не только обращаться к файлам, но и вообще вызвать другие ее функции. Для этого необходима поддержка на уровне процессора которая была введена с разработкой линейки 286. Введение1 Многозадачность и многопоточность3 Режимы многозадачности4 Многозадачность в DOS4 Невытесняющая многозадачность5 Prese a io Ma ager и последовательная очередь сообщений8 Решения, использующие многопоточность9 Многопоточная архитектура10 Коллизии, возникающие при использовании потоков11 Преимущества Wi dows13 Новая усовершенствованная многопоточная программа14 О использовании функции Sleep15 Критический раздел16 Объект Mu ex19 Уведомления о событиях20 Локальная память потока20 Реализация многопоточности в Delphi23 Список используемой литературы25 Многозадачность и многопоточность Многозадачность (mul i aski g) – это способность операционной системы выполнять несколько программ одновременно. В основе этого принципа лежит использование операционной системой аппаратного таймера для выделения отрезков времени ( ime slices) для каждого из одновременно выполняемых процессов. Если эти отрезки времени достаточно малы, и машина не перегружена слишком большим числом программ, то пользователю кажется, что все эти программы выполняются параллельно. Идея многозадачности не нова. Многозадачность реализуется на больших компьютерах типа мэйнфрэйм (mai frame), к которым подключены десятки, а иногда и сотни, терминалов. У каждого пользователя, сидящего за экраном такого терминала, создается впечатление, что он имеет эксклюзивный доступ ко всей машине. Кроме того, операционные системы мэйнфрэймов часто дают возможность пользователям перевести задачу в фоновый режим, где они выполняются в то время, как пользователь может работать с другой программой. Для того, чтобы многозадачность стала реальностью на персональных компьютерах, потребовалось достаточно много времени. Но, кажется, сейчас мы приближаемся к эпохе использования многозадачности на ПК (PC). Как мы увидим вскоре, некоторые расширенные 16-разрядные версии Wi dows поддерживают многозадачность, а имеющиеся теперь в нашем распоряжении Wi dows и Wi dows 95 – 32-разрядные версии Wi dows, поддерживают кроме многозадачности еще и многопоточность (mul i hreadi g).

Многопоточность – это возможность программы самой быть многозадачной. Программа может быть разделена на отдельные потоки выполнения ( hreads), которые, как кажется, выполняются параллельно. На первый взгляд эта концепция может показаться едва ли полезной, но оказывается, что программы могут использовать многопоточность для выполнения протяженных во времени операций в фоновом режиме, не вынуждая пользователя надолго отрываться от машины. Режимы многозадачности На заре использования персональных компьютеров некоторые отстаивали идею многозадачности для будущего, но многие ломали головы над вопросом: какая польза от многозадачности на однопользовательской машине? В действительности оказалось, что многозадачность – это именно то, что необходимо пользователям, даже не подозревавшим об этом. Многозадачность в DOS Микропроцессор I el 8088, использовавшийся в первых ПК, не был специально разработан для реализации многозадачности. Частично проблема (как было показано в предыдущей главе) заключалась в недостатках управления памятью. В то время, как множество программ начинает и заканчивает свое выполнение, многозадачная операционная система должна осуществлять перемещение блоков памяти для объединения свободного пространства. На процессоре 8088 это было невозможно реализовать в стиле, прозрачном для приложений. Сама DOS не могла здесь чем-либо существенно помочь. Будучи разработанной таким образом, чтобы быть маленькой и не мешать приложениям, DOS поддерживала, кроме загрузки программ и обеспечения им доступа к файловой системе, еще не так много средств. Тем не менее, творческие программисты, работавшие с DOS на заре ее появления, нашли путь преодоления этих препятствий, преимущественно при использовании резидентных ( ermi a e-a d-s ay-reside , SR) программ. Некоторые SR-программы, такие как спулер печати, использовали прерывание аппаратного таймера для выполнения процесса в фоновом режиме. Другие, подобно всплывающим (popup) утилитам, таким как SideKick, могли выполнять одну из задач переключения – приостановку выполнения приложения на время работы утилиты. DOS также была усовершенствована для обеспечения поддержки резидентных программ. Некоторые производители программного обеспечения пытались создать многозадачные оболочки или оболочки, использующие переключение между задачами, как надстройки над DOS (например, Quar erdeck's DeskView), но только одна из этих оболочек получила широкое распространение на рынке. Это, конечно. Wi dows. Невытесняющая многозадачность Когда Microsof выпустила на рынок Wi dows 1.0 в 1985 году, это было еще в большой степени искусственным решением, придуманным для преодоления ограничений MS DOS. В то время Wi dows работала в реальном режиме (real mode), но даже тогда она была способна перемещать блоки физической памяти (одно из необходимых условий многозадачности) и делала это, хотя и не очень прозрачно для приложений, но все-таки вполне удовлетворительно. В графической оконной среде многозадачность приобретает гораздо больший смысл, чем в однопользовательской операционной системе, использующей командную строку.

Например, в классической операционной системе U IX, работающей с командной строкой, существует возможность запускать программы из командной строки так, чтобы они выполнялись в фоновом режиме. Однако, любой вывод на экран из программы должен быть переадресован в файл, иначе этот вывод смешается с текущим содержимым экрана. Оконная оболочка позволяет нескольким программам выполняться совместно, разделяя один экран. Переключение вперед и назад становится тривиальным, существует возможность быстро передавать данные из одной программы в другую, например, разместить картинку, созданную в программе рисования, в текстовом файле, образованном с помощью текстового процессора. Передача данных поддерживалась в различных версиях Wi dows: сначала с использованием папки обмена (clipboard), позднее – посредством механизма динамического обмена данными (Dy amic Da a Excha ge, DDE), сейчас – через внедрение и связывание объектов (Objec Li ki g a d Embeddi g, OLE). И все же, реализованная в ранних версиях Wi dows многозадачность не была традиционной вытесняющей, основанной на выделении отрезков времени, как в многопользовательских операционных системах. Такие операционные системы используют системный таймер для периодического прерывания выполнения одной задачи и запуска другой. 16-разрядные версии Wi dows поддерживали так называемую невытесняющую многозадачность ( o -preemp ive mul i aski g). Такой тип многозадачности был возможен благодаря основанной на сообщениях архитектуре Wi dows. В общем случае, Wi dows-программа находилась в памяти и не выполнялась до тех пор, пока не получала сообщение. Эти сообщения часто являлись прямым или косвенным результатом ввода информации пользователем с клавиатуры или мыши. После обработки сообщения программа возвращала управление обратно Wi dows. 16-разрядные версии Wi dows не имели возможности произвольно переключать управление с одной Wi dows-программы на другую, основываясь на квантах времени таймера. Переключение между задачами происходило в момент, когда программа завершала обработку сообщения и возвращала управление Wi dows. Такую невытесняющую многозадачность называют также кооперативной многозадачностью (coopera ive mul i aski g) потому, что она требует некоторого согласования между приложениями. Одна Wi dows-программа могла парализовать работу всей системы, если ей требовалось много времени для обработки сообщения. Хотя невытесняющая многозадачность была основным типом многозадачности в 16-разрядных версиях Wi dows, некоторые элементы вытесняющей (примитивной, preemp ive) многозадачности в них тоже присутствовали. Wi dows использовала вытесняющую многозадачность для выполнения DOS-программ, а также позволяла библиотекам динамической компоновки (DLL) получать прерывания аппаратного таймера для задач мультимедиа. 16-разрядные версии Wi dows имели некоторые особенности, которые помогали программистам если не разрешить, то, по крайней мере, справиться с ограничениями, связанными с невытесняющей многозадачностью. Наиболее известной является отображение курсора мыши в виде песочных часов. Конечно, это не решение проблемы, а только лишь возможность дать знать пользователю, что программа занята выполнением протяженной во времени работы, и что система какое-то время будет недоступна.

Например, методы объектно-ориентированного программирования используются для решения проблем «гонки» данных и синхронизации их обработки. При многозадачном и многопоточном управлении мы считаем наиболее перспективной агентно-ориентированную архитектуру. А для минимизации затрат на обеспечение связей между объектами мы привлекаем методологию «классной доски» (стратегия решения сложных системных задач с использованием разнородных источников знаний, взаимодействующих через общее информационное поле). Помимо объектно-ориентированного, агентно-ориентированного и AI-ориентированного (AI сокр. от artificial intelligence искусственный интеллект) программирования, мы используем параметризованное (настраиваемое) программирование для реализации обобщенных алгоритмов, которые применяются именно там, где нужен параллелизм. Опыт разработки программного обеспечения всевозможных форм и объемов позволил нам убедиться в том, что для успешного проектирования программных средств и эффективной их реализации без разносторонности (универсальности) применяемых средств уже не обойтись

1. Роль микроэлементов в обменных процессах растений и на накоплении ими биологически активных веществ (Реферат (обзор литературы) () WinWord 97)

2. Экономическая сказка-реферат "НДС - вражья морда" или просто "Сказка про НДС"

3. Несколько рефератов по культурологии

4. Реферат по научной монографии А.Н. Троицкого «Александр I и Наполеон» Москва, «Высшая школа»1994 г.

5. Реферат по технологии приготовления пищи "Венгерская кухня"

6. Несколько рефератов по Исламу
7. "Камю", "Сартр", "Шопенгауэр", "Ясперс", "Фромм" (Рефераты, доклады по философии)
8. Реферат по информационным системам управления

9. Семь чудес света - древний мир, средние века и наше время (история цивилизации, реферат)

10. реферат

11. Обзорный реферат по творчеству Ф.И. Тютчева

12. Реферат - Социальная медицина (ЗДРАВООХРАНЕНИЕ КАК СОЦИАЛЬНАЯ СИСТЕМА ЧЕЛОВЕЧЕСКОГО ОБЩЕСТВА)

13. Реферат - Физиология (строение и функции гемоглобина)

14. Реферат по менеджменту

15. Реферат монографии А.А. Смирнова Проблемы психологии памяти

16. Сборник рефератов о конфликтах

Велосипед трехколесный Moby Kids "Comfort. EVA", цвет: красный.
Детский трёхколёсный велосипед Moby Kids "Comfort 10х8 EVA". В данной модели предусмотрены дополнительные функции и аксессуары,
4216 руб
Раздел: Трехколесные
Дневник школьный "Наушники".
Формат: А5 (215x170 мм). Количество листов: 48. Внутренний блок: тонированный офсет 70 г/м2. Материал обложки: искусственная кожа. Способ
370 руб
Раздел: Для младших классов
Шторка антимоскитная "Завитки" с магнитными замками (серая).
Размеры: 100х220 см. Препятствует проникновению насекомых. Не нарушает естественную циркуляцию воздуха. Подходит для любых типов дверных
424 руб
Раздел: Сетки противомоскитные

17. Реферат по экскурсоведению

18. Реферат по экологии

19. Реферат о прочитаной на немецком языке литературы

20. Реферат для выпускных экзаменов

21. Реферат по ОБЖ, Тема: СПИД

22. Реферат о США
23. Реферат по делопроизводству с вопросами: Подготовка документов к архивному хранению, Правила оформления реквизитов №№16, 19, 20, 22, Контракты (договоры)
24. Перевод реферата "Acquaintance with geometry as one of the main goals of teaching mathematics to preschool children"

25. Многопоточность и работа с потоками

26. Пример базы данных на Delphi 2.0

27. Разработка базы данных `ДЕКАНАТ` в среде программирования "Delphi"

28. VB, MS Access, VC++, Delphi, Builder C++ принципы(технология), алгоритмы программирования

29. Возможности системы программирования Delphi для создания пользовательского интерфейса

30. Разработка тестового приложения "Компоненты меню Delphi"

31. Учебник для продвинутых по Delphi 7

32. Визуальное программирование в Delphi

Настольная игра "Падающая башня с фантами. Бам-бум".
Настольная игра. Башня типа «Дженга» с заданиями на каждом третьем брусочке Отличия. Падающая башня стала еще более азартной и
529 руб
Раздел: Игры на ловкость
Настольная игра "Русское лото".
В набор входит: карточки, бочонки, жетоны, мешок и инструкция. Материал бочонков: древопласт.
363 руб
Раздел: Лото
Настольно-печатная игра "Пир горой!".
Мыши так разыгрались около холодильника, что тот упал и открылся. Значит, будет пир! Даже самые маленькие игроки легко справятся с простой
348 руб
Раздел: Классические игры

33. Разработка DLL в Borland Delphi

34. Создание Web-приложений в среде Delphi

35. Delphi: работа с MS WORD

36. Увеличение области экрана с помощью Delphi

37. Обзор Палитры Delphi

38. Управление проектом Delphi
39. Программирование. Delphi
40. Программирование с помощью Delphi

41. Создание теста в Delphi

42. Проектування та розробка засобами Delphi 5 програмного забезпечення “Автоматизоване робоче місце менеджера

43. Delphi или Visual C++ - вот в чем вопрос

44. OpenGL и Delphi на практике

45. IT-практикум: DELPHI и AutoCAD

46. Основы программирования OpenGL в Borland С++Builder и Delphi. Простейшие объекты

47. Изучение работы с файлами на языке Delphi

48. Основы программирования в среде Delphi 7.0

Набор для приготовления роллов "Мидори".
С набором "Мидори" Вы сможете приготовить роллы различной формы в домашних условиях. В комплект входят специальные
562 руб
Раздел: Принадлежности для суши
Настольная игра "Барабашка (Geistestesblitz)".
У вас в руках оказались фотокарточки, сделанные каким-то странным фотоаппаратом: фотографируя всего пять предметов, он постоянно путает их
1071 руб
Раздел: Внимание, память, логика
Бумага туалетная "Classic (Вейро)", 24 рулона, 17 метров x 9.5 см.
В комплекте: 24 рулона. Длина рулона: 17 метров. Ширина рулона: 9,5 см. С перфорацией. В одном рулоне: 136 листов.
396 руб
Раздел: Бумага туалетная

49. Программирование в Delphi

50. Программирование на Delphi с алгоритмами и кодами

51. Разработка программы на языке Borland Object Pascal (Ide Borland Delphi)

52. Робота з "потоками" в середовищі Delphi

53. Середовище програмування DELPHI 2.0

54. Создание программы на языке Delphi
55. Создание средств наглядности с использованием программной среды Delphi и Microsoft Movie Maker
56. Створення таблиць за допомогою SQL-запитів в середовищі DELPHI

57. Языка программирования Delphi. Разработка практических заданий

58. Разработка базы данных для информатизации деятельности предприятия малого бизнеса Delphi 7.0


Поиск Рефератов на сайте za4eti.ru Вы студент, и у Вас нет времени на выполнение письменных работ (рефератов, курсовых и дипломов)? Мы сможем Вам в этом помочь. Возможно, Вам подойдет что-то из ПЕРЕЧНЯ ПРЕДМЕТОВ И ДИСЦИПЛИН, ПО КОТОРЫМ ВЫПОЛНЯЮТСЯ РЕФЕРАТЫ, КУРСОВЫЕ И ДИПЛОМНЫЕ РАБОТЫ. 
Вы можете поискать нужную Вам работу в КОЛЛЕКЦИИ ГОТОВЫХ РЕФЕРАТОВ, КУРСОВЫХ И ДИПЛОМНЫХ РАБОТ, выполненных преподавателями московских ВУЗов за период более чем 10-летней работы. Эти работы Вы можете бесплатно СКАЧАТЬ.