mirror of
https://github.com/jackyzha0/quartz.git
synced 2025-12-27 14:54:05 -06:00
vault backup: 2022-09-22 12:09:01
This commit is contained in:
parent
43af93eae1
commit
58d82b6d6a
@ -4,6 +4,9 @@ aliases:
|
|||||||
tags:
|
tags:
|
||||||
- cosc204
|
- cosc204
|
||||||
- lecture
|
- lecture
|
||||||
|
sr-due: 2022-09-25
|
||||||
|
sr-interval: 3
|
||||||
|
sr-ease: 250
|
||||||
---
|
---
|
||||||
|
|
||||||
# what is a file (LINUX)
|
# what is a file (LINUX)
|
||||||
|
|||||||
47
content/notes/16-device-drivers.md
Normal file
47
content/notes/16-device-drivers.md
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
---
|
||||||
|
title: "16-device-drivers"
|
||||||
|
aliases:
|
||||||
|
tags:
|
||||||
|
- lecture
|
||||||
|
- cosc204
|
||||||
|
---
|
||||||
|
|
||||||
|
# Device controller and driver
|
||||||
|
driver Defn: a special kernel module that contrls the operations of a device with the device specific information
|
||||||
|
controller Defn: a hardware unit on a device that can know and control a devices status or behaviour, which communicates with the CPU via a driver
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
# Types of IO devices
|
||||||
|
- character stream vs block
|
||||||
|
- swqeuential vs random access
|
||||||
|
- synchronous vs async
|
||||||
|
- sharable or dedicated
|
||||||
|
|
||||||
|
OS provides a consistent interface for them in the `/dev` folder (unix systems). e.g., ramdisk device is name `/dev/memdrv`. each device has a file under `/dev` that can be handled with file operations read()/write()
|
||||||
|
|
||||||
|
## block devices
|
||||||
|
commands (sent from device driver to device controller)
|
||||||
|
- read block
|
||||||
|
- write block
|
||||||
|
- seek block (for random access block devices)
|
||||||
|
|
||||||
|
the sequence of read/write requests can (should) be optimized
|
||||||
|
|
||||||
|
## character devices
|
||||||
|
- commands
|
||||||
|
- get char
|
||||||
|
- put char
|
||||||
|
|
||||||
|
also support buffering (accepting keyboard input line by line) and editing of buffers (e.g., spcial treatement of backspace character)
|
||||||
|
|
||||||
|
# IO models
|
||||||
|
|
||||||
|
IO system calls use different IO models
|
||||||
|
- blocking - when a proccess needs IO input it waits to recieve it before c
|
||||||
|
- non blocking
|
||||||
|
- async
|
||||||
|
|
||||||
|
# IO scheduling and buffering
|
||||||
|
|
||||||
|
# UI for IO devices
|
||||||
@ -37,3 +37,4 @@ No final exam
|
|||||||
- [13-pen-testing-2](notes/13-pen-testing-2.md)
|
- [13-pen-testing-2](notes/13-pen-testing-2.md)
|
||||||
- [15-policies-standards-practices](notes/15-policies-standards-practices.md)
|
- [15-policies-standards-practices](notes/15-policies-standards-practices.md)
|
||||||
- [16-cloud-security](notes/16-cloud-security.md)
|
- [16-cloud-security](notes/16-cloud-security.md)
|
||||||
|
- [17-ML-in-IA-1](notes/17-ML-in-IA-1.md)
|
||||||
@ -36,6 +36,7 @@ tags:
|
|||||||
- [10-routes-controllers](notes/10-routes-controllers.md)
|
- [10-routes-controllers](notes/10-routes-controllers.md)
|
||||||
- [11-view-templates](notes/11-view-templates.md)
|
- [11-view-templates](notes/11-view-templates.md)
|
||||||
- [12-ethics-and-computing](notes/12-ethics-and-computing.md)
|
- [12-ethics-and-computing](notes/12-ethics-and-computing.md)
|
||||||
|
- [13-databases-1](notes/13-databases-1.md)
|
||||||
|
|
||||||
# Archive
|
# Archive
|
||||||
|
|
||||||
|
|||||||
@ -43,7 +43,8 @@ tags:
|
|||||||
- [12-pointers-to-routines](notes/12-pointers-to-routines.md)
|
- [12-pointers-to-routines](notes/12-pointers-to-routines.md)
|
||||||
- [13-OS-intro](notes/13-OS-intro.md)
|
- [13-OS-intro](notes/13-OS-intro.md)
|
||||||
- [14-processes-and-system-calls](notes/14-processes-and-system-calls.md)
|
- [14-processes-and-system-calls](notes/14-processes-and-system-calls.md)
|
||||||
|
- [15-file-systems](notes/15-file-systems.md)
|
||||||
|
- [16-device-drivers](notes/16-device-drivers.md)
|
||||||
# Archive
|
# Archive
|
||||||
|
|
||||||
# Info
|
# Info
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user