ВУЗ:
Составители:
86
Операция переключения контекстов ощутимо влияет на произ-
водительность вычислительной системы, поэтому модули ОС выполняют
диспетчеризацию потоков совместно с аппаратными средствами процессора.
В контексте потока можно выделить часть, общую для всех потоков
данного процесса (ссылки на открытые файлы), и часть, относящуюся только
к данному потоку (содержимое регистров, счетчик команд, режим
процессора). Например, в среде NetWare 4.x различаются три вида
контекстов: глобальный контекст (контекст процесса), контекст группы
потоков и контекст отдельного потока. Соотношение между данными этих
контекстов напоминает соотношение глобальных и локальных переменных в
программе, написанной на языке С. Переменные глобального контекста
доступны для всех потоков, созданных в рамках одного процесса.
Переменные локального контекста доступны только для кодов определенного
потока, аналогично локальным переменным функции. В NetWare можно
создавать несколько групп потоков внутри одного процесса и каждая группа
будет иметь свой контекст. Переменные, принадлежащие групповому
контексту, доступны всем потокам, входящим в группу, но недоступны
остальным потокам.
Очевидно, что такая организация контекстов ускоряет переключение
потоков, так как при переключении в пределах одной группы нет
необходимости заменять контексты групп или глобальные контексты,
достаточно лишь заменить контексты потоков, которые имеют меньший
объем. Аналогично при переключении с потока одной группы на поток
другой группы в пределах одного процесса глобальный контекст не
изменяется, а изменяется лишь контекст группы. Переключение же
глобальных контекстов происходит только при переходе с потока одного
процесса на поток другого процесса.
86
Операция переключения контекстов ощутимо влияет на произ-
водительность вычислительной системы, поэтому модули ОС выполняют
диспетчеризацию потоков совместно с аппаратными средствами процессора.
В контексте потока можно выделить часть, общую для всех потоков
данного процесса (ссылки на открытые файлы), и часть, относящуюся только
к данному потоку (содержимое регистров, счетчик команд, режим
процессора). Например, в среде NetWare 4.x различаются три вида
контекстов: глобальный контекст (контекст процесса), контекст группы
потоков и контекст отдельного потока. Соотношение между данными этих
контекстов напоминает соотношение глобальных и локальных переменных в
программе, написанной на языке С. Переменные глобального контекста
доступны для всех потоков, созданных в рамках одного процесса.
Переменные локального контекста доступны только для кодов определенного
потока, аналогично локальным переменным функции. В NetWare можно
создавать несколько групп потоков внутри одного процесса и каждая группа
будет иметь свой контекст. Переменные, принадлежащие групповому
контексту, доступны всем потокам, входящим в группу, но недоступны
остальным потокам.
Очевидно, что такая организация контекстов ускоряет переключение
потоков, так как при переключении в пределах одной группы нет
необходимости заменять контексты групп или глобальные контексты,
достаточно лишь заменить контексты потоков, которые имеют меньший
объем. Аналогично при переключении с потока одной группы на поток
другой группы в пределах одного процесса глобальный контекст не
изменяется, а изменяется лишь контекст группы. Переключение же
глобальных контекстов происходит только при переходе с потока одного
процесса на поток другого процесса.
Страницы
- « первая
- ‹ предыдущая
- …
- 84
- 85
- 86
- 87
- 88
- …
- следующая ›
- последняя »
