[OS] 유저 모드와 커널 모드(User mode and Kernel mode)

Seoha Nam·2024년 11월 12일

OS

목록 보기
2/3
post-thumbnail

User mode vs Kernel mode

유저 모드(User mode)

유저 모드의 정의

유저 모드는 애플리케이션이 실행되는 환경으로, 애플리케이션은 운영 체제의 중요한 데이터나 하드웨어 자원에 접근할 수 없다.

유저 모드의 특징

  • 각 애플리케이션은 고유한 가상 주소 공간을 가짐.
  • 애플리케이션 간에 격리되어 다른 애플리케이션의 데이터를 수정할 수 없음.
  • 운영 체제의 가상 주소 공간에 접근할 수 없음.
  • 애플리케이션이 크래시되면 다른 애플리케이션이나 운영 체제에 영향을 미치지 않음.
  • 시스템 데이터가 보호됨.

커널 모드(Kernel mode)

커널 모드의 정의

커널 모드는 운영 체제의 핵심 부분과 드라이버가 실행되는 환경으로, 하드웨어 자원에 직접 접근할 수 있다.

커널 모드의 특징

  • 모든 코드가 동일한 가상 주소 공간을 공유함.
  • 운영 체제와 드라이버가 서로 격리되지 않음.
  • 운영 체제의 중요한 데이터를 수정할 수 있음.
  • 드라이버나 커널 모드 코드가 크래시하면 운영 체제 전체가 영향을 받음.
  • 잘못된 주소에 접근하면 시스템 데이터나 다른 드라이버를 손상시킬 수 있음.

💡그러면 이렇게 나눈 이유는 뭘까?

  • 각각의 모드가 운영 체제와 애플리케이션이 실행되는 환경에서 중요한 역할을 하기 때문!

사용자 모드와 커널 모드는 시스템의 안정성, 보안, 리소스 관리에 중요한 역할을 하며, 서로 다른 접근 방식과 권한을 부여하여 시스템의 효율적이고 안전한 운영을 보장한다!

차이점을 표로 정리하자면?

항목사용자 모드커널 모드
주소 공간각 애플리케이션은 고유한 가상 주소 공간을 가짐모든 코드가 동일한 가상 주소 공간을 공유
애플리케이션 격리애플리케이션 간 격리되어 한 애플리케이션이 다른 애플리케이션의 데이터를 수정할 수 없음드라이버나 운영 체제가 서로 격리되지 않음 오류 발생 시 다른 코드에 영향
운영 체제 접근운영 체제의 가상 주소 공간에 접근할 수 없음운영 체제의 데이터를 수정할 수 있음
오류 발생 시 영향애플리케이션이 크래시되면 다른 애플리케이션이나 운영 체제에 영향 없음드라이버나 커널 모드 코드가 크래시되면 운영 체제 전체가 영향을 받음
보호운영 체제 데이터 보호됨잘못된 주소에 접근할 경우 시스템 데이터나 다른 드라이버를 손상시킬 수 있음
모드 비트 값1 (사용자 모드 비트)0 (커널 모드 비트)

커널 모드가 필요한 작업의 예는 무엇인가요?
커널 모드가 필요한 작업으로는 메모리 제어, 프로세스 스케줄링, 하드웨어 인터럽트 처리, 하드웨어 가젯과의 직접적인 상호 작용 등이 있다.

사용자 모드와 커널 모드에서 메모리 접근은 어떻게 다른데요?
사용자 모드에서는 애플리케이션이 서로 또는 운영 체제를 방해하지 않도록 메모리 액세스가 제한된다. 커널 모드에서는 작업 시스템이 모든 메모리 영역에 제한 없이 액세스하여 장치 자산을 올바르게 제어할 수 있다.

애플리케이션을 커널 모드에서 직접 실행할 수 있나요?
일반적으로 애플리케이션은 커널 모드에서 직접 실행되지 않는다. 커널 모드에서 프로그램을 실행하면 안정성 문제가 발생할 수 있다.

profile
과몰입 플레이어 대량 생산이 목표인 학부생

0개의 댓글