반응형
Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

배움과 기록의 장

[운영체제] 시스템 콜(System Call)이란? 본문

cs study/운영체제

[운영체제] 시스템 콜(System Call)이란?

chaeunii 2025. 4. 12. 18:02

🌿 시스템 콜이란

사용자 프로그램이 운영체제 커널이 제공하는 서비스를 사용하기 위해 요청하는 인터페이스

 

용자 프로그램은 직접 하드웨어 자원에 접근할 수 없기 때문에, 파일 입출력, 프로세스 생성, 네트워크 통신 등과 같은 작업을 하기 위해서 시스템 콜을 통해 운영체제 커널에 요청한다.

 

다음과 같이 6가지 유형으로 분류할 수 있다. 

  1. 프로세스 제어(Process Control) : fork(), exec(), exit(), wait()
  2. 파일 조작 (File Manipulation) : open(), read(), write(), close()
  3. 장치 조작 (Device Manipulation) : ioctl(), read(), write()
  4. 정보 유지 (Information Maintenance) : getpid(), alarm(), sleep()
  5. 통신 (Communication) : pipe(), socket(), connect()
  6. 보호 (Protection) : chmod() umask() chown()

 


🔄 시스템 콜이 실행되는 과정 

1️⃣ 사용자 프로그램이 시스템 콜 라이브러리 함수를 호출 (예: read())

2️⃣ 유저 모드에서 시스템 콜 라이브러리 함수가 시스템 콜 번호와 인자를 레지스터나 스택에 저장

3️⃣ int 0x80 또는 syscall 명령어를 통해 커널 모드로 전환

4️⃣ 커널은 저장된 시스템 콜 번호와 인자를 바탕으로 해당 시스템 콜 핸들러를 찾아 작업 실행

5️⃣ 작업 완료 후, 커널은 유저 모드로 다시 전환하여 결과를 사용자 프로그램에 반환

 

시스템 콜 번호란?
서로 다른 시스템 콜을 구분하기 위해 운영체제는 각 시스템 콜에 고유한 번호인 System Call Number를 부여한다.

 

(예: x86 아키텍처에서는 eax 레지스터에 시스템 콜 번호를 넣고 int 0x80을 호출)

 

 


🔅 운영체제의 Dual Mode - 유저모드 / 커널모드

운영체제는 메모리, 파일 시스템 등 중요 자원을 보호하고, 시스템의 안정성과 보안을 확보하기 위해 유저모드와 커널모드를 분리하였고, 이를 Dual Mode라고 한다. CPU는 Mode bit로 현재 모드를 구분한다. (0: 유저모드, 1: 커널모드)
  • 유저 모드 (User Mode): 일반 응용 프로그램이 실행되는 모드로, 직접 하드웨어 접근 불가능.
  • 커널 모드 (Kernel Mode): 운영체제 핵심 코드가 실행되는 모드로, 하드웨어 및 모든 자원에 접근 가능.

 

 

반응형

'cs study > 운영체제' 카테고리의 다른 글

[운영체제] 인터럽트(Interrupt)  (0) 2025.05.13