Презентация Реализации многопоточности. (Лекция 2) онлайн

На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Реализации многопоточности. (Лекция 2) абсолютно бесплатно. Урок-презентация на эту тему содержит всего 13 слайдов. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Устройства и комплектующие » Реализации многопоточности. (Лекция 2)



Оцените!
Оцените презентацию от 1 до 5 баллов!
  • Тип файла:
    ppt / pptx (powerpoint)
  • Всего слайдов:
    13 слайдов
  • Для класса:
    1,2,3,4,5,6,7,8,9,10,11
  • Размер файла:
    55.00 kB
  • Просмотров:
    49
  • Скачиваний:
    0
  • Автор:
    неизвестен



Слайды и текст к этой презентации:

№1 слайд
Реализации многопоточности
Содержание слайда: Реализации многопоточности Программирование с использованием POSIX thread library 2006-2007 Иртегов Д.В. Учебное пособие подготовлено по заказу и при поддержке ООО «Сан Майкросистемс СПБ»

№2 слайд
Как можно реализовать
Содержание слайда: Как можно реализовать многопоточность Пользовательские нити Системные нити Гибридная реализация (MxN)

№3 слайд
Пользовательские нити
Содержание слайда: Пользовательские нити Планировщик в пользовательском адресном пространстве + Не требует переделки ядра системы + Не требует дополнительных системных ресурсов + Легко реализовать - Как быть с блокирующимися системными вызовами? - Не может использовать несколько процессоров

№4 слайд
Примеры пользовательских
Содержание слайда: Примеры пользовательских нитей Fibers (волокна) в Win32 Не могут исполнять блокирующиеся системные вызовы Поэтому очень редко используются Задачи в Minix (когда Minix работает как задача полноценной Unix-системы)

№5 слайд
Системные нити Для
Содержание слайда: Системные нити Для планирования используется системный планировщик - Нужна переделка планировщика и процедуры создания процессов - Системные процессы считаются дорогим ресурсом (занимают память ядра) + Планировщик в ядре так или иначе уже есть + Нет проблемы блокирующихся системных вызовов + Можно использовать все процессоры в системе

№6 слайд
Гибридная реализация MxN
Содержание слайда: Гибридная реализация (MxN) Требует наличия как системного, так и пользовательского планировщика Системный планировщик поддерживает M нитей на процесс. Пользовательский планировщик поддерживает N нитей (N≥M) Пользовательский планировщик распределяет пользовательские нити между системными нитями, подобно тому, как планировщик многозадачной ОС распределяет задания между процессорами

№7 слайд
Гибридный планировщик Имеет
Содержание слайда: Гибридный планировщик + Имеет все преимущества системного планировщика + По идее, пользовательская нить должна быть дешевле (для нее не обязательно создается системная нить) - Возникает лишняя сущность (пользовательский планировщик) - Во многих реальных приложениях M растет и быстро достигает N

№8 слайд
Гибридный планировщик в
Содержание слайда: Гибридный планировщик в старых версиях Solaris Системные нити называются LWP (Light Weight Process – легковесный процесс) Системные нити подчинены процессу Пользовательских нитей больше, чем системных (во всяком случае, в начале) Когда все LWP садятся в блокирующиеся системные вызовы, система посылает сигнал SIGWAITING Библиотека ловит SIGWAITING и может создать новый LWP

№9 слайд
Гибридный планировщик в
Содержание слайда: Гибридный планировщик в Solaris (продолжение) Библиотека позволяет привязывать нити к определенному LWP (bound thread) Можно управлять количеством LWP (set concurrency) В POSIX Thread Library есть API позволяющие добиться того же эффекта (thread scope) В Solaris 9 от этого отказались и перешли к системному планировщику (LWP на каждую пользовательскую нить) Старые API остались, но их вызовы ничего не делают SCO UnixWare, IBM AIX, HP HP/UX по прежнему поддерживают гибридный планировщик

№10 слайд
POSIX Threads в Linux В Linux
Содержание слайда: POSIX Threads в Linux В Linux в ядре 2.4 есть системные нити (clone(2)). Эти нити имеют собственный PID и собственную запись в таблице процессов Linux поддерживает основные функции POSIX Thread API, но есть ряд несовместимостей В Linux 2.6 была реализована т.наз. NPTL (Native POSIX Thread Library), более похожая на стандарт POSIX. Linux 2.4 и 2.6 используют системные нити (одна системная нить на каждую пользовательскую)

№11 слайд
Сборка многопоточных программ
Содержание слайда: Сборка многопоточных программ В большинстве Unix-систем сборка многопоточных программ требует подключения библиотеки libpthread.so (cc -lpthread program.c …) Также многие компиляторы рекомендуют использовать специальные ключи -mt - Sun Studio C compiler -threads или -pthread - GNU C (в зависимости от сборки) У старых компиляторов ключ -mt мог подключать другую версию libc У современных компиляторов ключ -mt отключает небезопасные оптимизации и определяет препроцессорные символы (_REENTRANT в Solaris) Ряд стандартных include-файлов содержат директивы условной компиляции, использующие _REENTRANT, и заменяют некоторые небезопасные конструкции на более приемлемые для многопоточной программы

№12 слайд
Еще о сборке Solaris В
Содержание слайда: Еще о сборке (Solaris 10) В Solaris 10 библиотека libc.so содержит реализацию POSIX Thread library, т.е. -lpthread указывать не надо libpthread.so сохранена для совместимости со старыми сборочными скриптами

№13 слайд
Еще о сборке Linux . В Linux
Содержание слайда: Еще о сборке (Linux 2.6) В Linux libstdc++.so содержит «слабые» (weak) определения символов POSIX Thread library. Поэтому программа на C++ без ключа -lphtread соберется, но работать не будет

Скачать все slide презентации Реализации многопоточности. (Лекция 2) одним архивом: