Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Все ЭВМ могут одновременно выполнять несколько операций, например, чтение с диска и вывод текста на экран монитора или на принтер. В многозадачной системе процессор переключается между программами, предоставляя каждой от десятков до сотен миллисекунд. При этом создаётся иллюзия параллельной работы всех программ. Если центральный процессор один, то речь идёт о псевдопараллелизме, в отличие от настоящего параллелизма в многопроцессорных системах.
Всякая ОС осуществляет модель последовательных процессов, именно работа всех программ и частей персонального компьютера организована в виде набора последовательных процессов. Например, процессом является выполняемая программа вместе с текущим значением счётчика команд, регистров и переменных. С позиции этой абстрактной модели у каждого процесса есть собственный центральный виртуальный процессор. На самом деле ЦП переключается с процесса на процесс. Это переключение называется многозадачностью или мультипрограммированием.
Операционной системе нужен способ создания и прерывания потоков по мере необходимости. Обычно при загрузке ОС создаются несколько процессов. Некоторые из них обеспечивают взаимодействие с пользователем и выполняют заданную работу, остальные являются фоновыми и выполняют особые функции, не связанные с данным пользователем.
Текущий процесс может создать один или несколько новых процессов. Это полезно в тех случаях, когда выполняемую задачу можно сформулировать как набор связанных, но независимых взаимодействующих процессов. Например, если выбирается большое количество данных из сети, то удобно создать один процесс для выборки данных и размещение их в буфере, другой – для считывания и обработки данных из буфера.
Все процессы завершаются по мере выполнения своей работы. Процессы являются независимыми объектами со своими счётчиками команд и внутренними состояниями. Процессы могут взаимодействовать друг с другом. Модель процессов упрощает представление о внутреннем поведении системы. Эту модель можно представить следующей схемой (см. рис. 3.3). Нижний уровень – это планировщик – специальная программа. На верхних уровнях расположены процессы. Обработка прерываний и процедуры, связанные с запуском и остановкой процессов, выполняются планировщиком. Вся остальная часть ОС структурирована в виде набора процессов.
В таблице процессов о каждом открытом процессе хранится следующая информация:
§ о состоянии процесса;
§ счётчик команд;
§ распределение памяти;
§ состояние открытых файлов;
§ указатель стека;
§ о использовании и распределении ресурсов.
Модель процесса базируется на двух независимых концепциях: группировании ресурсов и выполнении программы. Когда эти концепции разделяют, появляется понятие потока.
В обычных ОС каждый процесс определяется соответствующим адресным пространством и одиночным управляющим потоком. Однако нередки ситуации, когда в одном адресном пространстве желательно иметь несколько квазипараллельных управляющих процессов.
Прежде всего, каждый процесс рассматривается как способ объединения родственных ресурсов в одну группу. У процесса есть адресное пространство, содержащее программу, данные, открытые файлы, дочерние процессы, аварийные необработанные события, обработчики сигналов, учётная информация и п. п. Это – ресурсы процесса.
С другой стороны, каждый процесс можно рассматривать как поток исполняемых команд. Поток имеет счётчик команд, регистры с текущими переменными, стек, где хранится протокол выполнения процесса. Если процессы используются для группирования ресурсов, то потоки являются объектами, поочерёдно исполняющимися на центральном процессоре.
Концепция потоков позволяет в одной и той же модели процесса поочерёдно выполнять несколько достаточно независимых программ. При запуске многопоточного процесса в системе с одним процессом потоки работают поочерёдно. Процессор быстро переключается с одного потока на другой, создавая иллюзию параллельной работы потоков. При этом все потоки остаются в одном адресном пространстве и совместно используют одни и те же выделенные ресурсы.
Необходимость введения потоков диктуется следующими причинами. Во-первых, все программы выполняют большое количество действий, которые могут время от времени блокироваться. В этом случае появляется возможность выполнять другие действия в одном и том же адресном пространстве. Во-вторых, потоки легко создать и уничтожить, т. к. с потоком не связаны никакие особо выделенные ресурсы. Время создания потока в сто раз меньше времени создания процесса. В-третьих, при использовании потоков во многих случаях увеличивается производительность компьютера.
Дата публикования: 2014-11-18; Прочитано: 245 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!