OS - Introduction

Dual Mode of Processors

- OS는 Code data형태로 존재하고, 프로세스는 필요하면 시스템 호출을 통해 Interrupt를 통해 OS code를 실행하고 돌아간다!

   -> OS는 프로세스가 아니고, 코드 데이터 형태로 Library처럼 어딘가에 존재하며 프로세스가 언제든 호출할수있도록 준비된 형태로 존재한다.

- 사용자 프로그램은 직접 입출력장치를 구동하면 안되며 유저 모드에서 실행한다. 운영체제 코드는 입출력 장치를 실행할 수 있어야 하므로 CPU의 모드는 OS코드 실행시 자동으로 커널모드로 바뀐다. 이후 interrupt return을 하면 다시 유저 모드로 바뀌게 된다.

- 커널 모드일때만 특권 명령(입출력, 메모리 영역 조절, 프로세서 상태 변경 등)을 실행할 수 있도록 하드웨어적으로 CPU 설계가 되어있다.

Timer interrupt가 주기적으로 수행되며 사용자 프로그램 실행 시 유저모드, OS 코드 실행시 커널모드로 바뀐다.

Buses

예전 PC에선 ISA버스 하나만 존재하였다. 속도가 빨라지며 PCI 버스 추가되었으며 전용 메모리/캐시 버스도 추가되었다. 각 버스의 속도는 다르기 때문에 맞춰주기 위해 bridge회로를 추가하여 사용한다.

System Calls

trap to the kernal : interrupt를 걺, dispatch: interrupt service routine, interrupt return하면 돌아감

시스템 호출을 할 때 interrupt를 건다!

'cs지식 > 운영체제' 카테고리의 다른 글

OS - 04. File systems (2)  (0) 2022.06.28
OS - 04. File systems (1)  (0) 2022.06.28
OS - 03. Memory Management  (0) 2022.06.28
OS - 02. Processes and Threads (2)  (0) 2022.06.13
OS - 02. Processes and Threads (1)  (0) 2022.06.07