코드와이
[CS 이론] 운영체제(2) 본문
컴퓨터 시스템 구조
: 컴퓨터(CPU + Memory) + I/O device(Disk, 모니터, 키보드, 마우스 ... )
Device Controller
- I/O device Controller
- 각각의 I/O device 들에 붙어있는 작은 CPU
- 제어 정보를 위해 control register, status register 를 갖는다.
- local buffer(device controller 의 작업 공간) 를 갖는다.
- I/O 는 실제 device 와 local buffer 사이에서 일어남
- Device controller 는 I/O 가 끝났을 경우 interrupt 로 CPU 에 그 사실을 알린다.
I/O 수행
- 모든 입출력 명령은 특권 명령
- 사용자 프로그램은 어떻게 I/O를 하는가?
- 시스템콜(System call)
- 사용자 프로그램은 운영체제에게 I/O 요청
- trap을 사용해서 인터럽트 벡터의 특정 위치로 이동
- 제어권이 인터럽트 벡터가 가리키는 인터럽트 서비스 루틴으로 이동
- 올바른 I/O 요청인지 확인 후 I/O 수행
- I/O 완료 시 제어권을 시스템콜 다음 명령으로 옮김
- 시스템콜(System call)
인터럽트(Interrupt)
- 인터럽트 당한 시점의 레지스터와 Program Counter 를 save 한 후 CPU 의 제어를 인터럽트 처리 루틴에 넘긴다.
- Interrupt(하드웨어 인터럽트) : 하드웨어가 발생시킨 인터럽트
- Trap(소프트웨어 인터럽트)
- Exception : 프로그램이 오류를 범한 경우
- System call : 프로그램이 커널 함수를 호출하는 경우
- 인터럽트 벡터 : 해당 인터럽트의 처리 루팀 주소를 가지고 있다.
- 인터럽트 처리 루틴(인터럽트 핸들러) : 해당 인터럽트를 처리하는 커널 함수
Registers
CPU 안에는 Memory 보다 빠르면서 정보를 저장할 수 있는 작은 공간들
mode bit
CPU 에서 실행되는 것이 운영체제인지 사용자 프로그램인지 구분
DMA Controller & memory Controller
CPU 가 Interrupt 를 많이 당하면 빠른 장치임에도 불구하고 비효율적으로 일하게 된다.
DMA(Direct Memory Access) Controller 를 둔다.
DMA Controller 도 메모리에 접근해서 일을 하기 때문에 CPU와의 충돌을 피하기 위해 memory Controller 가 존재한다.
'CS이론 > 운영체제' 카테고리의 다른 글
[CS 이론] 운영체제(3) (0) | 2021.07.24 |
---|---|
[CS 이론] 운영체제(1) (0) | 2021.07.14 |