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 : 어플리케이션
'IT이론 > 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 |