[운영체제] 시스템 콜(System Call)

림예·2024년 3월 21일
0

CS_운영체제

목록 보기
5/11

OS는 다양한 서비스 들을 수행하기 위해 하드웨어를 직접적으로 관리한다. 이와 반면 응용 프로그램은 OS가 제공하는 인터페이스를 통해서만 자원을 사용할 수 있다.

OS가 제공하는 이러한 인터페이스를 '시스템 콜 (system call)' 이라고 한다.

시스템콜은 커널 영역의 기능을 사용자 모드가 사용 가능하게, 즉, 프로세스가 하드웨어에 직접 접근해서 필요한 기능을 할 수 있게 해준다. (응용프로그램은 시스템 콜을 사용해서 원하는 기능을 수행할 수 있음.)

보통 직접적으로 시스템콜을 사용하기 보다는 API를 통해 사용하게 된다.


시스템콜 종류

  1. 프로세스 제어 (Process Control)
  2. 파일 조작 (File Manipulation)
  3. 장치 관리 (Device Manipulation)
  4. 정보 유지 (Information Maintenance)
  5. 통신 (Communication)
  6. 보호 (Protection)



fork

새로운 Process를 생성할 때 사용.

wait

child 프로세스가 종료될 때까지 기다리는 작업 (대기)

exec

단순 fork는 동일한 프로세스의 내용을 여러 번 동작할 때 사용함.
child에서는 parent와 다른 동작을 하고 싶을 때는 exec를 사용할 수 있음. (실행)






면접질문


System Call에 대해 설명해주세요.

  • System Call(시스템 콜)은 사용자나 응용프로그램이 커널에서 제공하는 기능을 사용하기 위한 인터페이스입니다.
  • 운영체제는 커널이 제공하는 서비스를 '시스템 콜'을 사용해야만 사용할 수 있도록 제한함으로써 컴퓨터 자원을 보호하면서 사용자나 응용프로그램에게 서비스를 제공할 수 있습니다.

커널에 대해 설명해주세요.

  • 커널은 메모리에 상주하는 운영체제의 핵심 부분이라고 할 수 있습니다.
  • 기본적으로 프로그램이 실행되기 위해서는 주기억장치에 적재된 상태여야 합니다.
    운영체제 역시 프로그램이기 때문에 메인 메모리에 적재가 되어야 하나, 운영체제의 크기가 너무 커서 전체를 다 메인 메모리에 올리게 된다면 비효율적입니다. (메모리 공간의 낭비)
    따라서 커널(kernel)이라고 하는 항상 필요한 운영체제의 핵심 부분만을 메인 메모리에 적재하여 운영체제를 사용하게끔 합니다.




profile
Think big 🌏

0개의 댓글