поддержка
проекта:
разместите на своей странице нашу кнопку!И мы
разместим на нашей странице Вашу кнопку или ссылку. Заявку прислать на
e-mail
код нашей кнопки:
Вычислительные процессы над общим полем памяти
Наверное, все читатели бывали в поликлинике. В таких учреждениях
обязательно есть регистратура, в которой хранятся медицинские карты,
содержащие все сведения о пациентах, нужные для врачей. Эти карты можно
рассматривать как записи в поле памяти, состоящем из всей совокупности
хранимых в поликлинике карт.
Работники регистратуры отыскивают данные (карты) в этой базе данных либо
по просьбе посетителей, либо по запросам врачей. Можно считать, что при
этом над общим полем памяти (совокупностью медицинских карт) параллельно
реализуется множество процессов, связанных с обслуживанием пациентов
врачами.
Интересы врачей могут сталкиваться. Два специалиста могут, например,
захотеть ознакомиться с одной и той же историей болезни пациента X, и
вполне вероятно, что одному из врачей придется подождать, пока его
коллега не освободит для него поле деятельности. Другими словами, между
"процессами" (в данном случае врачами) возникает определенное
взаимодействие, и требуется специальная регулирующая это взаимодействие
система.
В ЭВМ, способных к параллельному выполнению программ, это операционная
система. Она выполняет ряд специальных функций. Вид этих функций зависит
от того, протекают ли процессы над общей памятью или память разделена
между процессами. В случае общей памяти основными задачами, решаемыми
операционной системой, являются задачи инициации выполнения процесса,
завершения его и синхронизации протекания процессов относительно друг
друга.
1. Инициация и завершение параллельно протекающих процессов.
В многопроцессорных системах с общей памятью решаемая задача может
состоять из нескольких параллельно выполняемых участков (процессов).
Внутри каждого из таких участков команды выполняются последовательно. Во
время выполнения каждый процесс может инициировать (по соответствующему
обращению к операционной системе) один или несколько процессов, которые
при наличии вычислительных ресурсов будут выполняться параллельно с ним.
Созданные таким образом процессы могут порождать, в свою очередь, другие
процессы и т. д.
В некоторых системах процесс при своем создании может быть подчинен
создавшему его процессу либо другому процессу более высокого уровня.
Подчиненность процесса означает, что управление из порожденного процесса
в вызвавший его процесс не возвращается до тех пор, пока не будет
завершено выполнение всех подчиненных порожденному процессу других
процессов.
После инициации процесс начинает функционировать автономно,
синхронизируясь и взаимодействуя с другими процессами по собственной
инициативе или по инициативе других процессов.
С помощью операционной системы создается очередь процессов, готовых к
выполнению, и очередь процессов, ждущих завершения различных влияющих на
них событий. Очереди могут создаваться внутри задач или быть общими для
всех задач. Очереди упорядочиваются по дисциплинам обслуживания. Такими
дисциплинами могут быть: первый пришел - первый обслужился, в
соответствии с приоритетами и др. (см. Теория массового обслуживания).
Как только завершается выполнение одного из процессов задачи и
освобождается процессор, выделенный этой задаче, из очереди выбирают
процесс, стоящий в очереди первым, и инициируют его на освободившемся
процессоре. Если у задачи нет готовых к выполнению процессов, процессор
передается операционной системой другой задаче.