Есть РЕЗЬБЫ и МОДЕЛИРОВАННАЯ РЕЗЬБА. То, что вы называете «зеленой нитью», является симулированной резьбой.
Ядро ничего не знает о существовании смоделированного потока.
Мой вопрос заключается в том, какие структуры данных копируются или совместно используются (или что-то еще) между зеленым потоком и потоком ядра, с которым он связан?
Тогда ответ НЕТ; по крайней мере, на уровне операционной системы. Процесс должен отслеживать потоки в пользовательском пространстве.
Я знаю о схемах 1: 1, n: 1, n: m, и это не вопрос моего вопроса.
Схемы 1: 1, n: 1 и n: M завершены, и общая академическая система BullS * & T предназначена для того, чтобы сбить с толку учащихся. В потоках нет такой вещи как n: M. Это неосуществимая теоретическая ерунда. 1: 1 просто означает настоящие нити. n: 1 означает смоделированные нити.
В реальной жизни существуют только две модели:
В классической модели процесс состоял из потока выполнения и адресного пространства.
В текущей модели процесс состоит из нескольких потоков выполнения и адресного пространства.
В классической модели нет ниток. Если вам нужны потоки, вы должны смоделировать их, используя библиотеки с таймерами; тема, которая не подходит для курса по операционным системам, за исключением исторического фона.
В текущей модели несколько потоков выполнения называются потоками. Нет никакой причины использовать симулированные / зеленые / пользовательские потоки в текущей модели. Учебники, в которых написано, что смоделированные / зеленые / пользовательские темы имеют какое-либо преимущество, подходят только для использования с лайнером Cat Cat.