728x90

 

커널 모드와 유저 모드

- Windows는 동작할 때 커널 모드와 유저 모드 중 한가지 모드로 동작함

- 32비트 시스템 기준 4G 메모리 공간을 할당을 받는데 2G를 OS가 2G를 프로그램이 실행을 위한 공간으로 사용함

    -> OS가 사용하는 영역이 커널 영역, 사용자가 구현한 프로그램 동작시 사용하는 영역이 유저 영역

- OS의 코드도 2G 공간에 메모리 매핑을 시키는 것이고 코드로만 채워지는 것이 아님

- 유저 영역에서 커널 영역으로 접근하려는 것은 위험하기 때문에 커널모드와 유저모드를 나눠서 커널이 실행될 때는 커널 모드가 되어서 메모리의 어디든 접근이 가능하지만 유저의 프로그램이 실행될 때는 유저모드가 되어서 커널 모드의 메모리 영역으로는 접근이 불가능

- 커널 레벨 쓰레드는 커널이 쓰레드의 기능을 제공, 관리하기 때문에 쓰레드 간의 컨텍스트 스위칭이 일어날 때 마다 커널 모드가 되어야 하고 유저 레벨 쓰레드는 프로세스 자체를 관리하는 것이기 때문에 프로세스 안에서 쓰레드 간에 컨텍스트 스위칭이 일어나도 커널 모드로 들어갈 필요가 없음

 

728x90

+ Recent posts