날짜 : 2023-12-05 10:09
주제 :
개요
User Mode (사용자 모드)
-
역할과 제한성
- 사용자 모드는 운영 체제의 보호된 영역 밖에서 실행됩니다. 이는 운영 체제의 핵심 부분을 보호하기 위한 조치입니다.
- 프로그램은 시스템의 핵심 하드웨어 자원에 직접 접근할 수 없습니다. 예를 들어, 메모리 관리, 파일 시스템 접근, 네트워크 커뮤니케이션 등은 커널이 관리합니다.
-
보안 메커니즘
- 운영 체제는 사용자 모드에서 실행되는 응용 프로그램이 커널 모드로의 무단 전환을 시도하는 것을 막습니다.
- 잘못된 메모리 접근이나 위험한 명령어 실행 등의 시도가 발생하면, 운영 체제는 프로그램을 중단시키거나 예외 처리를 합니다.
-
일반적인 사용 예
- 대부분의 응용 프로그램은 사용자 모드에서 실행됩니다. 예를 들어, 웹 브라우저, 문서 편집기, 게임 등입니다.
Kernel Mode (커널 모드)
-
전체 접근 권한
- 커널 모드에서 운영 체제는 모든 하드웨어 자원에 접근할 수 있습니다. 이는 메모리, CPU, 디스크 등 시스템의 모든 자원을 관리하는 데 필요합니다.
-
핵심 기능 수행
- 프로세스 관리: 프로세스 생성, 스케줄링, 종료 등을 담당합니다.
- 메모리 관리: 메모리 할당, 가상 메모리 관리 등을 수행합니다.
- 장치 드라이버 및 입출력 관리: 하드웨어 장치와의 통신, 드라이버 관리 등을 담당합니다.
- 시스템 호출 처리: 사용자 모드의 응용 프로그램이 요청하는 시스템 자원을 안전하게 제공합니다.
-
위험 요소
- 커널 모드에서 발생하는 오류는 시스템 전체의 실패로 이어질 수 있습니다. 따라서 커널 코드는 매우 신중하게 작성되어야 합니다.
상호작용 및 전환
-
시스템 호출 (System Call)
- 사용자 모드의 프로그램이 커널 모드의 자원이나 서비스를 요청할 때 사용합니다.
- 예를 들어, 파일 읽기/쓰기, 네트워크 요청 등이 있습니다.
-
모드 전환 (Mode Switching)
- 프로그램이 시스템 호출을 사용하면 CPU는 사용자 모드에서 커널 모드로 전환합니다.
- 커널이 요청을 처리한 후 다시 사용자 모드로 돌아갑니다.
-
보안 및 성능
- 이러한 분리는 시스템의 보안과 안정성을 향상시키는 핵심 요소입니다.
- 잘못 설계된 응용 프로그램이나 악성 코드가 시스템 전체에 영향을 미치는 것을 방지합니다.
- 하지만 모드 전환은 시간이 소요되므로, 효율성이 떨어집니다.
출처(참고문헌)
연결문서