시스템 콜

프로세스 제어 (Process Control)

역할: 새로운 프로세스를 생성하고, 실행하며, 종료하는 기능

주요 시스템 콜

시스템 콜
설명

end() / abort()

현재 실행 중인 프로세스를 종료

load() / execute()

새로운 프로그램 로딩 및 실행

create_process()

사용자 정의 구조 기반 프로세스 생성

wait()

자식 프로세스 종료까지 대기

fork()

부모 프로세스를 복제하여 자식 생성

exec()

현재 프로세스 이미지를 새 실행파일로 덮어쓰기

exit()

종료 코드 반환 후 프로세스 정리

예시 흐름

UNIX 계열 시스템에서 새로운 명령을 실행할 때:

  1. fork() → 새로운 자식 프로세스 생성

  2. exec() → 자식 프로세스가 다른 프로그램으로 덮어쓰기

  3. wait() → 부모는 자식 종료를 대기


파일 관리 (File Management)

역할: 파일 생성, 삭제, 읽기, 쓰기, 속성 변경 등

주요 시스템 콜

시스템 콜
설명

create() / delete()

파일 생성 또는 삭제

open() / close()

파일 디스크립터 할당/해제

read() / write()

버퍼 I/O

get_attributes() / set_attributes()

파일 메타데이터 제어

특징

  • 대부분의 운영체제에서 파일, 디바이스, 소켓을 동일한 추상화 객체로 취급

  • 동일한 시스템 콜(read, write)로 다양한 자원을 다룰 수 있음


디바이스 관리 (Device Management)

역할: 장치 사용 요청, 장치 해제, 제어 명령 전달

주요 시스템 콜

시스템 콜
설명

request_device()

장치에 대한 소유권 요청

release_device()

장치 해제

read() / write()

디바이스 입출력

ioctl()

장치 제어 명령 전송 (Device-specific control)

예시

  • 프린터 제어

  • 마우스, 키보드 동작 모드 변경

  • 터미널 설정 (stty 등)


정보 유지 (Information Maintenance)

역할: 시스템 정보 및 상태 조회, 설정

주요 시스템 콜

시스템 콜
설명

getpid()

현재 프로세스 ID 조회

alarm() / sleep()

타이머 설정 및 대기

get_time() / set_time()

시스템 시간 조회/설정

dump_memory()

메모리 상태 조회

실용 사례

  • 로그 기록용 시스템 시간 수집

  • 프로파일링 도구에서 PID 추적


통신 (Communication)

역할: 프로세스 간 통신(IPC) 및 네트워크 기반 통신 처리

통신 모델

  1. 메시지 전달(Message Passing): 프로세스 간 명시적 메시지 송수신

  2. 공유 메모리(Shared Memory): 프로세스 간 동일 메모리 영역 공유

주요 시스템 콜

시스템 콜
설명

create_pipe() / open_pipe()

파이프 생성

send() / receive()

메시지 전송 및 수신

socket() / bind() / listen() / accept()

네트워크 소켓 통신 처리

shared_memory_create() / attach()

공유 메모리 영역 생성 및 연결

예시

  • 명령어 파이프라인 (ls | grep foo)

  • TCP/IP 기반 소켓 통신 (웹 서버/클라이언트)


보호 (Protection)

역할: 사용자 인증, 접근 권한 제어, 리소스 보호

주요 시스템 콜

시스템 콜
설명

setuid() / setgid()

사용자 및 그룹 ID 설정

chmod() / chown()

파일 권한 및 소유자 변경

access()

접근 권한 확인

관련 챕터

  • 접근 제어는 Chapter 17 (보호 시스템)

  • 보안과 인증은 Chapter 16에서 심화 다룸


📝 운영체제별 시스템 콜 비교

기능
Windows API
UNIX/Linux POSIX

프로세스 생성

CreateProcess()

fork() + exec()

파일 열기

CreateFile()

open()

파일 읽기

ReadFile()

read()

종료

ExitProcess()

exit()

권한 설정

SetSecurityInfo()

chmod(), setuid()

Last updated