[3.12] 시스템 콜

Always·2025년 3월 11일
1

매일메일

목록 보기
59/69
post-thumbnail

프로그램이 마음대로, cpu, 메모리 하드디스크 등의 자원에 마음대로 접근을 한다면, 자원이 비효율적으로 낭비가 되거나, 비정상적인 동작이 될 것이다.
따라서 cpu는 프로그램을 사용할 때는 사용자 모드로, 하드웨어같은 자원에 접근할 때는 커널모드로 전환되어서, 실행된다.

사용자 모드

운영체제 서비스를 제공받을 수 없는 실행 모드이다.
cpu가 사용자 모드이면, io작업등의 하드웨어 자원 접근 명령을 실행할 수 없다. 또한 일반 프로그램은 기본적으로
사용자 모드로 실행됨

커널 모드

운영체제 서비스를 제공받을 수 있는 실행 모드로 커널 영역의 코드를 실행 할 수 있다. cpu가 커널 모드로 명령어를 실행하면 자원에 접근하는 명령어를 비롯한 모든 명령어를 실행할 수 있다.

사용자 모드에서 커널모드로 전환해서, 프로그램으로 하여금 자원에 접근하는 운영체제 서비스를 제공한다. 이것이 바로 시스템 콜이다.

시스템 콜은 일종의 소프트웨어 인터럽트로, 지금까지의 작업을 저장하고, 커널 영역 내에 시스템 콜을 수행하는 인터럽트 서비스 루틴을 실행한 이후, 다시 기존 실행하고 있었던 프로그램으로 복귀해서 실행한다.

profile
🐶개발 블로그

0개의 댓글