[Operating Systems] System call

dandb3·2023년 3월 6일
0

Operating system

목록 보기
6/31

System call은 hardware를 직접적으로 접근해야 하는 low-level task들의 경우 함수 형태로 C나 C++에서 사용할 수 있는 interface를 제공한다.

Application developers는 application programming interface(API)에 따라 프로그래밍을 하게 된다.
실제 system call을 동작시키는 것 보다 API를 이용해서 프로그래밍을 할 때의 장점?

  • program protability
    • 같은 API를 사용해서 서로 다른 구조에서 사용 가능하다.
  • system call을 직접 호출하기가 굉장히 어렵고 복잡하다.
  • 물론 API는 실제 system call과 구조? 형태?가 많이 비슷하다.

run-time environment (RTE)

  • 주어진 프로그래밍 언어로 만들어진 application을 실행시키기 위해 있는 full suite.
  • system-call interface를 지원해서 API에서 실행된 함수 호출을 실제 운영체제의 system call의 호출로 연결해 준다.
  • 각 system call 마다 숫자가 부여되어 있으며, table을 이용해서 각 숫자에 해당하는 system call이 저장되어 있다.

operating system으로 인자를 넘기는 방법

  • register를 통해서 넘겨주기
  • 만약 register의 수보다 인자의 수가 더 많다면?
    • 메모리에 block이나 table로 보관되어서 그 주소가 register로 전달된다.
  • 리눅스에서는?
    • 5개 이하의 인자가 들어옴 -> 그냥 레지스터로 전달
    • 그 이상 -> block method가 쓰인다.
  • 인자들이 stack에 쌓여서 전달되기도 한다.

system call의 종류

  • Process control
  • File management
  • Device management
  • Information maintenance
  • Communications
  • Protections

요 정도까지만...

참고문헌

  • Abraham Silberschatz - Operating System Concepts 10th
profile
공부 내용 저장소

0개의 댓글