O Torvalds Linus

Сайт о *nix системах и всем что с ними связано

Поле thread

Mar-16-2012 By root

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

Поэтому дескриптор процесса включает в себя поле thread типа thread_ struct, в котором ядро сохраняет аппаратный контекст, когда происходит переключение с этого процесса на другой. Как мы увидим далее, эта структура имеет поля почти для всех регистров процессора, кроме регистров общего назначения еах, еЬх и др., которые сохраняются в стеке режима ядра.

Выполнение переключения процессов

Мы по-прежнему будем предполагать, что prev указывает на дескриптор замещаемого процесса, a next -на дескриптор активизируемого процесса. Как мы увидим, prev и next являются локальными переменными функции schedule().

Add A Comment