Можно подумать об этом так, что пользовательские потоки и потоки ядра — это два совершенно разных зверя.
В пользовательских потоках нет переключения контекста в обычном и обычном значении этого термина.
Оба типа (переключение контекста процесса и переключение контекста потока) включают передачу управления ядру операционной системы для выполнения переключения контекста (в основном я говорю о переключении контекста потока).
Я вижу ваше замешательство. Прежде всего, то, что здесь описывается, относится только к потокам ядра. Во-вторых, (и эта проблема явно является результатом формулировки, а не общего сообщения), в потоках ядра нет «переключателей контекста процесса», есть только «переключатели контекста потока».
В старые времена, когда потоков не было, изменение планирования означало изменение контекста процесса. Аппаратные инструкции для этого имеют такие названия, как «Загрузить контекст процесса» и «Сохранить контекст процесса». Но в операционной системе, планирующей потоки (потоки ядра), мы остаемся с этой старой терминологией, которая уже не очень точна. (Эта проблема возникает во многих местах при объяснении операционных систем).
если T(1-a) и T(1-b) являются потоками пользовательского уровня, ядро не сможет различить T(1-a) и T(1-b), то как будет осуществляться переключение контекста?
Если это потоки пользовательского уровня, ядро не знает о них и не заботится о них. Переключение между ними осуществляется пользовательской библиотекой. Переключение «потоков» не является переключением контекста.
не будет ли стоимость/сделка такой же, как у переключения контекста процесса, поскольку изменяется не только пространство виртуальной памяти, но и сбрасывается TLB ??
Будем надеяться, что операционная система достаточно умна, чтобы не сбрасывать кэши памяти при переключении между потоками в одном и том же процессе.
Я убежден, что ученые должны отказаться от конструкций ядра/пользовательского потока (и, что еще хуже, 1-к-1, многие-к-1 и многие-ко-многим [yuk]). Вместо них я предлагаю использовать термины
«настоящие потоки» и «симулированные потоки».
person
user3344003
schedule
13.04.2017