시스템 콜, 인터럽트? 커널모드, 유저모드?

2024. 1. 11. 12:03CS/운영체제

시스템 콜

  • 응용프로그램이 자원에 접근하려면 운영체젱 도움을 요청해야함(=운영체제의 코드를 실행해야함)
  • 자원에 접근할 수 있는지 없는지는 이중모드(dual mode)로 파악할 수 있다.
  • 시스템 콜을 하면, 커널 모드로 전환이 됨.
  • 즉, 시스템 콜은 일종의 소프트웨어 인터럽트로, 운영체제의 서비스를 받기위해 커널모드로 전환하는 것을 말한다.

dual mode

  • Dual-Mode는 운영체제를 보호하기 위한 기법으로, 사용자와 운영체제가 시스템자원을 공유하는데, 사용자에게 제한을 두지 않으면 메모리 내의 운영체제 자원을 망가뜨릴 위험이 생기게 되어 운영체제를 보호하기 위한 장치가 필요하게 되는데 이를 dual mode라고 한다.
  • dual mode는 사용자 모드와 커널 모드로 구성된다.
    • 사용자 모드 : 사용자를 위한 동작
    • 커널 모드 : 운영체제를 위한 동작
    • mode bit
      • 사용자 모드(1)
      • 커널 모드(0)
    • 운영체제가 cpu를 실행할 때는 mode bit이 0이 되며, 운영체제가 cpu를 사용자 프로그램에게 넘길때는 mode bit을 1로 바꾸면서 넘겨준다.
    • mode bit이 1이기 때문에 특권명령은 실행하지 못하고 안전한 기계어만 실행하도록 해준다.
    • 특권명령은 mode bit이 0일때, 즉 운영체제만 실행할 수 있도록 하여 시스템 자체를 보호해준다.

interrupt

  • cpu가 특정 기능을 수행하는 도중에 급하게 다른 일을 처리하고자 할때 사용할 수 있는 기능으로,
  • cpu가 다음 기계어를 실행하기 전에 cpu제어권을 자동으로 운영체제에게 넘어가게 하는 것을 인터럽트라고 할 수 있다.