IT/CS 공부

[CS] 시스템 콜(System Call)

박소민 2025. 5. 29. 11:07
시스템 콜(System Call)
사용자 프로그램이 운영체제의 자원을 안전하게 사용하기 위해 커널에 요청을 보내는 메커니즘

 

 

왜 필요한가?
  • 일반 프로그램이 컴퓨터 자원(CPU, 메모리, 하드디스크 등)에 접근하면 위험함
  • 자원 오남용을 막기 위해 운영체제가 중간에서 관리함
    • 일반 프로그램이 직접 접근하면:
      • 자원이 무질서하게 사용될 수 있음
      • 다른 프로그램이나 시스템 전체에 피해 발생 가능
  • 프로그램은 직접 자원에 접근하지 못하고, 운영체제를 통해서만 접근 해야함
    • → 이때 사용하는 것이 시스템 콜

 

사용자 모드 vs 커널 모드
구분 설명
사용자 모드 일반 앱이 실행되는 모드. 자원 접근 제한됨
커널 모드 운영체제가 실행되는 모드. 모든 자원 접근 가능
  • 프로그램이 자원을 쓰려면 커널 모드로 전환해야 함

 

시스템 콜의 역할
  • 프로그램 → 운영체제에게 “이 작업 해줘” 요청
  • 이 요청 방식이 시스템 콜

 

시스템 콜의 동작 흐름
  1. 프로그램이 시스템 콜 명령어 실행 (예: read())
  2. CPU가 소프트웨어 인터럽트를 발생시켜 커널 모드 진입
  3. 운영체제가 해당 요청을 처리 (예: 파일 내용 읽기)
  4. 처리 결과를 사용자 프로그램에 반환
  5. 다시 사용자 모드로 복귀

'IT > CS 공부' 카테고리의 다른 글

[CS] 테스트 주도 개발(Test Driven Development, TDD)  (0) 2025.06.09
[CS] 자바의 GC(Garbage Collection)  (2) 2025.06.09
[CS] 디스크 I/O 성능, 순차·랜덤 I/O  (1) 2025.05.28
[CS] URI, URL, URN  (1) 2025.05.28
[CS] CPU 스케줄링  (0) 2025.05.28