Chapter 2 System Structure(1)
- Mode bit -
사용자 프로그램의 잘못된 수행으로 다른 프로그램 및 운영체제에 피해가 가지 않도록 보호 장치가 필요하다.
Mode bit을 통해 하드웨어적으로 두 가지 모드의 Operation을 지원한다.
사용자 모드 (1): 사용자 프로그램 수행
모니터 모드 (0): OS 코드 수행 (모니터 모드 = 커널 모드 = 시스템 모드)
* 보안을 위협할 수 있는 중요한 명령어는 모니터 모드에서만 수행 가능한 '특권명령'으로 규정
* Interrupt나 Exception 발생시, 하드웨어가 Mode bit을 0으로 바꾼다
* 사용자에게 CPU를 넘기기 전, Mode bit을 1로 설정한다
- Timer -
*정해진 시간이 흐른 뒤 운영체제에게 제어권이 넘어가도록 Interrupt를 발생시킨다.
*타이머의 매 클럭 마다 1씩 감소한다
*타이머 값이 0이 되면 타이머 인터럽트가 발생한다
*특정 프로그램의 CPU 독점을 막는다
Time Sharing 구현 위해 널리 사용됨
현재 시간 계산 용도로도 사용됨
- I/O Device Controller -
* 해당 I/O 장치 유형을 관리하는 일종의 작은 CPU
* 제어 정보를 위해 Control Register, Status Register를 가짐
* Local buffer를 가짐 (일종의 Data Register)
I/O는 실제 장치(Device)와 Local Buffer 사이에서 일어난다. Device Controller는 I/O가 끝났을 경우에
Interrupt로 CPU에 그 사실을 알린다.
Device Driver -> Software
: OS 코드 중 각 장치별 처리 루틴
Device Controller -> Hardware
: 각 장치를 통제하는 일종의 CPU
- I/O의 수행 -
* 모든 I/O 명령은 특권명령이다
사용자 프로그램의 I/O 방법
-> 시스템 콜(System Call): 사용자 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출하는 행위
* 사용자 프로그램은 운영체제에 I/O 요청
* Trap 사용하여 Interrupt Vector의 특정 위치로 이동
* 제어권이 Interrupt Vector가 가리키는 Interrupt Service Routine으로 이동
* 올바른 I/O 요청인지 확인 후 수행
* I/O 완료 시, 제어권을 System Call 다음 명령으로 옮긴다 -> Hardware Interrupt
- Interrupt -
* Interrupt 된 시점의 Register와 Program Counter를 저장한 뒤 CPU의 제어를 Interrupt Service Routine에 넘긴다
Interrupt의 의미
* Interrupt(Hardware Interrupt) => 일반적인 Interrupt의 의미
-> Hardware가 발생시킨 Interrupt
* Trap(Software Interrupt)
-> Exception: 프로그램이 오류를 범한 경우
-> System Call: 프로그램이 커널 함수를 호출하는 경우
*Interrupt Vector: 해당 Interrupt의 처리 주소를 갖고 있다
*Interrupt Service Routine: 해당 Interrupt를 처리하는 커널 함수
'Programming > Operating System' 카테고리의 다른 글
운영체제 정리 3 (0) | 2020.09.22 |
---|---|
운영체제 정리 1 (2) | 2020.07.22 |