Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
У. Столлингс ГЛАВА 4 Потоки.doc
Скачиваний:
49
Добавлен:
11.05.2015
Размер:
6.22 Mб
Скачать

Глава 4.

Потоки, симметричная многопроцессорная обработка и микроядра

  1. Процессы и потоки

  2. Симметричная многопроцессорная обработка

  3. Микроядра

  4. Потоки и SMI; в Windows 2000

  5. Управление потоками и SMP в Solaris

  6. Управление процессами и потоками в Linux

  7. Резюме, ключевые термины и контрольные вопросы

  8. Рекомендуемая литература

Задачи

В этой главе изучаются концепции современных операционных систем, связанные с управлением процессами. Мы узнаем, что концепция процессов на самом деле сложнее и тоньше, чем можно себе представить исходя из материа­ла предшествующих глав. По сути, эта концепция объединяет в себе две отдельные, потенциально независимые концепции, одна из которых имеет отношение к владе­нию ресурсами, а другая — к выполнению процессов. В некоторых операционных системах это различие привело к появлению конструкции, известной под названием поток (thread). После рассмотрения потоков мы обратимся к изучению симметрич­ной многопроцессорности (symmetric multiprocessing — SMP). В системе с несколь­кими процессорами операционная система должна выполнять одновременное плани­рование выполнения на разных процессорах нескольких процессов. И наконец, мы ознакомим читателя с концепцией микроядра (microkernel), которое является эф­фективным средством структурирования операционной системы для управления процессами и решения других задач.

До сих пор концепцию процесса можно было охарактеризовать двумя параметрами.

  • Владение ресурсами (resource ownership). Процесс включает виртуальное адресное пространство, в котором содержится образ процесса, и время от времени может владеть такими ресурсами, как основная память, каналы и устройства ввода-вывода, или файлы, или же получать контроль над ними. Операционная система выполняет защитные функции, предотвращая неже­лательные взаимодействия процессов на почве владения ресурсами.

  • Планирование/выполнение (scheduling/execution). Выполнение процесса осуществляется путем выполнения кода одной или нескольких программ; при этом выполнение процесса может чередоваться с выполнением других процессов. Таким образом, процесс имеет такие параметры, как состояние (выполняющийся процесс, готовый к выполнению процесс и т.д.) и теку­щий приоритет, в соответствии с которым операционная система осуществ­ляет его планирование и диспетчеризацию.

В большинстве операционных систем эти две характеристики являются сущностью процесса. Однако, немного подумав, читатель может убедиться, что они являются независимыми, и что операционная система может рассматривать их отдельно друг от друга. В некоторых операционных системах (в особенности в недавно разработанных) так и происходит. Чтобы различать две приведенные выше характеристики, единицу диспетчеризации обычно называют потоком (thread) или облегченным процессом (lightweight process), а единицу владения ресурсами — процессом (process) или заданием (task).1

1 Увы, последовательность в использовании терминологии не выдерживается даже в такой степени. В операционной системе OS/390, предназначенной для мейнфреймов IBM, концепции адресного пространства и задания примерно соответствуют концеп­циям процесса и потока, описанным в этом разделе. Кроме того, термин упрощенный процесс (lightweight process) используется в трех значениях: (1) он эквивалентен тер­мину поток (thread), (2) обозначает поток особого вида, известный как поток на уров­не ядра (kernel-level thread) или (3) (в операционной системе Solaris) элемент, отобра­жающий потоки на уровне пользователя в потоки на уровне ядра.