본문 바로가기
운영체제

사용자모드, 커널모드(이중연산모드)

by 핫동경 2022. 3. 24.
반응형

만약 사용자의 프로그램이 하드웨어 자원에 직접 접근할 수 있게되면 어덯게될까?

사용자 프로그램이 갑자기 오류를 일으켜 하드웨어의 자원을 망가뜨리거나 이상하게 수정시킬 수도 있을 것이다. 또 하나의 프로그램이 갑자기 무한루프를 돌게 된다면 다른 프로그램은 실행될 수 없을 것이다.

 

이런 종류의 오류에 대한 보호 기능과 메모리 및 자원에 접근을 제한하기 위해서 이중연산모드를 사용한다.

 

[사용자 모드]

  사용자 모드에서는 사용자 프로그램이 실행되고 하드웨어 자원에 접근하는 경우에는 시스템 콜을 이용해

  커널모드로 제어를 넘긴다.

 

 

[커널 모드]

   커널모드에서는 하드웨어의 자원에 접근이 가능하다. 인터럽트나 , 시스템 콜, 스케줄링 등을 할 때 제어     가 커널모드로 이동한다. 즉 운영체제가 컴퓨터의 제어를 얻을 때면 항상 커널 모드에 있는 것이다.

   커널모드는 인터럽트 서비스 루틴을 호출해 사용자 모드에서 요청한 작업을 끝낸 후 제어를 다시 사용자

   모드에게 넘긴다.

사용자모드 커널모드

   만약 오류가 나면 오류는 일반적으로 운영체제가 처리한다.

   사용자 프로그램이 불법적인 명령을 수행하려 하거나 사용자 주소 공간이 아닌 메모리에 직접 접근을

   시도하는 드오가 같은 오류가 발생하면 하드웨어는 운영체제로 트랩을 발생시킨다.

   트랩은 인터럽트처럼 제어를 운영체제에 넘긴다.

   프로그램이 오류가 날때마다 운영체제는 프로그램을 종료시킨다.

반응형

댓글