유저 모드(사용자 모드)와 커널 모드
보통 운영체제는 유저 모드와 커널 모드 두 가지 프로세서 접근 모드를 지원한다. 애플리케이션은 유저 모드에서 실행되고 핵심 운영 체제 구성 요소는 커널 모드에서 실행된다. 많은 드라이버가 커널 모드로 실행되지만 일부 드라이버는 유저 모드에서 실행될 수 있다.
사용자가 직접적으로 하드웨어 장치를 제어한다면 큰 문제가 발생할 수 있기 때문에 사용자 애플리케이션은 System Call을 통해 하드웨어 요청이나 중요한 시스템 요청을 진행한다. 요청을 하면 유저 애플리케이션은 유저 모드에서 커널모드로 잠시 전환되었다가 커널모드에서 작업을 실행한 뒤 응답을 유저 애플리케이션으로 반환한다.
유저 모드
- 프라이빗 가상 주소 공간과 프라이빗 핸들 테이블을 애플리케이션에 제공
- 가상 주소 공간이 제한되어 있음
- 애플리케이션 간에 서로 간섭할 수 없고 크래시가 발생시 해당 애플리케이션 하나로 제한
- 코드 작성, 프로세스 실행 명령 등 실행 가능
커널 모드
- 단일 가상 주소 공간을 공유한다. 따라서 커널 모드 드라이버는 다른 드라이버 및 운영 체제 자체와 격리되지 않음
(커널 모드 드라이버가 충돌하면 전체 운영 체제가 충돌함) - 모든 시스템 메모리 등 하드웨어에 직접 접근 가능
참조 사이트
'프로그래밍 > 운영체제' 카테고리의 다른 글
프로세스 제어 블록 (PCB, Process Control Block)란? (8) | 2023.07.20 |
---|---|
프로그램의 실행 (6) | 2023.07.20 |
데이터 전송 명령어(data transfer instruction) 정리 (6) | 2023.06.30 |
데이터 전송 명령이란? (12) | 2023.06.28 |
메모리 구조(Memory Structure)에 대해서 (0) | 2023.02.17 |
댓글