Главная » Информационные системы » Операционные системы » 35-4.5.Реализация многопоточных процессов

35-4.5.Реализация многопоточных процессов

4.5.Реализация многопоточных процессов

Несколько процессов могут выполнять одну параллельную программу на пользовательском уровне. Такие процессы называются пользовательскими потоками. Они совместно используют адресное пространство приложения и все выделенные ему операционной системой ресурсы, такие как память и открытые файлы.

Об операционных системах, которые позволяют приложениям регистрировать пользовательские потоки как планируемые потоки ядра, говорят, что они поддерживают многопоточные процессы. Подсистема управления потоками должна создавать для каждого потока отдельный дескриптор, так как при переключении потоков приходится сохранять для них отдельные значения регистров процессора(CPU). Информация о выделенной памяти и других ресурсах - общая для всех потоков процесса. Издержки на переключение контекста сравнительно невелики, поскольку нет необходимости при каждом переключении изменять информацию о памяти и других ресурсах.

Некоторые операционные системы не поддерживают многопоточные процессы, и каждый процесс в них имеет свое адресное пространство. Говорят, что в таких системах используется модель тяжеловесных процессов, поскольку издержки на переключение контекста между процессами в них довольно высоки. В противоположность им потоки, совместно использующие адресное пространство, называются легковесными процессами.

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

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


Друзья! Приглашаем вас к обсуждению. Если у вас есть своё мнение, напишите нам в комментарии.

Поделиться

Дисциплины