시스템 콜

패스트캠퍼스 올인원 패키지 - 컴퓨터 공학을 보고 정리하는 용도의 포스팅입니다.


학습목표

  • 시스템 콜의 개념 및 원리와 배경에 대해 이해하자

응용 프로그램, 운영체제, 컴퓨터 하드웨어(시스템 리소스)관계

운영체제의 전반적인 구조

운영체제구조

  • 운영체제는 응용 프로그램이 요청하는 메모리를 허가하고, 분배
  • CPU시간을 제공
  • IO Devices 사용을 허가 하거나 제어한다.

나와 비슷한 입문자 내지는 컴알못을 위해 친절히 도서관에 비유해주신걸로 보자면ㅠㅠ

  • 운영체제 = 도서관
  • 응용 프로그램 = 시민
  • 컴퓨터 하드웨어 = 책
    • 시민은 도서관에 원하는 책(자원)을 요청
    • 도서관은 적절한 책(자원)을 찾아서, 시민에게 빌려줌
    • 기한이 다 되면, 도서관이 해당 책(자원)을 회수함

비유는 그저 이해하기 쉽게 하기 위한 비유일뿐,

실질적인 구조를 외워야 한다.


운영체제는 사용자 인터페이스 제공

쉘(Shell)

  • 사용자가 운영체제 기능과 서비스를 조작할 수 있도록 인터페이스를 제공하는 프로그램
  • 터미널 환경(CLI)과, GUI 환경 두 종류로 분류
  • 사용자의 요청을 받아서 운영체제에 넘겨줌
  • 사용자와 OS 사이의 커뮤니케이션 창구 역할

운영체제는 응용 프로그램을 위해서도 인터페이스를 제공

API(Application Programming Interface)

  • 함수로 제공
  • open()

보통은 라이브러리(library) 형태로 제공

  • C library

응용 프로그램 안의 프로그래밍 언어를 통해 운영체제 함수로 제공하고

보통은 그 함수들을 묶어서 라이브러리 제공.

시스템 콜

  • 시스템 콜 또는 시스템 호출 인터페이스
  • 운영체제가 각 기능을 사용할 수 있도록 시스템 콜 명령(혹은 함수)을 제공
  • API 내부에는 시스템콜을 호출하는 형태로 만들어지는 경우가 대부분

운영체제를 만든다면 아래와 같은 순서

  • 운영체제를 개발(kernel)
  • 시스템 콜 개발
  • C API(library) 개발
  • Shell 프로그램 개발
  • 응용 프로그램 개발

정리

  • 운영체제는 컴퓨터 하드웨어와 응용 프로그램을 관리한다.
  • 사용자 인터페이스를 제공하기 위해 쉘 프로그램을 제공한다.
  • 응용 프로그램이 운영체제 기능을 요청하기 위해 운영체제는 시스템 콜을 제공한다.
    • 보통 시스템 콜을 직접 사용하기 보다는 해당 시스템 콜을 사용해서 만든 각 언어별 라이브러리(API)를 사용한다.

Reference

패스트캠퍼스 - 올인원 패키지: 컴퓨터 공학 11강

Comments