gaf
User
 Platinum Osdever
| Posts: 153 |  | Karma: 10
|
Re: Brand new Articles section - 2005/05/26 08:22
I've read the article and really like it because it's brief and yet pretty complete. There are however some sections in the text that might be misunderstood by a reader that isn't yet very experienced with os dev:
1) In the paragraph (#6+7) that explain what a process is, you write that threads can have an "own local context in addition to the process's context" which might also be interpreted as "threads have their own address-space". It might therefore be usefull to further divide the term context into address-space and register state (->thread).
Process: task + OS data (all kind of handlers: file, wnd, ...) Task: context (->address-space) + threads that run in this context Thread: state of the cpu (cpu regs, kernel structs like TCBs) address-space: context that a thread runs in (mapped memory pages and I/O ports)
2) In paragraph #10 you state that "the same amount of work gets done in both (multiprocessor, ht) systems , but the HyperThreaded system uses a fraction of the resources and has a fraction of the waste of the SMP system". If you say so you must mention that it's only true when the tasks running on the two processors always execute instructions that use different parts of the processor (eg: proc1 - mem, proc2- add). Since this is never the case in real-life, the processor can't always execute two instructions at one and a HT system thus can't perform as good as a real multiprocessor. (You mentioned this in the following paragraph, but IMHO it's not totaly clear that these two belong together)
3) What you describe in paragraph #12 is only half of the story. In order to attain the best performance, the applications themselves also have to be rewritten to do their calculations in several threads that can then be scheduled on both processors. This is especially important for CPU demanding applications like games that normally run more or less alone on the system.
4) Paragraph #14: SMP stands for "Symetric Multiprocessor" and not "Symetric Multiprocessing". I know that this doesn't sound like a very important issue, but it does make a difference: - Multiprocessing is the execution of several programms at the "same" time (m$: Multitasking) - Multiprocessor systems have several processors that are all on the same machine, using the same ressources (eg mem, disk, ..)
5) Paragraph #16 is somewhat misleading because you still need a SMP system to run a HT processor. AFAIK there are also some special instructions (monitor?) that allow to optimize a HT processor's performace and that might have to be added to the SMP code.
regards, gaf
|