diff options
| author | mo khan <mo@mokhan.ca> | 2021-05-22 19:45:59 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2021-05-22 19:45:59 -0600 |
| commit | f045e033b81ad8214cd7e7ea953266ed4c29bbf6 (patch) | |
| tree | 1377c7bc7251b6d3998b6c0f81549ac415ce81e1 | |
| parent | 444d7c4c16652c833709157bdddbefb62fbfbc07 (diff) | |
start notes on I/O
| -rw-r--r-- | doc/13.md | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/doc/13.md b/doc/13.md new file mode 100644 index 0000000..139cae8 --- /dev/null +++ b/doc/13.md @@ -0,0 +1,69 @@ +# I/O Systems + +computer jobs: + +* I/O +* processing + + +I/O devices vary widely in their function and speed (e.g. mouse, hard disk). + +I/O subsystem of the kernel, separates the rest of the kernel from the complexities of managing I/O devices. + +Device drivers present a uniform device-access interface to the I/O subsystem, much as system calls provide a standard +interface between the application and the operating system. + + +## I/O Hardware + +Devices: + +* disks, tapes +* network connections, bluetooth +* screen, keyboard, mouse, audio in and out. + +A device communicates with a computer system by sending signals over a cable or even through the air. + +The device communicates with the machine via a connection point, or port. +If devices share a common set of wires the connection is called a bus. +A daisy chain is when device A has a cable that plugs into device B and B connects to device C and device C plugs into a port on the computer. + + +PCI bus (the common PC system bus) connects the processor-memory subsystem to fast devices. +An expansion bus connects slow devices like a keyboard and serial and USB ports. +Disks can connect to a Small Computer System Interface (SCSI) bus that plugs into a SCSI controller. +PCI Express (PCIe) bus has a throughput of up to 16 GB per second. +HyperTransport has a throughput of 25 GB per second. + +A controller is a collection of electronics that can operate a port, a bus, or a device. + +```plaintext + SCSI Bus + ||---(disk) + || + ||---(disk) + ----------- ------------ || + | monitor | | processor | ||---(disk) + ----------- ------------ --------- || + | |-------------| cache | ||---(disk) + -------------- ----------------- --------- || + | graphics | | bridge/memory | ---------- ------------------- + | controller | | controller |--| memory | | SCSI controller | + ------------- ----------------- ---------- ------------------- + | | | + -------------------------------------------------------------------- +() PCI bus ) + -------------------------------------------------------------------- + | | + ----------------------- ----------------- ------------ + | IDE disk controller | | expansion bus | | keyboard | + ----------------------- | interface | ------------ + | | ----------------- | + (disk) (disk) | | + | | ()===========================) + (disk) (disk) | | + ------------ ---------- + | parallel | | serial | + | port | | port | + ------------ ---------- +``` |
