DEVICE DRIVERS 0 Device Driver:Device-specific code in the kernel that interacts directly with the device hardware ● Supports a standard,internal interface Same kernel I/O system can interact easily with different device drivers e Special device-specific configuration supported with the ioct1() system call o Device Drivers typically divided into two pieces: Top half:accessed in call path from system calls o implements a set of standard,cross-device calls like open ()close () read(),write(),ioctl(),strategy() o This is the kernel's interface to the device driver o Top half will start I/O to device,may put thread to sleep until finished Bottom half:run as interrupt routine o Gets input or transfers next block of output o May wake sleeping threads if I/O now completeDEVICE DRIVERS Device Driver: Device-specific code in the kernel that interacts directly with the device hardware Supports a standard, internal interface Same kernel I/O system can interact easily with different device drivers Special device-specific configuration supported with the ioctl() system call Device Drivers typically divided into two pieces: Top half: accessed in call path from system calls implements a set of standard, cross-device calls like open(), close(), read(), write(), ioctl(), strategy() This is the kernel’s interface to the device driver Top half will start I/O to device, may put thread to sleep until finished Bottom half: run as interrupt routine Gets input or transfers next block of output May wake sleeping threads if I/O now complete