엔지니어가 되고 싶은 공돌이

29. I/O System(3) 본문

Computer Science/Operating System

29. I/O System(3)

Geca 2021. 5. 27. 02:43

14. 7 I/O Software Layers

<Goal of I/O software>

- device independence: device마다 코드가 달리지지 않으면 좋겠다.

- uniform naming

- error handling

 

<I/O Software Layers>

<Device Drivers>

- 정의: I/O devicecontrol하는 장치별 코드.

- device-independent I/O softwareinterrupt handler 사이에서 interacting

- 아주 잘 정의된 device format이 있다.

- device drivers 구현

1. 커널과 정적으로 연결.

2. 부팅 시 선택적으로 시스템에 로드.

3. 실행 중 시스템에 동적으로 로드.

 

- 운영체제가 망가지는 건 거의 대부분 device driver 때문에 발생한다.

드라이버는 windows XP 충돌의 85%를 차지하며, linux에서는 kernel 보다 7배 더 버그가 많다.

- 안정성과 신뢰성은 매우 중요한 문제이지만, 아직도 해결되지 못한 문제이다.

- linux kernel code70%를 차지.

 

<device independent I/O SW>

- 정의: device driver를 위한 uniform 인터페이스

- unix에서 device특수 파일로 처리. open() close()와 같은 system call로 액세스.

major device number: device 종류/minor device number: device 이름

minor device number가 매개변수를 통해 driver에게 전달된다.

- 작업 수행: error reporting(사용자에게 오류 보고), handling error(일정횟수 재시도, 오류 무시, 프로세스 죽이기, error codesystem call)

 

<user space I/O SW>

- I/O library: fopen(), fgets(), fputs()

'Computer Science > Operating System' 카테고리의 다른 글

31. Storage System(2) - disk scheduling  (0) 2021.05.31
30. Storage System(1)  (0) 2021.05.29
28. I/O System(2)  (0) 2021.05.26
27. I/O System (1)  (0) 2021.05.25
26. Virtual Memory - Advanced VM Functionality  (0) 2021.05.24
Comments