본문 바로가기

Computer Science/os

유저모드와 커널모드

OS는 수퍼바이저 모드, 유저 모드, OS 모드, 통신 모드의 4가지 모드가 있다. 

유사하게, 프로세스는 CPU의 유저모드와 커널모드에서 동작할 수  있다.

그래서 OS의 유저 모드와 CPU의 유저 모드가 혼동될 수 있다.

여기서 내가 알고 싶은건 CPU의 유저 모드임.

 

 

 

붉은 색 부분이 커널모드, 초록색 부분이 유저 모드를 보여준다.

(win7에서 관리자로 로그인한 경우임)

 

유저 모드

 - 임의로 실행시킨 특정 프로그램 (win32 API로 만든)을 말한다.

 - MS 프린터, MS 워드 등

 - 유저 모드는 사용이 제한적이다.

 - 윈도우는 프로세서의 메모리 보호 서비스를 사용하여 악성 프로그램이 다른 시스템을 방해하는 것을  예방한다.

 - 다시 말해, 사용자는 커널에 의해 사용되는 메모리 영역에는 접근할 수 없다.

 

 

커널 모드

 - 커널 모드 프로그램은 백그라운드에서 실행된다.

 - 프린터 드라이버나 디스플레이 드라이버, 키보드, 마우스 같은 디바이스 드라이버 

 - 컴퓨터 부팅을 하면,  윈도우가 커널을 호출한다.

 -  메인 커널 모드 프로그램은 모든 다른 프로그램이 수행하는 것을 허락한다.

 - 다시 말해, 사용자는 직접 커널 데이터나 커널 프로그램에 접근 할 수 있다.

 

win2k 아키텍쳐 예

 

 

왜 CPU 모드를 구별했을까?

 

 - 컴퓨터 보안과 시스템 보호를 위해

 - 미숙한 사용자가 중요한 파일을 삭제한다면..

 - 의도적으로 CPU를 무한루프에 빠지게 만드는 악성 코드에 감염된다면..

 - 이를 방지하기 위해 모드를 구별함.

 

인텔의 멀티링 (Multiple Ring)

 

 - OS에서 사용되는 코드와 데이터를 놓는 그룹을 어플리케이션의 코드와 데이터가 들어가는 부분과 분리하여 메모리 배치

 - 각 그룹들에게 0 ~ 3 의 특권 레벨 값을 줌.

 - OS그룹은 신뢰성이 높은 루틴과 시스템 데이터가 속하므로 특권 레벨

 - 어플리케이션 그룹은 낮은 특권 그룹 부여함.

 - 각 레벨별로 엑세스 권한을 달리함.

 

 

 

 - Ring 0 : OS 커널

 - Ring 1, 2 : OS 서비스

 - Ring 3 : 어플리케이션  

'Computer Science > os' 카테고리의 다른 글

임계구역 문제  (0) 2014.01.24
Thread의 Def 와 Coding  (0) 2014.01.24
Atomic Operation 이란?  (1) 2014.01.24
대칭형 다중 처리 (SMP)  (0) 2014.01.24
[ Error LNK2019 ] Link Error 발생시 확인해볼 것들  (12) 2014.01.23