Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
GLAVA4_red.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
194.56 Кб
Скачать

Глава 4. Процессы и потоки

4.1. Планирование процессов и потоков

4.1.1. Понятия «процесс» и «поток»

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

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

В операционной системе процесс рассматривается как заявка на потребление всех видов ресурсов, кроме одного — процессорного времени. Этот последний важнейший ресурс распределяется операционной системой между другими единицами работы — потоками, которые и получили свое название благодаря тому, что они представляют собой последовательности (потоки выполнения) команд.

В простейшем случае процесс состоит из одного потока, и именно таким образом трактовалось понятие «процесс» до середины 80-х годов и в таком же виде оно сохранилось в некоторых современных ОС. В таких системах понятие «поток» полностью поглощается понятием «процесс», то есть остается только одна единица работы и потребления ресурсов — процесс. Мультипрограммирование осуществляется в таких ОС на уровне процессов, а отдельный процесс никогда не может быть выполнен быстрее, чем в однопрограммном режиме (всякое разделение ресурсов только замедляет работу одного из участников за счет дополнительных затрат времени на ожидание освобождения ресурса).

Современные ОС используют механизм распараллеливания вычислений, который учитывает тесные связи между отдельными ветвями вычислений одного и того же приложения. Для этих целей ОС предлагают механизм миогопоточной обработки (multithreading). При этом вводится новая единица работы - поток, а понятие «процесс» в значительной степени меняет смысл. Понятию «поток» соответствует последовательный переход процессора от одной команды программы к другой. ОС распределяет процессорное время между потоками, а процессу ОС назначает адресное пространство и набор ресурсов, которые совместно используются всеми его потоками.

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

Наибольший эффект от введения многопоточной обработки достигается в мультипроцессорных системах, в которых потоки, в том числе и принадлежащие одному процессу, могут выполняться на разных процессорах действительно параллельно (а не псевдопараллельно).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]