24516

Необходимость синхронизации процессов и потоков. Критическая секция

Доклад

Информатика, кибернетика и программирование

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

Русский

2013-08-09

19.14 KB

12 чел.

Вопрос 21. Необходимость синхронизации процессов и потоков. Критическая секция.

§4.4 Синхронизация процессов и потоков.

В многозадачной ОС синхронизация процессов и потоков необходима для исключения конфликтных ситуаций при обмене данными между ними, разделении данных, доступе к процессору и устройствам ввода-вывода. Во многих ОС эти средства называются средствами межпроцессного взаимодействия (InterProcess CommunicationsIPC).

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

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

Рассмотрим в качестве примера программу печати файлов (принт-сервер). Эта программа печатает по очереди все файлы, имена которых последовательно в порядке поступления записывают в специальный общедоступный файл "заказов" другие программы. В данном случае это процессы-клиенты R и S, содержащие операции R1, R2, R3 и S1, S2, S3 (рис. 4.8). Особая переменная NEXT, также доступная всем процессам-клиентам, содержит номер первой свободной для записи имени файла позиции файла "заказов". Процессы-клиенты читают эту переменную, записывают в соответствующую позицию файла "заказов" имя своего файла и наращивают значение NEXT на единицу. Предположим, что в некоторый момент процесс R решил распечатать свой файл, для этого он прочитал значение переменной NEXT, значение которой предположим равно 4. Процесс запомнил это значение, но поместить имя файла не успел, так как его выполнение было прервано (например, вследствие исчерпания кванта). Очередной процесс S, желающий распечатать файл, прочитал то же самое значение переменной NEXT, поместил в четвертую позицию имя своего файла и нарастил значение переменной на единицу. Когда в очередной раз управление будет передано процессу R, то он, продолжая свое выполнение, в полном соответствии со значением текущей свободной позиции, полученным во время предыдущей итерации, запишет имя файла также в позицию 4, поверх имени файла процесса S. Таким образом, файл процесса S не будет напечатан.

Рис. 4.8. Доступ процессов к разделяемым данным

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

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

§4.4.1.Критическая секция.

Важным понятием синхронизации потоков является понятие «критическая секция».

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

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

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


 

А также другие работы, которые могут Вас заинтересовать

83261. Безопасность жизнедеятельности на объектах промышленности, строительства, транспорта, АПК и других 35.35 KB
  Аэрозоль попадает в атмосферу из дымовых факелов химических предприятий при низкой облачности и высокой влажности. За год в атмосферу попадает десятки миллионов том серного ангидрида из-за предприятий черной и цветной металлургии.
83262. Задача моделирования предпочтений ЛПР 18.02 KB
  Задача моделирования предпочтений ЛПР Изучение моделирования предпочтений имеет большое значение для разработки управленческого решения так как принятие правильных решений это область управленческого искусства.
83263. Содержание методик коррекционно-педагогической работы при брадилалии, тахилалии 39.62 KB
  При устранении брадилалии логопедические приемы направлены на воспитание более быстрых и четких речевых движений в процессе речи; убыстренных речевых реакций; темпа внутренней речи; темпов письма и чтения; выразительных форм сценического чтения и драматизированной речи...
83264. Исследование влияния браков и разводов на воспроизводство населения 64 KB
  Одними из основных факторов влияющих на процесс воспроизводства населения являются браки и разводы. Брачностью называется процесс образования брачных или супружеских пар населения. Брачность находится в тесной связи с воспроизводством населения выступая как один из важнейших факторов рождаемости и смертности.
83265. Поведінка з незнайомими людьми 662.5 KB
  Ознайомити і вивчити способи уникнення небезпеки. Розвивати здатність орієнтуватися у складних ситуаціях, вміння оцінювати небезпеку та вибирати дії самозахисту. Виховувати спостережливість, обачність, увагу, почуття обережності, дбайливе ставлення один до одного...
83266. Лісовий лікар – шипшина 129.5 KB
  Мета: забезпечувати ознайомлення дітей з корисними властивостями «лісового лікаря – шипшини»; збагачувати уявлення про звичаї українського народу, пов’язані з шипшиною; засобами поетичного слова торкатись струн дитячої душі, доносячи красу трояндового дива; виховувати потребу охороняти, доглядати...
83267. Безсмертна Леся Українка була і є, повік жива 1.22 MB
  Фотографії Лесі Українки малюнки до віршів музичний записказка Л. Олена Журлива Сьогодні 25 лютого День народження Лесі Українки. На фоні музики і демонстрації слайдів звучить вірш Олени Журливої Памяті Лесі Українки Я знала Лесю Українку Живу тривожну молоду Вона мов квітка у барвінку Цвіла в поліському саду.
83268. Як людина сприймає повідомлення. Інформація та повідомлення. Отримання людиною повідомлення 413.5 KB
  Мета уроку: формувати початкові уявлення про види повідомлень за способом її сприйняття; розвивати кругозір дітей, увагу, зорову пам’ять, логічне та операційне мислення; удосконалювати навички роботи на клавіатурі та з мишею; виховувати естетичний смак, любов до природи, бережливе ставлення до свого здоров’я.
83269. П’єса-казка Нелі Шейко-Медведєвої «Лисиця, що впала з неба» 39 KB
  Поглибити розуміння побудови тексту пєси; вчити знаходити за допомогою вибіркового читання уривки слова які характеризують дійових осіб вчити розрізняти характеристики дійових осіб за їхніми висловами вчинками; розвивати творчі здібності дітей дослідницькі якості; виховувати правдивість почуття...