ВУЗ:
Составители:
47
мы, конкурируют друг с другом за доступ к ресурсам. В общем случае
процессы никак не связаны между собой и могут принадлежать даже
разным пользователям, разделяющим одну вычислительную систему.
В настоящее время в большинстве ОС для поддержки мультипро-
граммирования кроме понятия процесс определена еще одна, более
«мелкая» единица работы – поток.
Очевидно, что любая работа вычислительной системы заключается
в выполнении некоторой программы. Поэтому и с процессом, и с пото-
ком связывается определенный программный код, который для этих це-
лей оформляется в виде исполняемого модуля. Очевидно, выполнение
программы невозможно без предоставления ей процессорного времени,
то есть времени, в течение которого процессор выполняет коды данной
программы. В ОС, где существуют и процессы, и потоки, процесс рас-
сматривается как заявка на потребление всех видов ресурсов, кроме од-
ного – процессорного времени. Этот последний важнейший ресурс рас-
пределяется ОС между другими единицами работы – потоками, которые
и получили свое название благодаря тому, что они представляют собой
последовательности (потоки выполнения) команд.
В простейшем случае процесс состоит из одного потока, а это озна-
чает, что остается только одна единица работы и потребления ресурсов
– процесс. Мультипрограммирование осуществляется в таких ОС на
уровне процессов. Рассмотрим основные предпосылки, способствовав-
шие появлению потоков.
Как отмечалось выше, для того чтобы процессы не могли вмешать-
ся в распределение ресурсов, а также не могли повредить коды и данные
друг друга, важнейшей задачей ОС является изоляция одного процесса
от другого. Для этого ОС обеспечивает каждый процесс отдельным вир-
туальным адресным пространством, так что ни один процесс не может
получить прямого доступа к командам и данным другого процесса. При
необходимости взаимодействия, процессы обращаются к ОС, которая,
выполняя функции посредника, предоставляет им средства межпроцесс-
ной связи – конвейеры, разделяемые секции памяти и др. Очевидно, та-
кой способ взаимодействия параллельно действующих процессов явля-
ется достаточно затратным, т.к. требуются дополнительные затраты
времени на переключение контекста.
В то же время, приложение, выполняемое в рамках одного процес-
са, может обладать внутренним параллелизмом, который в принципе
мог бы позволить ускорить его работу. Если, например, в программе
предусмотрено обращение к внешнему устройству, то на время этой
операции можно не блокировать выполнение всего процесса, а продол-
жить вычисления по другой ветви программы. Параллелизм желателен
как для обслуживания различных запросов к базе данных, так и для бо-
Страницы
- « первая
- ‹ предыдущая
- …
- 45
- 46
- 47
- 48
- 49
- …
- следующая ›
- последняя »