0
$\begingroup$

In my Computer Systems (first year) module as part of my EE degree I'm studying virtual machines, memory management, hardware abstraction etc. I have come across the information that the OS creates and uses a few virtual machines to provide hardware and I/O abstraction.

I assume that there are multiple VMs doing different tasks, but how are they organised?

Are they one VM per task, e.g. one for disk I/O and the filesystem, one for human interface devices, etc; or are they all general purpose and are one VM per process?

Many thanks, Ben Adamson

$\endgroup$
0
$\begingroup$

The NT kernel does have sub-systems or did for DOS, Win32, POSIX, and OS/2. You might consider them to be a VM layer in that they are instantiated per process and provides a compatible binary API to the process so that it may run. Each of these sub-systems only maps the binary API for the process to the API of the kernel and as such they don't do much other than that. State pertaining to a sub-system is kept in the process's context.

See chapter 5 in Inside Windows NT (Helen Custer, 1993) for more.

$\endgroup$
  • $\begingroup$ Thank you - for my course I'm reading "Introduction to Operating Systems - Behind the Desktop", it's a very good book but didn't have much detail on this bit. $\endgroup$ – BenAdamson Oct 16 '13 at 15:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.