티스토리 뷰

CS

[OS] 5. System call(시스템 콜)

5_Clock 2022. 8. 29. 21:35
반응형

System call

시스템 호출 또는 시스템 콜(system call), 간단히 시스콜(syscall)은 운영 체제의 커널이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스이다. 보통 C나 C++과 같은 고급 언어로 작성된 프로그램들은 직접 시스템 호출을 사용할 수 없기 때문에 고급 API를 통해 시스템 호출에 접근하게 하는 방법이다. - 위키백과

위의 정의로 보면 우리가 개발을 할 때, 내가 모든 기능을 구현할 수 없어 API를 통해서 원하는 기능을 수행하게 만들 때가 있다.
system call도 마찬가지로 직접 os의 system 호출이 어려워 그것을 편하게 만들어 놓은 것이다.

운영체제는 커널모드(kernel mode)와 사용자 모드(user mode)로 나뉘어 구동한다.
시스템 콜은 이러한 커널 영역의 기능을 사용자 영역에서 사용 가능하게 한 것이다.

System call 프로세스

  1. 매개변수를 CPU 레지스터 내에 전달한다. 이 경우에 매개변수의 갯수가 CPU 내의 총 레지스터 개수보다 많을 수 있다.
  2. 위와 같은 경우에 매개변수를 메모리에 저장하고 메모리의 주소가 레지스터에 전달된다. (아래 그림 참고)
  3. 매개변수는 프로그램에 의해 스택(stack)으로 전달(push) 될 수도 있다.

System call 종류

  1. 프로세스 컨트롤
  • 프로세스 생성 및 종료
  • 메모리에 로드, 실행
  • 프로세스 속성 값 확인, 지정
  • wait 이벤트, signal 이벤트
  • 메모리 할당
  1. 파일 메니지먼트
  • 파일 생성, 파일 삭제
  • 열기, 닫기
  • 읽기, 쓰기, Reposition
  • 파일 속성 값 확인, 지정
  1. 디바이스 매니지먼트
  • 디바이스 요청 및 해제
  • 읽기, 쓰기, Reposition
  • 디바이스 속성 확인, 지정
  • 비 물리적인 디바이스 해제 및 장착
  1. 정보 관리
  • 시간 확인, 시간 지정
  • 시스템 데이터 확인, 지정
  • 프로세스, 파일, 디바이스 속성 가져오기
  • 프로세스, 파일, 디바이스 속성 설정하기
  1. 커뮤니케이션
  • 커뮤니케이션 연결 생성 및 삭제
  • 메시지 송신, 수신
  • 상태 정보 전달
  • remote 디바이스 해제 및 장착
  1. 보안
  • Permission 획득
  • Permission 설정

참고

https://fjvbn2003.tistory.com/306

728x90
반응형

'CS' 카테고리의 다른 글

[OS] 4. 멀티 프로세스와 멀티 스레드  (0) 2022.08.29
[OS] 3. CPU Scheduling  (0) 2022.08.23
[OS] 2. 스레드(Thread)  (0) 2022.08.23
[OS] 1. 프로세스  (0) 2022.08.23
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함
250x250