본문 바로가기
STUDY/CS

시스템 호출(시스템 콜, system call, syscall)

by 수쨔앙 2023. 1. 13.

시스템 호출을 이해하기 위해서는 먼저 이중 모드를 알아야 한다.

 

운영체제란 사용자가 실행하는 응용 프로그램들이 하드웨어 자원에 직접 접근하는 것을 방지하여 자원을 보호한다.

만약 응용 프로그램들이 하드웨어 자원에 직접 접근하는것이 가능하다면 CPU, 메모리, 하드디스크 등 자원이 무질서하게 관리되고, 조금의 실수만으로도 컴퓨터 전체에 악영향이 미칠 것이다.

 

그래서 응용 프로그램들이 자원에 접근하려고 할 때 운영체제를 통해서만 접근가능하도록 하여 자원을 보호한다.

 

 

이 때 운영체제는 이중 모드로 구현된다.

 

이중모드

이중모드는 CPU 명령어를 실행하는 모드를 사용자 모드, 커널 모드로 구분한다.

 

사용자 모드는 운영체제 서비스를 제공받을 수 없는 실행모드이다.

일반적인 응용 프로그램이 기본적으로 사용자 모드로 실행되며 커널 영역의 코드를 실행할 수 없다

 

커널 모드는 운영체제 서비스를 제공받을 수 있는 실행모드이다

커널 영역의 코드를 실행할 수 있는 모드이고, CPU가 커널 모드로 명령어를 실행하면 자원에 접근하는 명령어를 비롯한 모든 명령어를 실행할 수 있다. 운영체제는 커널 모드로 실행되기 때문에 자원에 접근이 가능하다.

 

 

시스템 호출(System call)

운영체제의 서비스를 제공받기 위해 커널 모드로 전환하기 위한 요청이다.

사용자 모드로 실행되고 있는 프로그램은 시스템 호출을 통해 커널 모드로 전환하여 운영체제 서비스를 제공받을 수 있다.

 

 

일반적으로 응요 프로그램은 실행 과정에서 운영체제 서비스들을 매우 빈번하게 이용한다.

그 과정에서 빈번하게 시스템 호출을 발생시키고 사용자모드와 커널 모드를 아래와 같이 오가며 실행된다

혼자 공부하는 컴퓨터구조+운영체제

 

 

출처 : 혼자 공부하는 컴퓨터구조+운영체제

728x90

'STUDY > CS' 카테고리의 다른 글

HTTP 프로토콜  (0) 2023.01.16
웹 서버와 WAS의 차이  (0) 2023.01.16
DFS / BFS  (0) 2023.01.06
복습(환경변수 설정, 이메일 인증)  (0) 2023.01.05
TCP / UDP  (0) 2023.01.05

댓글