정의: 시스템 호출(system call)은 운영 체제의 커널이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스이다.
mode bit 를 가지고 설명
유저 프로세스가 실행되고 있다. ( mode bit = 1 )
유저 프로세스단에서 시스템 콜한다 부른다. ( 커널에 서비스를 요청 )
Trap 발생 ( mode bit = 0 )
Excute System Call ( 하드웨어에 접근할 특권을 얻게 됨 )
return ( mode bit = 1 )
유저 프로세스 단으로 다시 돌아온다 ( return from system call )
Context Switching
- 개념, 내용, 언제 사용되는지, 어떤식으로 구현되는지
개념
멀티프로세싱을 지원하는 OS에서 실행 중인 프로세스를 멈추고 다른 프로세스를 실행하고자 결정하면 커널에서 현재 실행 중이던 프로세스의 정보를 나중에 다시 실행될 때를 대비하여 현재 상태를 PCB를 저장하고 새롭게 실행되는 프로세스의 정보를 CPU가 사용할 수 있도록 load한 후 프로세스 코드를 실행시키는데 이러한 과정을 Context Switching이라 한다.
구동 방식
- Process는 다양한 원인에 의해 중간에 종료될 수 있다. (interrupt나 system call에 의해서) 종료되는 P0의 상태를 PCB0(Process Control Block) 저장한다. 새로 시작될 P1의 상태를 PCB1에서 불러오고 해당 프로세스를 실행한다. 상기와 같은 방식으로 Context Switching이 일어난다.