Examples of operating systems using hardware task switching of x86 CPUs
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
New contributor
add a comment |
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
New contributor
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
add a comment |
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
New contributor
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
386 x86 multitasking
New contributor
New contributor
New contributor
asked 12 hours ago
Grigory RechistovGrigory Rechistov
1312
1312
New contributor
New contributor
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
add a comment |
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
add a comment |
1 Answer
1
active
oldest
votes
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.
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
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
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
add a comment |
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.
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
add a comment |
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.
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.
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
add a comment |
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
add a comment |
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.
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
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