24516

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

Доклад

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

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

Русский

2013-08-09

19.14 KB

11 чел.

Вопрос 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.Критическая секция.

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

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

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

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


 

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

80700. The problem of linguistic meaning. Types of linguistic meaning. Main approaches to the definition of meaning 37.66 KB
  Semasiology (or semantics ) is a branch of linguistics which studies meaning. There are three main categories of definitions which may be referred to as: -analytical or referential definition of meaning - functional or contextual definition of meaning,- operational or information-oriented definition of meaning
80701. Synonymy 32.44 KB
  Synonyms are the words of the same part of speech different in their sound-form but similar in their meaning and interchangeable at least in one context. There are very few perfect synonyms. They usually differ in some aspect of their meaning — according to this they can be ideographic
80702. Antonymy (semantic opposition). Antonyms are words which express opposite or contrasting meanings 32.49 KB
  Antonyms are subdivided into. Gradable — represent the extremes of the quality. There are often adjectives that can be placed on the scale between them (hot-cold). Contradictory-complimentary — cannot exist without each other (dead-alive; leave-stay)3. Conversive — describe opposite attributes of the same situation (to buy-to sell — when one buys another sells)
80704. THE MORPHEMIC STRUCTURE OF THE WORD. TYPES OF MORPHEMES. ALLOMORPHS nd mening: they don’t possessed grmmticl mening. 30.83 KB
  The morpheme is the smallest meaningful unit of form. A form in these cases a recurring discrete unit of speech. Morphemes occur in speech only as constituent parts of words, not independently, although a word may consist of single morpheme. Even a cursory examination of the morphemic structure of English words reveals that they are composed of morphemes of different types: root-morphemes and affixational morphemes. Words that consist of a root and an affix are called derived words or derivatives and are produced by the process of word building known as affixation (or derivation).
80705. MORPHEMIC LEVEL OF ANALYSYS OF WORD-STRUCTURE 33.59 KB
  There are two levels of approach to the study of word- structure: the level of morphemic analysis and the level of derivational or word-formation analysis. Principles of morphemic analysis. In most cases the morphemic structure of words is transparent enough and individual morphemes clearly stand out within the word. The segmentation of words is generally carried out according to the method of Immediate and Ultimate Constituents.
80706. Lexicology as a branch of linguistics. Parts /branches of lexicology. The connection of lexicology with other branches of linguistics 32.51 KB
  Special lexicology – the lexicology of a particular language, i.e. the study and description of its vocabulary and vocabulary units, primarily words as the main units of language.; special lexicology is based on the principles worked out and laid down by general lexicology, a general theory of vocabulary. Special lexicology employs synchronic (q.v.) and diachronic (q.v.) approaches
80708. The word as an arbitrary and motivated sign. Naming. Types of motivation 34.58 KB
  The process of motivation depends on the inner form of the word. The inner form is central point in the lexical meaning which helps to get inside in to the features chosen as the basis of nomination. In linguistics the term MOTIVATION is used to denote the relationship