Блок управления потоком в Linux - PullRequest
2 голосов
/ 23 ноября 2011

Какая структура используется для сохранения состояния потока, такого как ПК, SP и регистров, во время переключения контекста потока в linux? Эквивалент TCB в freebsd. Если возможно, укажите исходный файл здесь .

Обратите внимание, что самой печатной платы недостаточно, поскольку у нас есть ПК, SP и т. Д. На каждый поток, а не на процесс.

Ответы [ 2 ]

7 голосов
/ 24 ноября 2011

Это на самом деле task_struct.В Linux задача может быть потоком, процессом или чем-то промежуточным.Поток - это просто имя, которое вы даете задаче, которая разделяет большинство вещей (VMA, файловые дескрипторы и т. Д.) С другими задачами.

Это очень соответствует идее, что поток - это простоконкретный тип процесса, и может быть обработан с помощью тех же функций и т. д. Plan 9's rfork() и Linux clone() позволяют создавать процессы с настраиваемым уровнем общего доступа, поэтому вы в конечном итоге используете один и тот же механизм для созданияпроцессы и темы.

1 голос
/ 23 ноября 2011

Возможно, вы хотите setcontext и друзей (но ваш код не будет очень переносимым и сложным, чтобы получить права)?

Или вы говорите изнутри ядра? Тогда возможно task_struct может быть тем, что вы ищете ??

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...