Каковы сопоставления пользователя с ядром? - PullRequest
3 голосов
/ 16 февраля 2011

Что такое сопоставление один к одному?отображение много-к-одному?отображение «многие ко многим»?

Что это за сопоставления пользователей / ядра?Как это влияет на систему?

Ответы [ 2 ]

4 голосов
/ 16 февраля 2011

Из моих заметок в классе ОС как ответ на задание. надеюсь, это поможет.

Много-к-одному

  1. Поскольку все структуры управления потоками существуют в адресуемая память одного процесса, переключение между потоки не требуют переключения контекста и, следовательно, быстро.

  2. Они могут быть более гибкими, чем основанные на ядре реализации, так как они дают уровень приложения Программист умение контролировать планирование потоков. программист может иметь больше знаний о поведении приложения и, таким образом, может планировать потоки более эффективнее, чем может ОС-ядро.

Один-к-одному

  1. В этой модели ОС знает о каждом потоке и может запланировать другой, если конкретный поток блокируется. ОС не может сделать это в модели «многие к одному».

  2. Несколько потоков могут выполняться параллельно на многопроцессорном системы.

Многие ко многим

  1. Как и в модели «один на один», ОС знает о каждый поток и может запланировать другой, если конкретный поток блоки.

  2. Опасность модели «один к одному» состоит в том, что если их слишком много потоки создаются, накладные расходы на создание процесса / потока, разрушение процесса / потока и переключение контекста может перевешивают любые преимущества параллелизма потоков. модель «многие ко многим» освобождает программиста приложений от беспокоясь о каких-либо таких ограничений на количество потоки. При создании многопоточного приложения программист просто создает столько потоков, сколько нужно, и ОС затем распределяет их среди некоторых меньших количество процессов по собственным критериям.

enter image description here

В качестве ссылки проверить это

4 голосов
/ 16 февраля 2011

Многие-к-одному отображают множество потоков пользовательского уровня в один поток ядра.Один-к-одному сопоставляет один поток пользовательского уровня с одним потоком ядра.Многие-ко-многим сопоставляют многие потоки пользовательского уровня со многими потоками ядра.

Многие-к-одному управляются библиотекой потоков в пользовательском пространстве и поэтому эффективны;но весь процесс будет блокироваться, если поток выполняет системный вызов блокировки.Кроме того, поскольку только один поток может одновременно обращаться к ядру, несколько потоков не могут работать параллельно на многопроцессорных системах.

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

Многие ко многимэто самая редкая из реализаций, и она объединяет множество потоков пользовательского уровня во множество потоков ядра.Теоретически он должен обеспечивать лучший параллелизм, но истинный параллелизм не достигается, потому что ядро ​​может планировать только один поток за один раз.Разработчики могут создавать столько пользовательских потоков, сколько необходимо, и соответствующие потоки ядра могут работать параллельно на процессоре.Кроме того, при выполнении блокирующего вызова ядро ​​может запланировать выполнение другого потока.

...