운영체제
시스템 콜(system call)
탁재민
2024. 3. 20. 20:46
응용 프로그램이 커널에 요청하는 인터페이스
작동 원리
- 유저 모드와 커널 모드: 운영 체제는 보안과 안정성을 위해 유저 모드와 커널 모드를 구분
- 사용자 프로그램은 제한된 권한으로 유저 모드에서 실행
- 운영 체제의 핵심 기능과 하드웨어 제어는 보호된 커널 모드에서 실행
- 시스템 콜 실행
- 프로그램이 특정 작업을 수행하기 위해 시스템 콜을 호출
- 프로그램은 사용자 모드에서 커널 모드로 전환
- 커널은 시스템 콜 요청을 검증, 필요한 작업을 수행한 후 결과를 반환
- 작업이 완료 후, 시스템은 다시 사용자 모드로 전환
주요 기능
- 프로세스 관리: 프로그램 실행, 프로세스 생성과 종료, 프로세스 간 통신(IPC), 시그널 처리 등
- fork(): 현재 실행 중인 프로세스의 복사본을 생성
- exec(): 프로세스 덮어쓰기
- wait(): 자식 프로세스의 종료를 기다림
- exit(): 프로세스를 종료, 자원 반환
- 파일 조작: 파일 생성, 삭제, 읽기, 쓰기, 파일 속성 변경 등
- open(): 파일을 열거나 파일을 생성
- read(): 열린 파일로부터 데이터를 읽음
- write(): 열린 파일에 데이터를 쓰기
- close(): 열린 파일을 닫기
- 장치 관리: 하드웨어 장치에 대한 접근 및 제어
- ioctl(): 장치 특정 명령(입출력 제어)을 장치 드라이버에 전달
- 정보 유지: 시스템 시간 조회 및 설정, 시스템 데이터 접근 등
- getpid(): 프로세스 식별자(PID)를 반환
- getuid(): 사용자 식별자(UID)를 반환
- 통신: 프로세스 간 통신(IPC) 메커니즘을 제공, 메모리 공유, 메시지 전달 등
- socket(): 네트워크 통신을 위한 소켓을 생성
- bind(): 소켓에 주소(예: IP 주소와 포트 번호)를 할당
- listen(): 서버가 클라이언트로부터의 연결 요청을 기다리도록 설정
- accept(): 클라이언트로부터의 연결 요청을 수락