Содержание
- 2. Вопросы, рассматриваемые на данной лекции Определение потока; Асинхронное параллельное выполнение; Семафоры; Мониторы
- 3. Определение потока Поток (thread) — логический объект, описывающий последовательность независимо выполняемых программных инструкций внутри процесса. Потоки
- 4. Определение потока Элементы процесса
- 5. Определение потока Мотивы использования потоков Архитектура системы программирования обеспечивает написание фрагментов кода, которые должны выполняться параллельно;
- 6. Асинхронное параллельное выполнение Асинхронные параллельные потоки (asynchronous concurrent threads) - потоки, которые существуют в системе одновременно
- 7. На рисунке показано взаимоисключение с использованием критических участков Асинхронное параллельное выполнение
- 8. Пример: необходимость взаимоисключения. Пусть потоки А и В счетчики, использующие общую глобальную переменную count. Рассмотрим следующую
- 9. Семафоры Двоичный семафор (binary semaphore) абстракция, используемая при реализации взаимоисключения, в которой применяются две атомарные операции
- 10. Защищенная переменная S (protected variable S) - бинарное значение S, в котором хранится состояние семафора. Опросить
- 11. Семафоры Операция P (операция ожидания) - одна из двух операций, позволяющих менять значение семафора S. Если
- 12. Семафоры Считающий семафор (counting semaphore) - семафор, в котором переменная S целочисленная и может принимать значения
- 13. Мониторы Монитор (monitor) - конструкция параллельного программирования, которая содержит как данные, так и процедуры, необходимые для
- 14. Мониторы Переменная–условие (condition–variable) - переменная, которой соответствует очередь потоков, ожидающих входа в монитор, в случае, если
- 15. Мониторы Простейший монитор на псевдокоде. Здесь getResource() – аналог операции ожидания P, а returnResource() – аналог
- 17. Скачать презентацию