Operating System : 운영체제

본 토픽은 현재 준비중입니다. 공동공부에 참여하시면 완성 되었을 때 알려드립니다.

(i) Privileged Instruction

@ 그렇다며 Micro Architecture 안에서 Privileged Instruction은 어떻게 구현이 되는 것일까요?

 

@ 우선을 Privileged Instruction을 수행하는 시나리오를 먼저 생각해보도록 하겠습니다.

    // 기존에 Instruction을 수행하게 되면 우선 Fetch해서 가져오게 됩니다

    // 그 다음에 이를 decode를 하는 과정을 수행해야 하겠지요.

        > 그 과정에서 Mode bit를 체크하게 됩니다. 

 

@ 위의 상황을 진행할 때 만약 Mode bit가 1이라면 어떻게 하면 될까요?

    // User Mode일 때에는 Privileged Instruction을 실행하면 안 됩니다.

        > 이런 상황일 때에는 누군가가 Protection을 침범하고 있다고 판단할 수 있습니다.

    // S/W Interrupt를 발생시킵니다.

        > 이렇게 trap을 발생시켜서 프로그램의 수행을 Abort 시킵니다.

 

@ 이제 우리는 왜 컴퓨터가 Dual Mode로 동작해야 하는 지를 알게 되었습니다.

    // 컴퓨터 시스템은 기본적으로 User Program은 전혀 신뢰하지 않습니다. 느낌이 오시나요?

        > 프로그램을 짜면 반드시 버그가 생기기 마련입니다.

        > 이러한 버그가 컴퓨터 시스템에 악영향을 미칠 수 있게 됩니다.

            .. 그래서 User Program은 굉장히 통제된 환경에서만 수행을 시키게 됩니다.

    // 그에 반해서 OS은 무조건 신뢰합니다.

 

@ 그렇다면 OS이 커널 모드에서 수행될 때에는 뭔가 특수한 권한을 제공해 줄 필요가 있습니다.

    // 첫번째는 다 알다시피, Privileged Instruction을 수행시킬 권한입니다.

    // 두번째는 메모리의 모든 영역에 엑세스할 수 있는 권한입니다.

댓글

댓글 본문
작성자
비밀번호
버전 관리
박천명
현재 버전
선택 버전
graphittie 자세히 보기