mondegreen

(230511) 운영체제 3강. System Struncture & Program Execution 1 본문

Computer Science/운영체제

(230511) 운영체제 3강. System Struncture & Program Execution 1

앙갱 2023. 5. 13. 18:32
반응형

Mode Bit

사용자 프로그램의 잘못된 수행으로 다른 프로그램 및 운영체제에 피해가 가지 않도록 하기 위핸 보호 장치가 필요함에 따라 만들어졌다. 이를 통해 하드웨어 적으로 두 가지 모드의 operation을 지원하는데

 

0: 모니터모드, 커널모드, 시스템모드: 운영체제가 CPU를 가지고 있는 상태로서 OS코드를 수행하는 상태이다.

1: 사용자 모드: 사용자의 프로그램을 수행하는 상태이다.

 

보안 이슈가 발생할 수 있는 중요한 명령어는 반드시 OS 모드(모니터 모드)에서만 수행 가능한 특권명령이다.

인터럽트나 Exception(사용자 프로그램이 할 수 없는 요청을 했다든지 등) 발생히 하드웨어가 mode bit을 0으로 바꾼다. 그리고 사용자 프로그램에게 CPU를 넘기기 전에 mode bit을 1로 설정한다.

 

Timer

정해진 시간이 경과하면 운영체제에게 CPU 제어권이 넘어갈 수 있도록 인터럽트를 발생시킨다.

- 타이머는 매 클럭 틱 때마다 1씩 감소된다.

- 타이머 값이 0이되면 타이머 인터럽트를 발생시킨다.

- CPU를 특정 프로그램이 독점하는 것으로부터 보호한다.

 

타이머는 CPU를 효율적으로 사용하기 위해 즉, time sharing을 구현하기 위해 이용되며 현재 시간을 계산하기 윙해서도 사용된다. 

 

 

Device Controller (장치 제어기)  ; 하드웨어

I/O device controller

- 해당 I/O 장치 유형을 관리하는 일종의 작은 CPU이며 제어 정보를 위해 control register, status register를 가지며 데이터를 저장하는 local buffer를 가진다.

- 입출력은 실제 device와 local buffer 사이에서 발생한다.

 

입출력이 끝났을 경우  Device controller가  CPU에 interrupt를 발생시켜 그 사실을 알린다.

 

참고. device driver(장치 구동기)는 OS 코드 중 각 장치별 처리 루틴를 가지고 있는 것으로서 소프트웨어에 속한다.

 

입출력(I/O) 수행

모든 입출력 명령은 특권 명령이기 때문에 사용자 프로그램이 수행할 수 없고 시스템 콜을 통해 운영체제로 CPU제어권을 넘겨 요청해야 한다.

- 시스템 콜 -> trap을 사용해여 인터럽트 벡터의 특정 위치로 이동 -> 제어권이 인터럽트 벡터가 가리키는 인터럽트 서비스 루틴으로 이동 -> 올바른 I/O요청인지 확인 후 I/O수행 -> I/O 완료 시 제어권을 시스템콜 다음 명령으로 옮긴다.

 

 

인터럽트

인터럽트 당한 시점의 레지스터와 program counter를 저장한 후 CPU의 제어를 인터럽트 처리 루틴에 넘긴다.

인터럽트의 정의

1) 인터럽트: 하드웨어 인터럽트로서 하드웨어가 발생시킨 것

2) Trap: 소프트웨어 인터럽트로서 Exception이나 SystemCall에 의해 발생하는 것

* Exception: 프로그램이 오류를 범한 경우

* SystemCall: 프로그램이 커널 함수를 호출하는 경우인데 사용자 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출하는 것이다.

반응형