데이터과학 삼학년

운영체제 구조 - 시스템콜 , API, 사용자 모드/ 커널 모드 본문

Computer Science/Operating System

운영체제 구조 - 시스템콜 , API, 사용자 모드/ 커널 모드

Dan-k 2020. 3. 6. 19:37
반응형

시스템 콜

 

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

→ 도서관에 비유

  • 운영체제는 도서관

  • 응용 프로그램은 시민

  • 컴퓨터 하드웨어는 책

  • 운영체제의 역할

    • 시민이 도서관에 책(자원)을 요청

    • 도서관은 적절한 책을 찾아 시민에게 대여

    • 시민의 기한이 다 되면, 도서관이 책 회수

  • 응용 프로그램의 요청시
    메모리 허가 및 분배 / CPU 시간 제공 / IO Devices 사용을 허가 및 제어

 

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

  • 쉘(Shell)

    • 사용자가 OS 기능과 서비스를 조작할 수 있도록 인터페이스를 제공

    • 쉘은 CLI와 GUI 두 종류로 분류

 

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

  • API (Application Programming Interface)

    • 해당 신청서 양식이 아니면 도서관(OS)에서 시민(Application)의 요청을 받지 않음

    • 함수로 제공

    • 보통은 라이브러리 형태로 제공

    • (위 도서관의 비유로 치자면, 책 대여 신청서 개념으로 이해!)

  • 시스템 콜

    • 운영체제가 각 기능을 사용할 수 있도록 시스템 콜이라는 명령 또는 함수를 제공

  • API 내부에는 시스템 콜을 호출하는 형태로 만들어지는 경우가 대부분

 

운영체제를 만드는 순서

  1. 운영체제를 개발 (kernel)

  2. 시스템 콜을 개발

  3. C API (library) 개발

  4. Shell 프로그램 개발

  5. 응용 프로그램 개발

 

운영체제와 시스템 콜

  • 시스템 콜 정의 예

    • POSIX API, 윈도우 API

    • 맥OS 내부 명령들은 UNIX 계열과 비슷하다고 보면 됨.
      POSIX API 사용하고 있다고 이해하면 된다!

 

API: 각 언어별 운영체제 기능 호출 인터페이스 함수

시스템콜: 운영체제 기능을 호출하는 함수

 

정리

  • 운영체제는 컴퓨터 하드웨어와 응용 프로그램을 관리한다.

  • 사용자 인터페이스를 위해 쉘 프로그램을 제공한다.

  • 응용 프로그램이 운영체제 기능을 요청하기 위해, 운영체제는 시스템 콜을 제공한다.

    • 보통 시스템 콜을 직접 사용하기보다는, 해당 시스템 콜을 사용해서 만든 각 언어별 라이브러리(API)를 사용한다.

 

 

사용자 모드와 커널 모드

 

CPU Protection Rings

  • CPU도 권한 모드를 가지고 있음

    • 응용 프로그램이 사용

    • OS가 사용

    • 사용자 모드 (user mode)

    • 커널 모드 (kernel mode): 특권 명령어 실행과 원하는 작업 수행을 위한 자원 접근을 가능케 하는 모드

위의 Ring 3을 사용자 모드, Ring 0을 커널 모드라고 함

 

응용 프로그램과 운영체제

  • 우리가 만드는 프로그램은 맨 위에서 놀고 있다.

예)

응용 프로그램에서 다음의 작업을 수행:

  1. 1~1000을 더하고

  2. 파일에서 데이터를 가져오고

  3. 해당 데이터와 1~1000 더한 값을 또 더해서 출력

위에서 1,3번은 사용자 영역에서 수행이 가능하지만,

2번을 수행하려면 커널 영역에서 수행이 됨

 

시스템 콜은 커널 모드로 실행

  • 커널 모드에서만 실행 가능한 기능들이 있음

  • 커널 모드로 실행하려면, 반드시 시스템 콜을 거쳐야 함

    • OS를 만들 때 시스템 콜을 잘 만들어두어야 한다.

  • 시스템 콜은 운영체제가 제공

 

사용자 모드와 커널 모드

  • 함부로 응용 프로그램이 전체 컴퓨터 시스템을 헤치지 못함

    • 주민등록등본은 꼭 동사무소 혹은 민원24에서 특별한 신청서를 써야만 발급되는 것과 같음 (사용자 모드)

    • 동사무소 직원은 특별한 권한을 가지고 주민등록등본 출력 명령을 실행 (커널 모드)

 

코드 예시 #1

 

728x90
반응형
LIST

'Computer Science > Operating System' 카테고리의 다른 글

운영체제 개요 및 역사  (0) 2020.02.28
Comments