🗊Презентация Процессы и потоки. Тема 2

Нажмите для полного просмотра!
Процессы и потоки. Тема 2, слайд №1Процессы и потоки. Тема 2, слайд №2Процессы и потоки. Тема 2, слайд №3Процессы и потоки. Тема 2, слайд №4Процессы и потоки. Тема 2, слайд №5Процессы и потоки. Тема 2, слайд №6Процессы и потоки. Тема 2, слайд №7Процессы и потоки. Тема 2, слайд №8Процессы и потоки. Тема 2, слайд №9Процессы и потоки. Тема 2, слайд №10Процессы и потоки. Тема 2, слайд №11Процессы и потоки. Тема 2, слайд №12Процессы и потоки. Тема 2, слайд №13Процессы и потоки. Тема 2, слайд №14Процессы и потоки. Тема 2, слайд №15Процессы и потоки. Тема 2, слайд №16Процессы и потоки. Тема 2, слайд №17Процессы и потоки. Тема 2, слайд №18Процессы и потоки. Тема 2, слайд №19Процессы и потоки. Тема 2, слайд №20Процессы и потоки. Тема 2, слайд №21Процессы и потоки. Тема 2, слайд №22Процессы и потоки. Тема 2, слайд №23Процессы и потоки. Тема 2, слайд №24Процессы и потоки. Тема 2, слайд №25Процессы и потоки. Тема 2, слайд №26Процессы и потоки. Тема 2, слайд №27Процессы и потоки. Тема 2, слайд №28Процессы и потоки. Тема 2, слайд №29Процессы и потоки. Тема 2, слайд №30Процессы и потоки. Тема 2, слайд №31Процессы и потоки. Тема 2, слайд №32Процессы и потоки. Тема 2, слайд №33Процессы и потоки. Тема 2, слайд №34Процессы и потоки. Тема 2, слайд №35Процессы и потоки. Тема 2, слайд №36Процессы и потоки. Тема 2, слайд №37Процессы и потоки. Тема 2, слайд №38Процессы и потоки. Тема 2, слайд №39Процессы и потоки. Тема 2, слайд №40Процессы и потоки. Тема 2, слайд №41Процессы и потоки. Тема 2, слайд №42Процессы и потоки. Тема 2, слайд №43Процессы и потоки. Тема 2, слайд №44Процессы и потоки. Тема 2, слайд №45Процессы и потоки. Тема 2, слайд №46Процессы и потоки. Тема 2, слайд №47Процессы и потоки. Тема 2, слайд №48Процессы и потоки. Тема 2, слайд №49Процессы и потоки. Тема 2, слайд №50Процессы и потоки. Тема 2, слайд №51Процессы и потоки. Тема 2, слайд №52Процессы и потоки. Тема 2, слайд №53Процессы и потоки. Тема 2, слайд №54Процессы и потоки. Тема 2, слайд №55Процессы и потоки. Тема 2, слайд №56Процессы и потоки. Тема 2, слайд №57Процессы и потоки. Тема 2, слайд №58Процессы и потоки. Тема 2, слайд №59Процессы и потоки. Тема 2, слайд №60Процессы и потоки. Тема 2, слайд №61Процессы и потоки. Тема 2, слайд №62Процессы и потоки. Тема 2, слайд №63Процессы и потоки. Тема 2, слайд №64Процессы и потоки. Тема 2, слайд №65Процессы и потоки. Тема 2, слайд №66Процессы и потоки. Тема 2, слайд №67Процессы и потоки. Тема 2, слайд №68Процессы и потоки. Тема 2, слайд №69Процессы и потоки. Тема 2, слайд №70Процессы и потоки. Тема 2, слайд №71Процессы и потоки. Тема 2, слайд №72Процессы и потоки. Тема 2, слайд №73Процессы и потоки. Тема 2, слайд №74Процессы и потоки. Тема 2, слайд №75Процессы и потоки. Тема 2, слайд №76Процессы и потоки. Тема 2, слайд №77Процессы и потоки. Тема 2, слайд №78

Содержание

Вы можете ознакомиться и скачать презентацию на тему Процессы и потоки. Тема 2. Доклад-сообщение содержит 78 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

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


Слайд 1





Процессы и потоки	 
Тема 2
Описание слайда:
Процессы и потоки Тема 2

Слайд 2


Процессы и потоки. Тема 2, слайд №2
Описание слайда:

Слайд 3





Управление процессами
Процесс (process) -  это программа при ее исполнении.  Для процесса требуется ряд ресурсов, включая время процессора, память, файлы, устройства ввода-вывода, сетевые устройства и др.
Обычно при создании процесса для него создается новое пространство виртуальной памяти 
ОС отвечает за следующие действия, связанные с  управлением процессами:
Создание и удаление процессов.
Приостановка и возобновление процессов.
Обеспечение механизмов для:
Синхронизации процессов (семафоры, мониторы и др.)
Взаимодействия процессов (условные переменные, события и др.)
Описание слайда:
Управление процессами Процесс (process) - это программа при ее исполнении. Для процесса требуется ряд ресурсов, включая время процессора, память, файлы, устройства ввода-вывода, сетевые устройства и др. Обычно при создании процесса для него создается новое пространство виртуальной памяти ОС отвечает за следующие действия, связанные с управлением процессами: Создание и удаление процессов. Приостановка и возобновление процессов. Обеспечение механизмов для: Синхронизации процессов (семафоры, мониторы и др.) Взаимодействия процессов (условные переменные, события и др.)

Слайд 4





Понятие процесса
ОС исполняет множество классов программ:
Пакетная система (batch system) – задания (jobs)
Система с разделением времени – пользовательские программы (задачи – tasks)
Во многих  учебниках термины “задание” и “процесс” – почти синонимы
Процесс – программа при ее выполнении; он должен выполняться последовательно
Процесс включает:
Счетчик команд (program counter) 
Стек (stack)
Секцию данных (data section)
Описание слайда:
Понятие процесса ОС исполняет множество классов программ: Пакетная система (batch system) – задания (jobs) Система с разделением времени – пользовательские программы (задачи – tasks) Во многих учебниках термины “задание” и “процесс” – почти синонимы Процесс – программа при ее выполнении; он должен выполняться последовательно Процесс включает: Счетчик команд (program counter) Стек (stack) Секцию данных (data section)

Слайд 5


Процессы и потоки. Тема 2, слайд №5
Описание слайда:

Слайд 6





Однопоточные и многопоточные процессы
Описание слайда:
Однопоточные и многопоточные процессы

Слайд 7


Процессы и потоки. Тема 2, слайд №7
Описание слайда:

Слайд 8





Дескриптор процесса содержит:
Описание слайда:
Дескриптор процесса содержит:

Слайд 9


Процессы и потоки. Тема 2, слайд №9
Описание слайда:

Слайд 10


Процессы и потоки. Тема 2, слайд №10
Описание слайда:

Слайд 11





Информация по состоянию и управлению процессом
Описание слайда:
Информация по состоянию и управлению процессом

Слайд 12





КОНТЕКСТ ПРОЦЕССА
Описание слайда:
КОНТЕКСТ ПРОЦЕССА

Слайд 13





Переключение контекста процесса (context switch)
Когда процессор переключается на другой процесс, система должна сохранить состояние старого процесса и  загрузить сохраненное состояние для нового процесса
Переключение контекста относится к накладным расходам (overhead); система не выполняет никаких полезных действий при переключении с одного процесса на другой
Время зависит от аппаратной поддержки.
Описание слайда:
Переключение контекста процесса (context switch) Когда процессор переключается на другой процесс, система должна сохранить состояние старого процесса и загрузить сохраненное состояние для нового процесса Переключение контекста относится к накладным расходам (overhead); система не выполняет никаких полезных действий при переключении с одного процесса на другой Время зависит от аппаратной поддержки.

Слайд 14





Простейшая модель процесса
Описание слайда:
Простейшая модель процесса

Слайд 15





Потоки и их модели
Описание слайда:
Потоки и их модели

Слайд 16





Типичный граф состояния потока
Описание слайда:
Типичный граф состояния потока

Слайд 17





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

Слайд 18





Переход от выполнения одного потока к другому осуществляется в результате планирования и диспетчеризации. Планирование потоков включает в себя решение двух задач:
Переход от выполнения одного потока к другому осуществляется в результате планирования и диспетчеризации. Планирование потоков включает в себя решение двух задач:
определение момента времени для смены текущего активного потока;
выбор для выполнения потока из очереди готовых потоков.
Диспетчеризация сводится к следующему:
сохранение контекста текущего потока, который требуется сменить;
загрузка контекста нового потока, выбранного в результате планирования;
запуск нового потока на выполнение.
Описание слайда:
Переход от выполнения одного потока к другому осуществляется в результате планирования и диспетчеризации. Планирование потоков включает в себя решение двух задач: Переход от выполнения одного потока к другому осуществляется в результате планирования и диспетчеризации. Планирование потоков включает в себя решение двух задач: определение момента времени для смены текущего активного потока; выбор для выполнения потока из очереди готовых потоков. Диспетчеризация сводится к следующему: сохранение контекста текущего потока, который требуется сменить; загрузка контекста нового потока, выбранного в результате планирования; запуск нового потока на выполнение.

Слайд 19





Алгоритмы планирования потоков
Описание слайда:
Алгоритмы планирования потоков

Слайд 20





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

Слайд 21





Критерии диспетчеризации
Использование процессора – поддержание его в режиме занятости, насколько это возможно
Пропускная способность (throughput) – число процессов, завершающих свое выполнение за единицу времени
Время обработки (turnaround time) – время, необходимое для исполнения какого-либо процесса
Время ожидания  (waiting time)– время, которое процесс ждет в очереди процессов, готовых к выполнению
Время ответа (response time) – время, требуемое от момента первого запроса до первого ответа (для среды разделения времени)
Описание слайда:
Критерии диспетчеризации Использование процессора – поддержание его в режиме занятости, насколько это возможно Пропускная способность (throughput) – число процессов, завершающих свое выполнение за единицу времени Время обработки (turnaround time) – время, необходимое для исполнения какого-либо процесса Время ожидания (waiting time)– время, которое процесс ждет в очереди процессов, готовых к выполнению Время ответа (response time) – время, требуемое от момента первого запроса до первого ответа (для среды разделения времени)

Слайд 22





Алгоритмы планирования, основанные на квантовании

Каждому потоку поочередно для выполнения предоставляется ограниченный непрерывный период процессорного времени  квант.
 Смена активного потока происходит, если:
поток завершился и покинул систему;
произошла ошибка;
поток перешел в состояние ожидания;
исчерпан квант процессорного времени, отведенный данному потоку.
Описание слайда:
Алгоритмы планирования, основанные на квантовании Каждому потоку поочередно для выполнения предоставляется ограниченный непрерывный период процессорного времени  квант. Смена активного потока происходит, если: поток завершился и покинул систему; произошла ошибка; поток перешел в состояние ожидания; исчерпан квант процессорного времени, отведенный данному потоку.

Слайд 23





Поток, который исчерпал свой квант, переводится в состояние готовности и ожидает, когда ему будет предоставлен новый квант процессорного времени, а на выполнение в соответствии с определенным правилом выбирается новый поток из очереди готовых. 
Поток, который исчерпал свой квант, переводится в состояние готовности и ожидает, когда ему будет предоставлен новый квант процессорного времени, а на выполнение в соответствии с определенным правилом выбирается новый поток из очереди готовых. 
Кванты, выделяемые потокам, могут быть одинаковыми для всех потоков или различными.
Описание слайда:
Поток, который исчерпал свой квант, переводится в состояние готовности и ожидает, когда ему будет предоставлен новый квант процессорного времени, а на выполнение в соответствии с определенным правилом выбирается новый поток из очереди готовых. Поток, который исчерпал свой квант, переводится в состояние готовности и ожидает, когда ему будет предоставлен новый квант процессорного времени, а на выполнение в соответствии с определенным правилом выбирается новый поток из очереди готовых. Кванты, выделяемые потокам, могут быть одинаковыми для всех потоков или различными.

Слайд 24





Стратегия Round Robin (RR) – “круговая система”
Каждый процесс получает небольшой квант процессорного времени, обычно – 10-100 миллисекунд.  После того, как это время закончено, процесс прерывается и помещается в конец очереди готовых процессов.
Если всего n процессов в очереди готовых к выполнению, и квант времени - q, то каждый процесс получает 1/n процессорного времени порциями самое большее по q единиц за один раз.  Ни один процесс не ждет больше, чем (n-1)q единиц времени.
Производительность 
q велико  FIFO
q мало  q должно быть большим, по сравнению со временем контекстного переключения, иначе слишком велики накладные расходы
Описание слайда:
Стратегия Round Robin (RR) – “круговая система” Каждый процесс получает небольшой квант процессорного времени, обычно – 10-100 миллисекунд. После того, как это время закончено, процесс прерывается и помещается в конец очереди готовых процессов. Если всего n процессов в очереди готовых к выполнению, и квант времени - q, то каждый процесс получает 1/n процессорного времени порциями самое большее по q единиц за один раз. Ни один процесс не ждет больше, чем (n-1)q единиц времени. Производительность q велико  FIFO q мало  q должно быть большим, по сравнению со временем контекстного переключения, иначе слишком велики накладные расходы

Слайд 25





Алгоритмы планирования, основанные на приоритетах 
Приоритет  это число, характеризующее степень привилегированности потока при использовании ресурсов вычислительной машины, в частности, процессорного времени: чем выше приоритет, тем выше привилегии, тем меньше времени будет проводить поток в очередях.
Описание слайда:
Алгоритмы планирования, основанные на приоритетах Приоритет  это число, характеризующее степень привилегированности потока при использовании ресурсов вычислительной машины, в частности, процессорного времени: чем выше приоритет, тем выше привилегии, тем меньше времени будет проводить поток в очередях.

Слайд 26






Во многих ОС предусматривается возможность изменения приоритетов в течение жизни потока. 
В этом случае приоритеты называются динамическими в отличие от неизменяемых, фиксированных, приоритетов.
Описание слайда:
Во многих ОС предусматривается возможность изменения приоритетов в течение жизни потока. В этом случае приоритеты называются динамическими в отличие от неизменяемых, фиксированных, приоритетов.

Слайд 27


Процессы и потоки. Тема 2, слайд №27
Описание слайда:

Слайд 28


Процессы и потоки. Тема 2, слайд №28
Описание слайда:

Слайд 29





Механизм прерываний
Прерывание ­ принудительная передача управления от выполняемой программы к системе, происходящая при возникновении определенного события.
Описание слайда:
Механизм прерываний Прерывание ­ принудительная передача управления от выполняемой программы к системе, происходящая при возникновении определенного события.

Слайд 30





Схема обработки прерываний
Описание слайда:
Схема обработки прерываний

Слайд 31





Обозначения;
! ­ Прерывание (сигнал – установление факта прерывания)
1 ­  Идентификация прерывания 
2 ­ Отключение всех других прерываний
3 ­ Смена контекста_1 (сохранение состояния прерванного процесса из системных регистров, загрузка в системные регистры контекста соответствующего обработчика прерываний)
4 ­ Обработка прерывания, включающая определение программы Q, которую следует запустить;
5 ­ Смена контекста_2 (загрузка в системные регистры контекста определенной на предыдущем шаге программы Q)
6 ­ Установка прежнего режима системы прерываний.
Описание слайда:
Обозначения; ! ­ Прерывание (сигнал – установление факта прерывания) 1 ­ Идентификация прерывания 2 ­ Отключение всех других прерываний 3 ­ Смена контекста_1 (сохранение состояния прерванного процесса из системных регистров, загрузка в системные регистры контекста соответствующего обработчика прерываний) 4 ­ Обработка прерывания, включающая определение программы Q, которую следует запустить; 5 ­ Смена контекста_2 (загрузка в системные регистры контекста определенной на предыдущем шаге программы Q) 6 ­ Установка прежнего режима системы прерываний.

Слайд 32





Назначение и типы прерываний

В зависимости от источника прерывания делятся на три больших класса:
внешние; 
внутренние; 
программные.
Внешние прерывания могут возникать в результате действий пользователя или оператора за терминалом, или же в результате поступления сигналов от аппаратных устройств — сигналов завершения операций ввода-вывода, вырабатываемых контроллерами внешних устройств компьютера . Внешние прерывания называют также аппаратными.
Данный класс прерываний является асинхронным по отношению к потоку инструкций прерываемой программы.
Описание слайда:
Назначение и типы прерываний В зависимости от источника прерывания делятся на три больших класса: внешние; внутренние; программные. Внешние прерывания могут возникать в результате действий пользователя или оператора за терминалом, или же в результате поступления сигналов от аппаратных устройств — сигналов завершения операций ввода-вывода, вырабатываемых контроллерами внешних устройств компьютера . Внешние прерывания называют также аппаратными. Данный класс прерываний является асинхронным по отношению к потоку инструкций прерываемой программы.

Слайд 33






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

Слайд 34





Программные прерывания отличаются от предыдущих двух классов тем, что они по своей сути не являются «истинными» прерываниями. Программное прерывание возникает при выполнении особой команды процессора, .выполнение которой имитирует прерывание, то есть переход на новую последовательность инструкций. 
Программные прерывания отличаются от предыдущих двух классов тем, что они по своей сути не являются «истинными» прерываниями. Программное прерывание возникает при выполнении особой команды процессора, .выполнение которой имитирует прерывание, то есть переход на новую последовательность инструкций.
Описание слайда:
Программные прерывания отличаются от предыдущих двух классов тем, что они по своей сути не являются «истинными» прерываниями. Программное прерывание возникает при выполнении особой команды процессора, .выполнение которой имитирует прерывание, то есть переход на новую последовательность инструкций. Программные прерывания отличаются от предыдущих двух классов тем, что они по своей сути не являются «истинными» прерываниями. Программное прерывание возникает при выполнении особой команды процессора, .выполнение которой имитирует прерывание, то есть переход на новую последовательность инструкций.

Слайд 35





Прерываниям приписывается приоритет, с помощью которого они ранжируются по степени важности и срочности. О прерываниях, имеющих одинаковое значение приоритета, говорят, что они относятся к одному уровню приоритета прерываний.
Прерываниям приписывается приоритет, с помощью которого они ранжируются по степени важности и срочности. О прерываниях, имеющих одинаковое значение приоритета, говорят, что они относятся к одному уровню приоритета прерываний.
Описание слайда:
Прерываниям приписывается приоритет, с помощью которого они ранжируются по степени важности и срочности. О прерываниях, имеющих одинаковое значение приоритета, говорят, что они относятся к одному уровню приоритета прерываний. Прерываниям приписывается приоритет, с помощью которого они ранжируются по степени важности и срочности. О прерываниях, имеющих одинаковое значение приоритета, говорят, что они относятся к одному уровню приоритета прерываний.

Слайд 36





Процедуры, вызываемые по прерываниям, обычно называют обработчиками прерываний, или процедурами обслуживания прерываний (Interrupt Servie Routine, ISR). Аппаратные прерывания обрабатываются драйверами соответствующих внешних устройств, исключения — специальными модулями ядра, а программные прерывания — процедурами ОС, обслуживающими системные вызовы. 
Процедуры, вызываемые по прерываниям, обычно называют обработчиками прерываний, или процедурами обслуживания прерываний (Interrupt Servie Routine, ISR). Аппаратные прерывания обрабатываются драйверами соответствующих внешних устройств, исключения — специальными модулями ядра, а программные прерывания — процедурами ОС, обслуживающими системные вызовы. 
В операционной системе может находиться так называемый диспетчер прерываний, который координирует работу отдельных обработчиков прерываний.
Описание слайда:
Процедуры, вызываемые по прерываниям, обычно называют обработчиками прерываний, или процедурами обслуживания прерываний (Interrupt Servie Routine, ISR). Аппаратные прерывания обрабатываются драйверами соответствующих внешних устройств, исключения — специальными модулями ядра, а программные прерывания — процедурами ОС, обслуживающими системные вызовы. Процедуры, вызываемые по прерываниям, обычно называют обработчиками прерываний, или процедурами обслуживания прерываний (Interrupt Servie Routine, ISR). Аппаратные прерывания обрабатываются драйверами соответствующих внешних устройств, исключения — специальными модулями ядра, а программные прерывания — процедурами ОС, обслуживающими системные вызовы. В операционной системе может находиться так называемый диспетчер прерываний, который координирует работу отдельных обработчиков прерываний.

Слайд 37





Распределение прерываний по уровням приоритета
Описание слайда:
Распределение прерываний по уровням приоритета

Слайд 38





Два основных способа, с помощью которых шины выполняют прерывания: векторный (vectored) и опрашиваемый (polled). В обоих способах процессору предоставляется информация об уровне приоритета прерывания. 
Два основных способа, с помощью которых шины выполняют прерывания: векторный (vectored) и опрашиваемый (polled). В обоих способах процессору предоставляется информация об уровне приоритета прерывания. 
В случае векторных прерываний в процессор передается также информация о начальном адресе программы - обработчика прерываний.
Описание слайда:
Два основных способа, с помощью которых шины выполняют прерывания: векторный (vectored) и опрашиваемый (polled). В обоих способах процессору предоставляется информация об уровне приоритета прерывания. Два основных способа, с помощью которых шины выполняют прерывания: векторный (vectored) и опрашиваемый (polled). В обоих способах процессору предоставляется информация об уровне приоритета прерывания. В случае векторных прерываний в процессор передается также информация о начальном адресе программы - обработчика прерываний.

Слайд 39






Вектор прерываний, передаваемый в процессор, представляет собой целое число в диапазоне от 0 до 255, указывающее на одну из 256 программ обработки прерываний, адреса которых хранятся в таблице обработчиков прерываний.
Описание слайда:
Вектор прерываний, передаваемый в процессор, представляет собой целое число в диапазоне от 0 до 255, указывающее на одну из 256 программ обработки прерываний, адреса которых хранятся в таблице обработчиков прерываний.

Слайд 40





При использовании опрашиваемых прерываний процессор получает от устройства только информацию об уровне приоритета прерывания.
При использовании опрашиваемых прерываний процессор получает от устройства только информацию об уровне приоритета прерывания.
С каждым уровнем прерываний может быть связано несколько устройств и соответственно несколько программ — обработчиков прерываний. процессор должен определить, какое устройство запросило прерывание. Это достигается вызовом всех обработчиков прерываний для данного уровня приоритета, пока один из обработчиков не подтвердит, что прерывание пришло от обслуживаемого им устройства.
Описание слайда:
При использовании опрашиваемых прерываний процессор получает от устройства только информацию об уровне приоритета прерывания. При использовании опрашиваемых прерываний процессор получает от устройства только информацию об уровне приоритета прерывания. С каждым уровнем прерываний может быть связано несколько устройств и соответственно несколько программ — обработчиков прерываний. процессор должен определить, какое устройство запросило прерывание. Это достигается вызовом всех обработчиков прерываний для данного уровня приоритета, пока один из обработчиков не подтвердит, что прерывание пришло от обслуживаемого им устройства.

Слайд 41


Процессы и потоки. Тема 2, слайд №41
Описание слайда:

Слайд 42


Процессы и потоки. Тема 2, слайд №42
Описание слайда:

Слайд 43





Взаимодействие и синхронизация процессов и потоков
Проблемы взаимодействия и синхронизации
Описание слайда:
Взаимодействие и синхронизация процессов и потоков Проблемы взаимодействия и синхронизации

Слайд 44





Конкуренция процессов в борьбе за ресурсы
Описание слайда:
Конкуренция процессов в борьбе за ресурсы

Слайд 45





Взаимоблокировки (тупики, deadlock)
Описание слайда:
Взаимоблокировки (тупики, deadlock)

Слайд 46





Проблема “голодание”
Описание слайда:
Проблема “голодание”

Слайд 47





Сотрудничество с использованием разделения
Описание слайда:
Сотрудничество с использованием разделения

Слайд 48





Методы взаимоисключений
Описание слайда:
Методы взаимоисключений

Слайд 49





Использование системных функций входа в критическую секцию
Описание слайда:
Использование системных функций входа в критическую секцию

Слайд 50





Семафоры Дийкстры (Dijkstra)
Описание слайда:
Семафоры Дийкстры (Dijkstra)

Слайд 51


Процессы и потоки. Тема 2, слайд №51
Описание слайда:

Слайд 52


Процессы и потоки. Тема 2, слайд №52
Описание слайда:

Слайд 53





Взаимоблокировки (тупики)
Описание слайда:
Взаимоблокировки (тупики)

Слайд 54





Методы обнаружения  взаимоблокировок
Описание слайда:
Методы обнаружения взаимоблокировок

Слайд 55


Процессы и потоки. Тема 2, слайд №55
Описание слайда:

Слайд 56





2. В системе несколько  ресурсов каждого типа.
Описание слайда:
2. В системе несколько ресурсов каждого типа.

Слайд 57





Алгоритм обнаружения тупиков
Описание слайда:
Алгоритм обнаружения тупиков

Слайд 58





Методы устранения тупиков
Описание слайда:
Методы устранения тупиков

Слайд 59





Синхронизирующие объекты ОС
Описание слайда:
Синхронизирующие объекты ОС

Слайд 60


Процессы и потоки. Тема 2, слайд №60
Описание слайда:

Слайд 61


Процессы и потоки. Тема 2, слайд №61
Описание слайда:

Слайд 62





Проблема обедающих философов. 
Полезна для моделирования процессов, соревнующихся за монопольный доступ к ограниченному количеству ресурсов, например к устройствам ввода/вывода.
Описание слайда:
Проблема обедающих философов. Полезна для моделирования процессов, соревнующихся за монопольный доступ к ограниченному количеству ресурсов, например к устройствам ввода/вывода.

Слайд 63





Решение задачи обедающих философов
#define N 	5 		/* Количество философов */
#define LEFT (i+N-1)%N	/* Номер левого соседа философа с номером i */ 
#define RIGHT (i+1)%N	/* Номер правого соседа философа с номером i */ 
#define THINKING 0 	/* Философ размышляет */ 
#define HUNGRY 1 	/* Философ пытается получить вилки */ 
#define EATING 2 		/* Философ ест */ 
typedef int semaphore; 	/* Семафоры - особый вид целочисленных 				переменных */ 
int state[N];		/* Массив для отслеживания состояния каждого 			философа */ 
semaphore mutex =1;	/* Взаимоисключение для критических областей */
semaphore s[N]; 	/* Каждому философу по семафору */
void philosopher(int i) 	/* i - номер философа, от 0 до N-1 */
{ 
while (TRUE) { 	/* Повторять до бесконечности */
think(); 		/* Философ размышляет */
take_forks(i); 	/* Получает две вилки или блокируется */
eat();		/* Философ ест спагетти */
put_forks(i); 	/* Кладет на стол обе вилки */ 
}
}
Описание слайда:
Решение задачи обедающих философов #define N 5 /* Количество философов */ #define LEFT (i+N-1)%N /* Номер левого соседа философа с номером i */ #define RIGHT (i+1)%N /* Номер правого соседа философа с номером i */ #define THINKING 0 /* Философ размышляет */ #define HUNGRY 1 /* Философ пытается получить вилки */ #define EATING 2 /* Философ ест */ typedef int semaphore; /* Семафоры - особый вид целочисленных переменных */ int state[N]; /* Массив для отслеживания состояния каждого философа */ semaphore mutex =1; /* Взаимоисключение для критических областей */ semaphore s[N]; /* Каждому философу по семафору */ void philosopher(int i) /* i - номер философа, от 0 до N-1 */ { while (TRUE) { /* Повторять до бесконечности */ think(); /* Философ размышляет */ take_forks(i); /* Получает две вилки или блокируется */ eat(); /* Философ ест спагетти */ put_forks(i); /* Кладет на стол обе вилки */ } }

Слайд 64





void take_forks(int i) 	/* i - номер философа, от 0 до N-1*/
void take_forks(int i) 	/* i - номер философа, от 0 до N-1*/
{ 
down(&mutex); 		/* Вход в критическую область */
state[i] = HUNGRY; 	/* Фиксация наличия голодного философа */
test(i); 			/* Попытка получить две вилки */
up(&mutex); 		/* Выход из критической области */ 
down(&s[i]); 		/* Блокировка, если вилок не досталось */
}
void put_forks(i) 		/* i - номер философа, от 0 до N-1*/ 
{ 
down(&mutex); 		/* Вход в критическую область */ 
state[i] = THINKING;	/* Философ перестал есть */ 
test(LEFT); 		/* Проверить, может ли есть сосед слева */ 
test(RIGHT); 		/* Проверить, может ли есть сосед справа */ 
up(&mutex); 		/* Выход из критической области */ 
}
void test(i)		/* i - номер философа, от 0 до N-1*/ 
{
if (state[i] == HUNGRY && state[LEFT] != EATING && state[RIGHT] != EATING) { 
State[i] = EATING; 
up(&s[i]);
}
}
Описание слайда:
void take_forks(int i) /* i - номер философа, от 0 до N-1*/ void take_forks(int i) /* i - номер философа, от 0 до N-1*/ { down(&mutex); /* Вход в критическую область */ state[i] = HUNGRY; /* Фиксация наличия голодного философа */ test(i); /* Попытка получить две вилки */ up(&mutex); /* Выход из критической области */ down(&s[i]); /* Блокировка, если вилок не досталось */ } void put_forks(i) /* i - номер философа, от 0 до N-1*/ { down(&mutex); /* Вход в критическую область */ state[i] = THINKING; /* Философ перестал есть */ test(LEFT); /* Проверить, может ли есть сосед слева */ test(RIGHT); /* Проверить, может ли есть сосед справа */ up(&mutex); /* Выход из критической области */ } void test(i) /* i - номер философа, от 0 до N-1*/ { if (state[i] == HUNGRY && state[LEFT] != EATING && state[RIGHT] != EATING) { State[i] = EATING; up(&s[i]); } }

Слайд 65





Траектории ресурсов
Описание слайда:
Траектории ресурсов

Слайд 66





Алгоритм банкира
Описание слайда:
Алгоритм банкира

Слайд 67


Процессы и потоки. Тема 2, слайд №67
Описание слайда:

Слайд 68





Виды механизмов межпроцессного взаимодействия (InterProcess Communication - IPC)
Описание слайда:
Виды механизмов межпроцессного взаимодействия (InterProcess Communication - IPC)

Слайд 69


Процессы и потоки. Тема 2, слайд №69
Описание слайда:

Слайд 70





Межпроцессный обмен на локальном компьютере
Описание слайда:
Межпроцессный обмен на локальном компьютере

Слайд 71


Процессы и потоки. Тема 2, слайд №71
Описание слайда:

Слайд 72





Организации очереди в массиве
Описание слайда:
Организации очереди в массиве

Слайд 73


Процессы и потоки. Тема 2, слайд №73
Описание слайда:

Слайд 74


Процессы и потоки. Тема 2, слайд №74
Описание слайда:

Слайд 75





Отображаемые файлы
Описание слайда:
Отображаемые файлы

Слайд 76


Процессы и потоки. Тема 2, слайд №76
Описание слайда:

Слайд 77


Процессы и потоки. Тема 2, слайд №77
Описание слайда:

Слайд 78


Процессы и потоки. Тема 2, слайд №78
Описание слайда:



Похожие презентации
Mypresentation.ru
Загрузить презентацию