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