Examples of operating systems using hardware task switching of x86 CPUs












6















Intel IA-32 architecture a.k.a. x86 offers hardware task switching capabilities since 80386. It includes TR (task register), memory segmentation features such as Task State Segment, task gates, call gates etc. However, this capability is not used in modern OSes which perform context management differently (for numerous reasons). Largely, the hardware task switching is not favored by any modern CPU architecture, not just x86. Within modern x86 OSes, only rudimentary TSS usage (that could not be avoided) can be found.



I am looking for information about which historical or maybe modern operating systems, both small and large, niche or general purpose, use hardware task switching. I am aware that Linux kernel up to 1.3 used it. I could not found reliable information about the MS DOS and Windows families, but I suspect some early versions of them are bound to use TSS at its fullest.










share|improve this question







New contributor




Grigory Rechistov is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





















  • Actually, there was task switching support in the 80286, which was partially developed with input from software vendors for early iterations of OS/2.

    – jdv
    12 hours ago











  • Hw task switch was removed in IA-32e (x64). It faults now if you try to call/jmp a task gate/TSS descriptor while in IA-32e.

    – Margaret Bloom
    10 hours ago













  • Even OS/2 2.0 eschewed the 386’s TSS as far as possible and only used one.

    – Stephen Kitt
    10 hours ago











  • ... and DOS didn’t use the TSS at all (what with it being single-tasking and designed for the 8086).

    – Stephen Kitt
    9 hours ago
















6















Intel IA-32 architecture a.k.a. x86 offers hardware task switching capabilities since 80386. It includes TR (task register), memory segmentation features such as Task State Segment, task gates, call gates etc. However, this capability is not used in modern OSes which perform context management differently (for numerous reasons). Largely, the hardware task switching is not favored by any modern CPU architecture, not just x86. Within modern x86 OSes, only rudimentary TSS usage (that could not be avoided) can be found.



I am looking for information about which historical or maybe modern operating systems, both small and large, niche or general purpose, use hardware task switching. I am aware that Linux kernel up to 1.3 used it. I could not found reliable information about the MS DOS and Windows families, but I suspect some early versions of them are bound to use TSS at its fullest.










share|improve this question







New contributor




Grigory Rechistov is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





















  • Actually, there was task switching support in the 80286, which was partially developed with input from software vendors for early iterations of OS/2.

    – jdv
    12 hours ago











  • Hw task switch was removed in IA-32e (x64). It faults now if you try to call/jmp a task gate/TSS descriptor while in IA-32e.

    – Margaret Bloom
    10 hours ago













  • Even OS/2 2.0 eschewed the 386’s TSS as far as possible and only used one.

    – Stephen Kitt
    10 hours ago











  • ... and DOS didn’t use the TSS at all (what with it being single-tasking and designed for the 8086).

    – Stephen Kitt
    9 hours ago














6












6








6








Intel IA-32 architecture a.k.a. x86 offers hardware task switching capabilities since 80386. It includes TR (task register), memory segmentation features such as Task State Segment, task gates, call gates etc. However, this capability is not used in modern OSes which perform context management differently (for numerous reasons). Largely, the hardware task switching is not favored by any modern CPU architecture, not just x86. Within modern x86 OSes, only rudimentary TSS usage (that could not be avoided) can be found.



I am looking for information about which historical or maybe modern operating systems, both small and large, niche or general purpose, use hardware task switching. I am aware that Linux kernel up to 1.3 used it. I could not found reliable information about the MS DOS and Windows families, but I suspect some early versions of them are bound to use TSS at its fullest.










share|improve this question







New contributor




Grigory Rechistov is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












Intel IA-32 architecture a.k.a. x86 offers hardware task switching capabilities since 80386. It includes TR (task register), memory segmentation features such as Task State Segment, task gates, call gates etc. However, this capability is not used in modern OSes which perform context management differently (for numerous reasons). Largely, the hardware task switching is not favored by any modern CPU architecture, not just x86. Within modern x86 OSes, only rudimentary TSS usage (that could not be avoided) can be found.



I am looking for information about which historical or maybe modern operating systems, both small and large, niche or general purpose, use hardware task switching. I am aware that Linux kernel up to 1.3 used it. I could not found reliable information about the MS DOS and Windows families, but I suspect some early versions of them are bound to use TSS at its fullest.







386 x86 multitasking






share|improve this question







New contributor




Grigory Rechistov is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question







New contributor




Grigory Rechistov is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question






New contributor




Grigory Rechistov is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked 12 hours ago









Grigory RechistovGrigory Rechistov

1312




1312




New contributor




Grigory Rechistov is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





Grigory Rechistov is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






Grigory Rechistov is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.













  • Actually, there was task switching support in the 80286, which was partially developed with input from software vendors for early iterations of OS/2.

    – jdv
    12 hours ago











  • Hw task switch was removed in IA-32e (x64). It faults now if you try to call/jmp a task gate/TSS descriptor while in IA-32e.

    – Margaret Bloom
    10 hours ago













  • Even OS/2 2.0 eschewed the 386’s TSS as far as possible and only used one.

    – Stephen Kitt
    10 hours ago











  • ... and DOS didn’t use the TSS at all (what with it being single-tasking and designed for the 8086).

    – Stephen Kitt
    9 hours ago



















  • Actually, there was task switching support in the 80286, which was partially developed with input from software vendors for early iterations of OS/2.

    – jdv
    12 hours ago











  • Hw task switch was removed in IA-32e (x64). It faults now if you try to call/jmp a task gate/TSS descriptor while in IA-32e.

    – Margaret Bloom
    10 hours ago













  • Even OS/2 2.0 eschewed the 386’s TSS as far as possible and only used one.

    – Stephen Kitt
    10 hours ago











  • ... and DOS didn’t use the TSS at all (what with it being single-tasking and designed for the 8086).

    – Stephen Kitt
    9 hours ago

















Actually, there was task switching support in the 80286, which was partially developed with input from software vendors for early iterations of OS/2.

– jdv
12 hours ago





Actually, there was task switching support in the 80286, which was partially developed with input from software vendors for early iterations of OS/2.

– jdv
12 hours ago













Hw task switch was removed in IA-32e (x64). It faults now if you try to call/jmp a task gate/TSS descriptor while in IA-32e.

– Margaret Bloom
10 hours ago







Hw task switch was removed in IA-32e (x64). It faults now if you try to call/jmp a task gate/TSS descriptor while in IA-32e.

– Margaret Bloom
10 hours ago















Even OS/2 2.0 eschewed the 386’s TSS as far as possible and only used one.

– Stephen Kitt
10 hours ago





Even OS/2 2.0 eschewed the 386’s TSS as far as possible and only used one.

– Stephen Kitt
10 hours ago













... and DOS didn’t use the TSS at all (what with it being single-tasking and designed for the 8086).

– Stephen Kitt
9 hours ago





... and DOS didn’t use the TSS at all (what with it being single-tasking and designed for the 8086).

– Stephen Kitt
9 hours ago










1 Answer
1






active

oldest

votes


















5














iRMX III is a real-time operating system for Intel 80386 and later processors, originally developed by Intel and now maintained by tenAsys. A quick look at the System Call Reference manual reveals that it uses call gates.






share|improve this answer



















  • 2





    I haven't looked at the reference but what has a call gate to do with the task switch? You can use a TSS in a call gate descriptor, sure, but that's not mandatory. Does the document say you have to call a TSS?

    – Margaret Bloom
    10 hours ago











  • A call gate is part of the family of functionality being asked about. I'm not familiar with iRMX beyond skimming manuals today, but the same manual mentions Task State Segments in object files. Intel would expect their own OSes to use their own hardware features.

    – John Dallman
    8 hours ago













  • @JohnDallman "Intel would expect their own OSes to use their own hardware features." - good point!

    – Grigory Rechistov
    6 mins ago











Your Answer








StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "648"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});






Grigory Rechistov is a new contributor. Be nice, and check out our Code of Conduct.










draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fretrocomputing.stackexchange.com%2fquestions%2f9177%2fexamples-of-operating-systems-using-hardware-task-switching-of-x86-cpus%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









5














iRMX III is a real-time operating system for Intel 80386 and later processors, originally developed by Intel and now maintained by tenAsys. A quick look at the System Call Reference manual reveals that it uses call gates.






share|improve this answer



















  • 2





    I haven't looked at the reference but what has a call gate to do with the task switch? You can use a TSS in a call gate descriptor, sure, but that's not mandatory. Does the document say you have to call a TSS?

    – Margaret Bloom
    10 hours ago











  • A call gate is part of the family of functionality being asked about. I'm not familiar with iRMX beyond skimming manuals today, but the same manual mentions Task State Segments in object files. Intel would expect their own OSes to use their own hardware features.

    – John Dallman
    8 hours ago













  • @JohnDallman "Intel would expect their own OSes to use their own hardware features." - good point!

    – Grigory Rechistov
    6 mins ago
















5














iRMX III is a real-time operating system for Intel 80386 and later processors, originally developed by Intel and now maintained by tenAsys. A quick look at the System Call Reference manual reveals that it uses call gates.






share|improve this answer



















  • 2





    I haven't looked at the reference but what has a call gate to do with the task switch? You can use a TSS in a call gate descriptor, sure, but that's not mandatory. Does the document say you have to call a TSS?

    – Margaret Bloom
    10 hours ago











  • A call gate is part of the family of functionality being asked about. I'm not familiar with iRMX beyond skimming manuals today, but the same manual mentions Task State Segments in object files. Intel would expect their own OSes to use their own hardware features.

    – John Dallman
    8 hours ago













  • @JohnDallman "Intel would expect their own OSes to use their own hardware features." - good point!

    – Grigory Rechistov
    6 mins ago














5












5








5







iRMX III is a real-time operating system for Intel 80386 and later processors, originally developed by Intel and now maintained by tenAsys. A quick look at the System Call Reference manual reveals that it uses call gates.






share|improve this answer













iRMX III is a real-time operating system for Intel 80386 and later processors, originally developed by Intel and now maintained by tenAsys. A quick look at the System Call Reference manual reveals that it uses call gates.







share|improve this answer












share|improve this answer



share|improve this answer










answered 12 hours ago









John DallmanJohn Dallman

2,492614




2,492614








  • 2





    I haven't looked at the reference but what has a call gate to do with the task switch? You can use a TSS in a call gate descriptor, sure, but that's not mandatory. Does the document say you have to call a TSS?

    – Margaret Bloom
    10 hours ago











  • A call gate is part of the family of functionality being asked about. I'm not familiar with iRMX beyond skimming manuals today, but the same manual mentions Task State Segments in object files. Intel would expect their own OSes to use their own hardware features.

    – John Dallman
    8 hours ago













  • @JohnDallman "Intel would expect their own OSes to use their own hardware features." - good point!

    – Grigory Rechistov
    6 mins ago














  • 2





    I haven't looked at the reference but what has a call gate to do with the task switch? You can use a TSS in a call gate descriptor, sure, but that's not mandatory. Does the document say you have to call a TSS?

    – Margaret Bloom
    10 hours ago











  • A call gate is part of the family of functionality being asked about. I'm not familiar with iRMX beyond skimming manuals today, but the same manual mentions Task State Segments in object files. Intel would expect their own OSes to use their own hardware features.

    – John Dallman
    8 hours ago













  • @JohnDallman "Intel would expect their own OSes to use their own hardware features." - good point!

    – Grigory Rechistov
    6 mins ago








2




2





I haven't looked at the reference but what has a call gate to do with the task switch? You can use a TSS in a call gate descriptor, sure, but that's not mandatory. Does the document say you have to call a TSS?

– Margaret Bloom
10 hours ago





I haven't looked at the reference but what has a call gate to do with the task switch? You can use a TSS in a call gate descriptor, sure, but that's not mandatory. Does the document say you have to call a TSS?

– Margaret Bloom
10 hours ago













A call gate is part of the family of functionality being asked about. I'm not familiar with iRMX beyond skimming manuals today, but the same manual mentions Task State Segments in object files. Intel would expect their own OSes to use their own hardware features.

– John Dallman
8 hours ago







A call gate is part of the family of functionality being asked about. I'm not familiar with iRMX beyond skimming manuals today, but the same manual mentions Task State Segments in object files. Intel would expect their own OSes to use their own hardware features.

– John Dallman
8 hours ago















@JohnDallman "Intel would expect their own OSes to use their own hardware features." - good point!

– Grigory Rechistov
6 mins ago





@JohnDallman "Intel would expect their own OSes to use their own hardware features." - good point!

– Grigory Rechistov
6 mins ago










Grigory Rechistov is a new contributor. Be nice, and check out our Code of Conduct.










draft saved

draft discarded


















Grigory Rechistov is a new contributor. Be nice, and check out our Code of Conduct.













Grigory Rechistov is a new contributor. Be nice, and check out our Code of Conduct.












Grigory Rechistov is a new contributor. Be nice, and check out our Code of Conduct.
















Thanks for contributing an answer to Retrocomputing Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fretrocomputing.stackexchange.com%2fquestions%2f9177%2fexamples-of-operating-systems-using-hardware-task-switching-of-x86-cpus%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

"Incorrect syntax near the keyword 'ON'. (on update cascade, on delete cascade,)

Alcedinidae

RAC Tourist Trophy