Karh09 2 11

Структура на задачите за IA-32 - формати на: TSS, дескриптор на TSS, TSS-gate и регистър на задачата (TR).


страницата се нуждае от дописване/преглеждане


Table of Contents

Задачата е единица работа, която процесорът може да разпредели, изпълни и прекрати. Задачата може да се състои в изпълнение на програма/процес, компонент на операционната система, прекъсване и т. н.
Архитектурата IA-32 предоставя механизъм за запазване на състоянието на съответна задача, за нейното разпределяне и изпълнение, както и за превключване от една задача към друга.
Всяка задача е изградена от два компонента – пространство за изпълнение на задачата и сегмент за състояния на задачата – Task State Segment (TSS). Пространството за изпълнение на задачата се състои от сегмент за кода, стеков сегмент и един или повече сегмента за данни. Task State Segment (TSS) задава сегментите, които съставят пространството за изпълнение на задачата и предоставят място за съхраняване на информацията за състоянието на задачата. В режим на многозадачност, Task State Segment (TSS) предоставя механизъм за свързване на задачите. Всяка задача се идентифицира със сегментния селектор на своя TSS. Когато дадена задача се зареди за изпълнение в процесора, сегментният селектор, началният (базовият) адрес, границата и сегментния дескриптор на TSS се зареждат в регистъра на задачата – Task Register (TS).

1.png

Следва представяне на основните структури от данни, използвани при управлението на задачи, а именно TSS, дескриптор на TSS, TSS-gate и регистър на задачата (TR).
TSS е системен сегмент, който се използва за съхраняване на необходимата на процесора информация за възстановяване на прекъснато изпълнение на дадена задача. В него се включват регистри за обща употреба (EAX, ECX, EDX, EBX, ESP, EBP, ESI и EDI), регистри за избора на сегмент (ES, CS, SS, DS, FS и GS), флагов регистър (ES, CS, SS, DS, FS и GS), указателен регистър (EIP), поле за връзка към предходната задача, поле за избор на сегментния селектор на LDT и на CR3, поле за нивото на привилегия.

2.png

Дескрипторът на TSS дефинира (задава) TSS. Този дескриптор може да бъде разположен единствено в GDT, а не в LDT или IDT.

3.png

TSS-gate осигурява възможност за косвено, защитено обръщане (извикване) на задача. TSS-gate може да бъде разположен в GDT, LDT или IDT. На фигурата е представен неговият вид.

4.png

Регистърът на задачата (TR) съдържа 16-битовия сегментен селектор и целия сегментен дескриптор на текущата задача (32-битов базов адрес, 16-битова граница на сегмента и атрибути на дексриптора). Тази информация се копира от TSS-дескриптора в GDT за текущата задача.

5.png

Следва описание на концепцията за управление на задачите в архитектурата IA-32. операционната система има модул, наречен loader (зареждащ модул), който, получавайки съответна команда, извършва зареждане на задача за предстоящо изпълнение, като при това зареждане в оперативната памет за тази задача се създава споменатия вече (TSS). Освен този модул, при управлението на задачите участва и още един – планиращ модул (модул за планиране), който решава коя от задачите, заредени в оперативната памет, да активира. Той работи на следния принцип:
1) Издава команда към процесора за задействането му след даден квант време.
2) Обхожда таблицата на задачите, взима първата, която е в режим на готовност и я стартира, след което продължава по следния начин – записва състоянието на предишната и започва да работи по новата задача.
3) След като изтече квантът време, процесорът е бил задействан от таймер и този вид прекъсване води до активиране на планиращия модул, който отново издава команда за задействане на процесора и отново сканира таблицата. Има статистическа информация, която пренарежда таблицата, така че да не се позволи една и съща задача да се изпълнява многократно постоянно.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License