infatuation

Operating system 제 2 장 입출력 시스템 및 보호 본문

Study/OS&Linux

Operating system 제 2 장 입출력 시스템 및 보호

화령 2008. 9. 9. 13:23
제 2 장 입출력 시스템 및 보호

사용자 삽입 이미지


입출력 시스템의 구성

운영체제 커널에는 device driver들이 있는데, 응용 프로그램과 device driver 사이의 인터페이스로서 API ( application programmer's interface )가 존재한다.  device driver는 하드웨어 인터페이스를 통해서 제어기에 연결되고 제어기에 입출력장치가 연결된다. 각 장치는 device driver를 사용하여 컴퓨터의 주소와 자료 버스에 연결된다.
이러한 구성에서 다양한 입출력장치와 이에 따르는 여러 가지 제어기가 존재하는데, 우선적으로 결정되어야 할 부분은 구성 요소 사이의 인터페이스이다. 운영 체제에서는 하드웨어에 종속적인 여러 구체적인 요소들을 프로그래머에게 숨기고, 가능한 한 공통적인 인터페이스를 제공하려는 노력을 한다. 따라서 응용 프로그램에게 제공되는 인터페이스는 프로그래머가 추상적인 수준에서 장치를 할당하기 위해서 open/close 명령을 사용하고 정보의 이전을 위해서 read/write 명령을 사용하도록 하는 것이 보통이다.

- Device driver는 register의 상태확인을 위해 많은 loop를 돈다. 그러나  CPU가 아무리 빨라도 키보드같은 device가 느리면 낭비가 발생한다.

입력인식 ( 명령만 해놓고 CPU는 다른 process를 실행)
입력이 끝나면 device controller가 CPU에게 interrupt signal을 전송한다.
         ( 전화오는거랑 똑같음 즉, 언제 signal일 발생할 지 모른다. )
-> CPU는 하던 프로세스를 멈추고 interrupt를 받는다.

* Programmed I/O = Polling(계속 물어보는 Loop) = Busy waiting loop
  이는 CPU의 낭비가 심하기 때문에 interrupt I/O를 한다. (I/O device와 cpu의 속도차이때문에 낭비발생)


* Interrupt의 종류 <- from- Power supply, clock, disk controller
[HW적 우선순위 : interrupt가 2개 이상의 device에서 발생할 경우 ]
1. Power fail interrupt
2. Machine Malfunction : 하드웨어적 component가 고장났을 경우
3. Real-time clock : 기계이상이 없을 때 우선순위가 젤 높음.
   1/100 or 1/1000 sec로 interrupt 발생
4. I/O : disk, ethernet

* clock interrupt controller 주기적으로 일어나는 clock 관리
어떤프로그램이 수행하다가 interrupt가 발생하면 interrupt disable상태가 된다.
       -interrupt disable 상태 : CPU가 반응을 하지 않는 상태, 즉, interrupt는 발생하나 처리가 지연되는 상태
커널단으로 들어오게 되면 해당 interrupt handler는 다음과 같은 일을 수행한다
1. context saving ( 레지스터 내용) : 함수호출과 같은 원리
2 . interrupt mask set : 우선순위를 binary로 표시
3. interrupt 처리
4. return from interrupt ( context restore )



I/O 요구 방식
1. 동기 입출력 (synchronous I/O) : I/O 요구 프로세스틑 입출력 완료 시까지 대기(blocked)
2. 비동기 입출력 : I/O 요구 프로세스틑 입출력 완료 시까지 대기하지 않고 즉시 return, 다른 작업 후에 다시 test
         

'Study > OS&Linux' 카테고리의 다른 글

우분투 한글 설정  (0) 2008.09.12
우분투 커널컴파일하기  (0) 2008.09.10
Ubuntu 설치  (0) 2008.09.10
Operating System Ch.1  (0) 2008.09.02