Оглавление
Процессы и потоки. Вопросы: 5-7, 16-17,38, 53 (7 вопросов)
Концепция процессов и потоков. Задание, процессы, потоки (нити), волокна. Методы взаимоисключений. (5). 1
Мультипрограммирование. Формы многопрограммной работы. Семафоры и мониторы. (15) 1
Методы взаимоисключений (53). 3
Управление процессами и потоками. Взаимоблокировки. (6). 4
Взаимодействие и синхронизация процессов и потоков (17). 5
Создание процессов и потоков. Модели процессов и потоков. Системные вызовы. (16) 7
Планирование заданий, процессов и потоков (7). Уровни планирования (38).. 8
Процессы и потоки
Концепция процессов и потоков. Задание, процессы, потоки (нити), волокна. Методы взаимоисключений. (5)
Процесс –выполнение кода программы, для ОС процесс – это экземпляр объекта.
Все ПО, включая и операционную систему, можно представить набором процессов.
Процесс обладает инкапсуляцией. Мы можем скрыть время старта (любое другое свойство). Для этого надо обратиться к API ОС и передать:
1) название свойства, которое необходимо скрыть.
|
|
2) название static-метода, который будет возвращать результат данного свойства.
При наследовании процесса родитель самостоятельно принимает решение о списке наследуемых свойств. При этом некоторые свойства не могут наследоваться (например, start-time). Остальные свойства будут наследованы, если передан родитель и список свойств. Пример: браузер, но сейчас вкладки – это разные процессы.
Полиморфизм дает возможность переопределения методов на уровне процесса.
Задачей ОС является организация использования ресурсов для эффективного выполнения процессов. Для этого у ОС есть таблицы, где содержится информация о текущем состоянии каждого процесса и ресурса.
Мультипрограммирование. Формы многопрограммной работы. Семафоры и мониторы. (15)
Мультипрограммирование – способ организации вычислительного процесса, при котором на одном ЦП поперемиенно выполняются несколько программ. Мультипрограммирование призвано повысить эффективность использования вычислительной системы. Наиболее характерными показателями являются:
1) Пропускная способность – колво задач в ед вр – системы пакетной обработки
2) Удобство пользователя – возможность работы пользователя с несколькими программами – система разделения времени
3) Реактивность системы (содержит запас вычислительной мощности) – системы реального времени для управления техническими объектами (спутник, ракета. Во всех этих случаях существует предельно допустимое время, в течение которого должна быть выполнена программа. Критерием эффективности ОС является способность выдерживать заранее заданные интервалы времени между запуском программы и получением результата. Это время называется временем реакции системы.
|
|
Мультипроцессорная обработка – это способ организации вычислительного процесса в системе с несколькими процессорами.
В отличие от мультипрограммной обработки несколько задач выполняется одновременно, т.к. имеется несколько процессоров. Однако это не исключает мультипрограммной обработки на каждом процессоре. Делятся на симметричные и несимметричные.
1) Симметричная архитектура мультипроцессорной системы предполагает однотипность и единообразие включения процессоров. ОС децентрализована. Ее модули выполняются на любом доступном процессоре.
2) В вычислительных системах с асимметричной архитектурой процессоры могут быть различными как по характеристикам и по функциональной роли в работе системы.
Процессы изолированны друг от друга, поэтому мультипрограммирование более эффективно на уровне потоков, между потоками одного процесса нет полной защиты, но это и не нужно.
Как правило, поток работает в пользовательском режиме, но когда он обращается к системному вызову, то переключается в режим ядра. После завершения системного вызова поток продолжает выполняться в режиме пользователя.Переключение потоков в ОС занимает довольно много времени, так как для этого необходимы переключение в режим ядра, а затем возврат в режим пользователя. Используются волокна (Fiber), подобные потокам, но планируемые в пространстве пользователя. У каждого потока может быть несколько волокон, с той разницей, что когда волокно логически блокируется, оно помещается в очередь блокированных волокон, после чего для работы выбирается другое волокно в контексте того же потока. При этом ОС "не знает" о смене волокон, так как все тот же поток продолжает работу.
Таким образом, существует иерархия рабочих единиц ОС:
Когда поток завершает работу, он может прекратить свое существование. Процесс завершается, когда прекратит существование последний активный поток.