Skip to content

Latest commit

 

History

History
38 lines (29 loc) · 2.13 KB

05_시스템콜.md

File metadata and controls

38 lines (29 loc) · 2.13 KB

시스템 콜(System Call)

정의

사용자 프로세스가 소프트웨어 인터럽트를 통해 커널의 기능을 이용하기 위한 서비스를 요청하는 하나의 방법

  • 커널 : 운영체제 중 항상 필요한 부분만을 전원이 켜짐과 동시에 메모리에 올려놓는다. 이때 메모리에 상주하는 운영체제의 부분

처리방식

  1. 사용자 프로세스가 시스템 콜 호출(커널 모드 진입)
  2. 커널이 내부적으로 시스템 콜을 구분하기 위해 기능별로 고유번호를 할당하고 제어 루틴 정의
  3. 요청받은 시스템 콜에 대응하는 고유번호 확인, 서비스 루틴 호출
  4. 서비스 루틴을 처리하고 사용자 모드로 전환

  • 커널 모드 : 운영체제가 CPU를 사용하는 모드. 시스템 콜을 통해 커널모드로 전환이 되면 운영체제는 하드웨어를 제어하는 명령어를 실행, 이는 사용자 모드에서 실행되면 exception이 발생

  • 사용자 모드 : 사용자 애플리케이션 코드가 실행됨, 하드웨어(디스크, I/O등)에 접근할 수 없다.


필요한 이유

  • 우리가 일반적으로 사용하는 유저레벨의 프로그램은 유저레벨의 함수들만으로 많은 기능을 구현하기 힘듦
  • 커널의 도움이 필요
  • 커널에 관련된 작업은 반드시 커널모드로 전환하여 수행되어야 함
  • 커널 모드를 통한 작업은 반드시 시스템 콜을 통해 수행하도록 설계되어 있음

종류

크게 5가지로 분류된다

종류 유형
프로세스 제어(Process Control) 끝내기, 중지
적재, 실행
프로세스 생성/제거
프로세스 속성 획득/설정
시간 대기
사건 대기
메모리 할당/해제
파일 조작(File Manipulation) 파일 생성/삭제
열기/닫기
읽기/쓰기/위치변경
파일속성 획득/설정
디바이스 조작(Deivce Manipulation) 장치 요청/해제
장치 읽기/쓰기/위치 변경
속성 설정
정보 유지(Information Maintenance)
시간, 날짜 설정/요청

보호(Protection)
권한 관리