운영체제

시스템 콜(system call)

탁재민 2024. 3. 20. 20:46
응용 프로그램이 커널에 요청하는 인터페이스

작동 원리

  • 유저 모드와 커널 모드: 운영 체제는 보안과 안정성을 위해 유저 모드와 커널 모드를 구분
    • 사용자 프로그램은 제한된 권한으로 유저 모드에서 실행
    • 운영 체제의 핵심 기능과 하드웨어 제어는 보호된 커널 모드에서 실행
  • 시스템 콜 실행
    1. 프로그램이 특정 작업을 수행하기 위해 시스템 콜을 호출
    2. 프로그램은 사용자 모드에서 커널 모드로 전환
    3. 커널은 시스템 콜 요청을 검증, 필요한 작업을 수행한 후 결과를 반환
    4. 작업이 완료 후, 시스템은 다시 사용자 모드로 전환

주요 기능

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