시스템 콜
프로세스 제어 (Process Control)
역할: 새로운 프로세스를 생성하고, 실행하며, 종료하는 기능
주요 시스템 콜
end()
/ abort()
현재 실행 중인 프로세스를 종료
load()
/ execute()
새로운 프로그램 로딩 및 실행
create_process()
사용자 정의 구조 기반 프로세스 생성
wait()
자식 프로세스 종료까지 대기
fork()
부모 프로세스를 복제하여 자식 생성
exec()
현재 프로세스 이미지를 새 실행파일로 덮어쓰기
exit()
종료 코드 반환 후 프로세스 정리
예시 흐름
UNIX 계열 시스템에서 새로운 명령을 실행할 때:
fork()
→ 새로운 자식 프로세스 생성exec()
→ 자식 프로세스가 다른 프로그램으로 덮어쓰기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) 및 네트워크 기반 통신 처리
통신 모델
메시지 전달(Message Passing): 프로세스 간 명시적 메시지 송수신
공유 메모리(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에서 심화 다룸
📝 운영체제별 시스템 콜 비교
프로세스 생성
CreateProcess()
fork()
+ exec()
파일 열기
CreateFile()
open()
파일 읽기
ReadFile()
read()
종료
ExitProcess()
exit()
권한 설정
SetSecurityInfo()
chmod()
, setuid()
Last updated