시스템 콜(System Call)
사용자 프로그램이 운영체제의 자원을 안전하게 사용하기 위해 커널에 요청을 보내는 메커니즘
왜 필요한가?
- 일반 프로그램이 컴퓨터 자원(CPU, 메모리, 하드디스크 등)에 접근하면 위험함
- 자원 오남용을 막기 위해 운영체제가 중간에서 관리함
- 일반 프로그램이 직접 접근하면:
- 자원이 무질서하게 사용될 수 있음
- 다른 프로그램이나 시스템 전체에 피해 발생 가능
- 일반 프로그램이 직접 접근하면:
- 프로그램은 직접 자원에 접근하지 못하고, 운영체제를 통해서만 접근 해야함
- → 이때 사용하는 것이 시스템 콜
사용자 모드 vs 커널 모드
| 구분 | 설명 |
| 사용자 모드 | 일반 앱이 실행되는 모드. 자원 접근 제한됨 |
| 커널 모드 | 운영체제가 실행되는 모드. 모든 자원 접근 가능 |
- 프로그램이 자원을 쓰려면 커널 모드로 전환해야 함
시스템 콜의 역할
- 프로그램 → 운영체제에게 “이 작업 해줘” 요청
- 이 요청 방식이 시스템 콜
시스템 콜의 동작 흐름
- 프로그램이 시스템 콜 명령어 실행 (예: read())
- CPU가 소프트웨어 인터럽트를 발생시켜 커널 모드 진입
- 운영체제가 해당 요청을 처리 (예: 파일 내용 읽기)
- 처리 결과를 사용자 프로그램에 반환
- 다시 사용자 모드로 복귀
'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 |