Архитектура операционной системы Linux. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Архитектура операционной системы Linux.



Архитектура операционной системы QNX.

 

Процессы и синхронизация.

 

 

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

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

Основные понятия: состояние, действие, история.

 

Разделяемый и критический ресурс. Пример.

 

Понятие синхронизации. Виды синхронизации.

В среде, позволяющей исполнять несколько потоков одновременно, очень важно синхронизировать их деятельность. Для этого в операционных системах, базирующихся на Win32, предусмотрен целый ряд синхронизирующих объектов. Здесь рассматриваются четыре объекта: критические секции, события, мьютексы и семафоры. Все перечисленные объекты, за исключением критических секций, принадлежат ядру (со всеми вытекающими последствиями).

Суть синхронизации. В общем случае поток синхронизирует себя с другим потоком так: он засыпает, и операционная система, не выделяя ему процессорного времени, приостанавливает его выполнение. Но прежде чем заснуть, поток сообщает системе, какое особое событие должно произойти, что бы его выполнение возобновилось. Как только указанное событие произойдёт, поток вновь получит процессорное время (продолжит выполнение). Таким образом, выполнение потока синхронизировано с определённым событием.

Если бы синхронизирующих объектов не было, потоку пришлось бы самому пришлось отслеживать определённые события и синхронизировать себя с ними.

 

 

Мелкомодульная неделимость. Условие «не больше одного».

 

 

 

 

Задача критической секции.

 

КС – это небольшой участок кода, требующий монопольного доступа к каким-либо общим данным (критическим ресурсам). Критическая секция не является объектом ядра (работает только в режиме пользователя), что определяет её высокую скорость работы, но не способность работы с потоками в разных процессах.

Иногда бывает нужно синхронизировать потоки со специфическими событиями, возникающими в системе, или с операциями, выполняемыми в других процессах. В таких случаях КС не подходят. Для синхронизации потоков можно использовать такие объекты ядра: процессы, потоки, файлы, консольный ввод, уведомления об изменении файлов, мьютексы, семафоры, события, ожидаемые таймеры и др.

 



Поделиться:


Последнее изменение этой страницы: 2017-02-06; просмотров: 256; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.117.158.47 (0.006 с.)