개발스토리
프로세서_2 본문
이번에는 프로세서의 구조를 통해 프로세서 동작을 살펴보자.
PC는 Program Counter Register로 숫자 값을 지니고 주소를 나타낸다. 만약 pc값이 100이라면, 메모리 100번지를 찾아간다.
IR은 Instruction register로 명령어 레지스터이다. pc값이 100이라서 메모리 100번지를 찾아간다면, 찾아가서 100번지 내용을 IR로 읽어오게 된다.
( ALU, Register, Bus 등 구조가 뭔지 모른다면 프로세서_1을 보고오자.)
PC레지스터는 실행된 후 자동으로 숫자가 증가한다.
< 프로세서의 모드 >
이번에는 프로세서의 어떠한 모드들이 있는 지 살펴보자.
프로세서 모드는 권한 수준(privilege level)이라고도 한다. 또한 모드에 따라 프로세서가 실행할 수 있는 명령어들이 다르다.
일반적으로 상태 레지스터에 모드 비트가 포함된다. ( 모드 비트 0 : 커널 모드 , 모드 비트 1 : 사용자 모드 )
이제 모드의 종류가 뭐가 있는지 보자.
1. 사용자 모드 (user mode) : 제한된 명령어만 실행할 수 있는 상태이다.
2. 커널 모드 (kernel mode, privilege mode, supervisor mode) : 제한 없이 모든 명령어를 실행할 수 있는 상태이다.
그렇다면 모드는 왜 사용하는 것일까??
1. 응용 프로그램이 수행될 때는 프로세서의 모드를 사용자 모드로 설정하여 제한된 명령어만 실행하게 한다. 시스템 보호를 위해서 이다.
2. 운영체제가 수행될 때는 프로세서의 모드를 커널 모드로 설정하여 제한 없는 권한으로 실행한다.
즉, 응용프로그램 수행 : 사용자 모드 , 운영체제 수행 : 커널모드
< 프로세서 명령어 >
기계어라고 한다.
- 명령어 종류
1. 데이터 처리 명령어 : add, subtract, multiply, shift, compare, etc
2. 데이터 이동 명령어 : 메모리에서 메모리 (move), 메모리에서 레지스터(load), 레지스터에서 메모리 (store) , etc
3. 실행 제어 명령어 : brach, conditional branch 등
- jmp 명령어라고도한다. // 기계어 실행은 순차적 실행인데 순차적 실행이 아닌 다른 곳을 실행시키기 원할 때 사용한다.
4. 특수 명령어 : 프로세서 모드 변경, 입출력 명령어 등
- 운영체제 만이 할 수 있다.
여기서 생각해보자. 커널모드일 때와 사용자모드일 때 사용가능한 명령어의 차이가 있다고 위에서 말했다.
위 4종류의 명령어 중 커널에서는 1~4 명령어 모두 수행이 가능하다.
하지만, 사용자 모드에서는 4를 제외한 1~3까지의 명령어 수행이 가능하다.
'Computer Science > 운영체제' 카테고리의 다른 글
메모리 (0) | 2020.06.30 |
---|---|
버스(Bus) (0) | 2020.06.30 |
프로세서_1 (0) | 2020.06.30 |
운영체제의 주요 기능 (0) | 2020.06.30 |
운영체제란 무엇일까? (0) | 2020.06.30 |