Операционные системы. Часть 1. Основы управления ресурсами. Рощин А.В. - 76 стр.

UptoLike

Составители: 

76
переход процессора от одной команды программы к другой. ОС распределяет
процессорное время между потоками. Процессу ОС назначает адресное
пространство и набор ресурсов, которые совместно используются всеми его
потоками.
Создание потоков требует от ОС меньших накладных расходов, чем
процессов. В отличие от процессов, которые принадлежат разным, вообще
говоря, конкурирующим приложениям, все потоки одного процесса всегда
принадлежат одному приложению, поэтому ОС изолирует потоки в гораздо
меньшей степени, нежели процессы в традиционной мультипрограммной
системе. Все потоки одного процесса используют общие файлы, таймеры,
устройства, одну и ту же область оперативной памяти, одно и то же адресное
пространство. Это означает, что они разделяют одни и те же глобальные
переменные. Поскольку каждый поток может иметь доступ к любому
виртуальному адресу процесса, один поток может использовать стек другого
потока. Между потоками одного процесса нет полной защиты, потому что,
во-первых, это невозможно, а во-вторых, не нужно. Чтобы организовать
взаимодействие и обмен данными, потокам вовсе не требуется обращаться к
ОС, им достаточно использовать общую памятьодин поток записывает
данные, а другой читает их. С другой стороны, потоки разных процессов по-
прежнему хорошо защищены друг от друга.
Итак, мультипрограммирование более эффективно на уровне потоков, а
не процессов. Каждый поток имеет собственный счетчик команд и стек. Задача,
оформленная в виде нескольких потоков в рамках одного процесса, может
быть выполнена быстрее за счет псевдопараллельного (или параллельного в
мультипроцессорной системе) выполнения отдельных ее частей. Например,
если электронная таблица была разработана с учетом возможностей
многопоточной обработки, то пользователь может запросить пересчет своего
рабочего листа и одновременно продолжать заполнять таблицу. Особенно
                                    76



переход процессора от одной команды программы к другой. ОС распределяет
процессорное время между потоками. Процессу ОС назначает адресное
пространство и набор ресурсов, которые совместно используются всеми его
потоками.
     Создание потоков требует от ОС меньших накладных расходов, чем
процессов. В отличие от процессов, которые принадлежат разным, вообще
говоря, конкурирующим приложениям, все потоки одного процесса всегда
принадлежат одному приложению, поэтому ОС изолирует потоки в гораздо
меньшей степени, нежели процессы в традиционной мультипрограммной
системе. Все потоки одного процесса используют общие файлы, таймеры,
устройства, одну и ту же область оперативной памяти, одно и то же адресное
пространство. Это означает, что они разделяют одни и те же глобальные
переменные. Поскольку каждый поток может иметь доступ к любому
виртуальному адресу процесса, один поток может использовать стек другого
потока. Между потоками одного процесса нет полной защиты, потому что,
во-первых, это невозможно, а во-вторых, не нужно. Чтобы организовать
взаимодействие и обмен данными, потокам вовсе не требуется обращаться к
ОС, им достаточно использовать общую память – один поток записывает
данные, а другой читает их. С другой стороны, потоки разных процессов по-
прежнему хорошо защищены друг от друга.
     Итак, мультипрограммирование более эффективно на уровне потоков, а
не процессов. Каждый поток имеет собственный счетчик команд и стек. Задача,
оформленная в виде нескольких потоков в рамках одного процесса, может
быть выполнена быстрее за счет псевдопараллельного (или параллельного в
мультипроцессорной системе) выполнения отдельных ее частей. Например,
если электронная таблица была разработана с учетом возможностей
многопоточной обработки, то пользователь может запросить пересчет своего
рабочего листа и одновременно продолжать заполнять таблицу. Особенно