Neal Christiansen - Inside File System Filter, part II
Manip wrote:I am still trying to
get my head around concurrency and this only confused me
more... So yeah...
@ MarkPerris --
Applications can have more threads than are available in hardware. There are plenty of applications that benefit from multithreading even on single-core/non-HT systems. Servers spin up new threads for each client request. Many Windows applications use seperate
threads so that long-running operations don't affect GUI responsiveness.
On a single-core/single hardware thread CPU, the CPU runs one thread at a time, and switches between the available threads after a certain amount of time. Even though only one thread is running at any given time, performance can be gained because execution
time is yielded to other operations rather than having to wait for each operation to fully complete (could take a long time) before starting the next operation.
Using this same multithreaded application on a system with multiple hardware threads (some combination of multi-core/multi-cpu, etc.), can provide further performance benefits to the same, unchanged, multithreaded application. Instead of having to run one thread
at a time, switching between threads at a given interval, a multi-core/CPU system can run each of those threads in parallel -- one running on each core/CPU simultaneously.
There can be some architectural details that may require extra tuning to maximize performance on a given architecture, but the above holds true for the general case.
Minh wrote:"Bob" is making a comeback? All right! I remember reading that Melinda Gates was somehow involved with "Bob". Is that right? The phone numbers on a black board is also very funny. I guess that's where Windows 3 gets its task scheduler from.
Beer28 wrote:I would really like to see the NT kernel open sourced if at all possible.
Beer28 wrote:IOn linux on x86 user2kernel calls for IO to devices through the kernel are done by calling a CPU interupt instruction 0x80 with type of kernel sys function in eax, then the params for the kernel function in ebx-edx like you would do a fastcall from VC++, except with an INT instruction, not a call/ret to the start addy of the function,
Does it work the same on NT?
Beer28 wrote:Is it always passed through the registers or can you pass stuff with pointers to memory from user2kernel and back without drawing an access violation(like maybe stack address space)?
Once it passes the context switch to kernel mode the page protection is gone at ring 0 right? It's up to the kernel exported function to make sure you're not giving it a bad user space address(passed in the ebx-edx register) in NT also?
Dave P is a great raconteur and these vids are pure pleasure.
A few demurs:
POSIX meant more than just software portability (Write Once Run Anywhere) . It was the feds way of specifying UNIX w/o using the protected brandname belonging to AT&T at the time. POSIX promised that buyers of hardware systems would have a choice of vendors
as long as its specifications were followed as a guideline. US DOD made POSIX certification mandatory for hardware acquisitions.
People seem to think UNIX started in 1973. In fact UNIX started in 1969 (space travel game, PDP-7 and all that). In 1973 Ken Thompson introduced the UNIX timesharing system at an ACM Symposium on Operating Systems. It was Version 3 at the time.
---
I was privileged to see Dave Cutler present NT architecture in 1992 at an operating systems workshop by Usenix in Seattle. That crowd was NOT nice to him. I reckon he had a thick skin.
It was after that workshop that I began to wonder if UNIX would really be the once and future system.
ES
Is the video unavailable to anyone else? It doesn't seem to be working for me:
"Media Failure. Try reloading the page or visiting the main site for assistance."
great series of discussions with dave probert. he is an amazing guy with a unique (well, almost
) perspective, having a lot of experience on kernel level on unix, as well as on windows nt. like he says, these are the most important systems out there -
vms/wnt and unix/linux, and it's great to be able to talk to or listen to somebody who can really give a deep insight into that, with none of the FUD or subjectivity that is rampant out there. i am in no position to judge what he says, but happen to agree
with most of the things he says. unix is 40 years old, vms around 30, linux about 20 and winnt around 15 (broadly speaking, as platforms), and yet vms and wnt have done a better job in the it industry, because those systems did not start out as hobbies, but
as well designed systems that had clear targets and strategies behind them etc. the history and philosophy of operating systems is a fascinating subject, and it's interesting to see how and why a lot of the things we are dealing with today as consumers or
it professionals have their roots into the way developers approached these things at the outset etc.