[CS] User mode, Kernel mode

wrld_worthy·2023년 12월 5일
0

CS

목록 보기
6/12

운영체제에는 사용자 모드(User mode)와 커널 모드(Kernel mode) 두 모드로 나뉜다.
왜 모드(mode)가 나눠져 있을까??

  1. 보안성
    • 사용자 모드와 커널 모드의 분리는 시스템의 보안성을 위함이다. 악의적인 소프트웨어가 시스템의 핵심 부분에 접근하는 것을 방지해야하기 때문이다. 이러한 보안성은 컴퓨터 시스템에서는 매우 중요한 요소로, 권한을 분리해주는 것이 좋다. 프로세스간의 메모리의 간섭을 막는 이유 또한 같은 이유이다.
  2. 안정성
    • 각 프로그램은 독립된 메모리 공간에서 실행되므로, 한 프로그램의 실패가 다른 프로그램이나 운영 체제 전체에 영향을 미치지 않게 하기 위함.
      ex) 시스템 콜과 같은 시스템 내부에 접근할 수 있는 권한을 사용하지 못하게 함.
  3. 효율성
    • 운영 체제는 모드를 효율적으로 전환하며 자원을 효과적으로 관리할 수 있다.
  4. 자원 관리
    • 커널 모드는 시스템 자원을 관리, 사용자 모드는 애플리케이션 영역을 관리하며 서비스를 제공한다.
  5. 시스템 호출
    • 사용자 모드 애플리케이션은 시스템 호출을 통해 필요한 시스템 자원을 안전하게 요청하고 사용할 수 있다. 이는 커널 모드와 사용자 모드 간의 중요한 이터페이스 역할을 한다.

사용자 모드, User mode

  • 이 모드에서는 일반 애플리케이션영역으로 프로그램들이 실행되는 영역이다. 흔히 우리가 코딩을하여 실행하면 이 영역에서 실행된다.
  • 실행되는 모든 프로그램은 제한된 메모리 영역과 자원만을 사용할 수 있다.
  • 하드웨어에 직접적으로 접근할 수 없고, 시스템 자원을 사용하기 위해서는 운영 체제가 제공하는 인터페이스를 사용해야한다. ex) 시스템 콜 등.

역할

  • 사용자 모드 영역에서 실행되는 애플리케이션은 서로의 메모리 영역에 접근할 수 없고, 서로를 격리한다. 이는 시스템의 안정성과 보안성을 향상시킨다.
  • 애플리케이션의 오류나 충돌은 해당 어플리케이션에만 영향을 미치고, 시스템 전체에는 영향을 주지 않는다.

자원 접근

  • 애플리케이션은 커널 모드의 기능을 필요로 할 때에는, 시스템 호출(System call)을 사용한다.
  • 시스템 호출을 통해 운영 체제는 요청을 받고, 필요한 작업을 커널 모드에서 수행한 후 결과 값만을 반환한다.

커널 모드, kernel mode

  • 커널 모드는 운영 체제의 핵심 부분이 실행되는 영역이다.
  • 이 영역에서는 시스템의 모든 자원고 메모리에 대한 완전한 접근 권한이 있다.
  • 하드웨어와 직접적으로 상호 작용하는 작업, 메모리 관리, 프로세스 관리, 입 출력 관리 등을 수행하는 영역이다.

역할

  • 커널 모드에서 실행된느 코드는 시스템에서 매우 큰 영향을 미칠 수 있으므로, 보안이 주요하다.
  • 일반적으로 사용자가 직접 커널 모드에서 코드를 실행할 수 없게 하며, 시스템 호출만을 통해 운영 체제가 제공하는 인터페이스를 사용하게 하여 제어한다.

위험성

  • 커널 모드에서의 오류나 잘못된 접근은 시스템 전체의 안정성을 위협할 수 있다.

업로드중..

Mode Switching

  • 프로세스가 사용자 모드에서 커널 모드로 전환하는 것은 일반적으로 시스템 호출을 통해 이루어진다.
    ex) 파일을 읽기 위해서는 read라는 시스템 호출을 사용하여, 사용자모드에서 커널 모드로 전환이 이루어진다.
  • 작업이 완료된 후, 시스템은 다시 사용자 보드로 전환하여 프로세스 제어권을 반환한다.

0개의 댓글