레지스터

  • PC (프로그램 카운터) : 패치 해야 하는 다음 명령의 메모리주소를 포함한다
  • 스택포인터 : 메모리에 있는 현 스택의 최상위를 가리킨다, 아직 종료하지않음 프로시저 별로 하나의 프레임을 갖는다
  • PCW (Program Status Word) : 비교 연산자들에 의해 설정되는 조건 코드 비트들, CPU의 우선순위, 모드(사용자 또는 커널) 그리고 다른 각종 제어비트들이 있다 사용자 프로그램은 PSW의 전체를읽을 수 있으나 몇몇 필드에만 쓰기를 할 수 있다. 시스템 호출이나 I/O에 중요한 역할을 한다

커널

  • 트랩 :사용자 모드에서 커널 모드로 변환을 일으키며 운영체제를 시작하는 명령어, 일이 완료되면 제어권은 사용자 프로그램으로 돌아오며, 시스템 호출을 요청한 명령 바로 다음 명령이 수행된다.
  • 트랩 명령의 종류
    1. 시스템 호출 : 운영체제로부터 서비스를 받으려면 사용자 프로그램은 커널로 트랩을 걸어서 운영체제를 활용하도록 하는 시스템 호출을 요청해야 한다. I/O나 메모리 보호와 관련된 명령은 사용자 모드에서 허용되지 않기 때문에 시스템 호출을 통해 운영체제에 요청한다.
    2. 다른 트랩 명령들 : 대부분은 0으로 나누기나 부동소수점 연산의 언더플로우 현상과 같은 특별한 상황을 알리기 위해 하드웨어에서 일으키는 것들이다. 이 모든 경우에 운영체제가 제어권을 획득하고 트랩의 원인에 따라 어떤 일을 해야 할지를 결정하게 된다.어떤 때는 오류와 함께 프로그램을 강제로 종료할 경우도 있다. 어떤 때에는 오류를 그냥 무시하는 경우도 있다.

+ Recent posts