About 잔재미코딩 자료모음 문의하기 커뮤니티

시스템콜과 사용자/커널 모드

이해하기 쉽고, 장황하지 않은 자료를 기반으로 강의를 진행합니다.
AI · 풀스택 · 데이터 로드맵 Dave Lee 한 강사가 설계부터 강의까지 모두
사이트 바로가기

3. 시스템콜과 사용자/커널 모드

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

도서관으로 비유

  • 운영체제는 도서관

  • 응용 프로그램을 시민

  • 컴퓨터 하드웨어는 책

  • 운영체제의 역할

    • 시민은 도서관에 원하는 책(자원)을 요청함
    • 도서관은 적절한 책(자원)을 찾아서, 시민에게 빌려줌
    • 시민이 기한이 다 되면, 도서관이 해당 책(자원)을 회수함

응용 프로그램, 운영체제, 컴퓨터 하드웨어 관계

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

사용자, 응용 프로그램, 운영체제, 컴퓨터 하드웨어와 관계

사용자, 응용 프로그램, 운영체제, 하드웨어의 관계

출처: 위키피디아


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

  • 쉘 (Shell)
    • 사용자가 운영체제 기능과 서비스를 조작할 수 있도록 인터페이스를 제공하는 프로그램
    • 쉘은 터미널 환경(CLI)과, GUI 환경 두 종류로 분류

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


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

시스템 콜

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

https://www.gnu.org/software/libc/


운영체제를 만든다면?

  1. 운영체제를 개발한다. (kernel)
  2. 시스템 콜을 개발
  3. C API (library) 개발
  4. Shell 프로그램 개발
  5. 응용 프로그램 개발

운영체제와 시스템콜

  • 시스템콜 정의 예

API: 각 언어별 운영체제 기능 호출 인터페이스 함수 (각 언어별 인터페이스) 시스템콜: 운영체제 기능을 호출하는 함수


정리

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

운영체제 구조


CPU Protection Rings

  • CPU도 권한 모드라는 것을 가지고 있습니다.
    • 사용자 모드 (user mode by applications)
    • 커널 모드 (kernel mode by OS): 특권 명령어 실행과 원하는 작업 수행을 위한 자원 접근을 가능케 하는 모드
CPU의 권한 수준을 구분하는 보호 링

쉬었다 가시죠!

  1. (견과류·씨앗의) 알맹이
  2. (사상·주제의) 핵심
  1. (달걀견과류 등의 딱딱한) 껍데기
  2. 고둥 껍데기 모양의 것

shell 이란?

kernel 이란? - OS kernel


CPU Protection Rings

두 가지 모드

  • 사용자 모드 (user mode): 응용 프로그램이 사용
  • 커널 모드 (kernel mode): OS가 사용
사용자 모드와 커널 모드의 구분

응용 프로그램과 운영체제

  • 우리가 만드는 프로그램은 맨위에서 놀고 있습니다.
    응용 프로그램이 시스템 콜로 운영체제 기능을 요청하는 과정

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

  • 커널 모드에서만 실행 가능한 기능들이 있음
  • 커널 모드로 실행하려면, 반드시 시스템 콜을 사용해야 함(거쳐야 함)
  • 시스템 콜은 운영체제 제공
응용 프로그램이 시스템 콜로 운영체제 기능을 요청하는 과정

사용자 모드와 커널 모드

  • 함부로 응용 프로그램이 전체 컴퓨터 시스템을 헤치지 못함
  • 주민등록등본은 꼭 동사무소 또는 민원24시(정부 사이트)에서 특별한 신청서를 써야만, 발급
    • 동사무소 직원분들은 특별한 권한을 가지고, 주민등록등본 출력 명령을 실행

쉬었다 가겠습니다.

  • 응용 프로그래머와 시스템 프로그래머
응용 프로그래밍과 시스템 프로그래밍의 관계

Code example1

C 프로그램의 시스템 콜 호출 예

Code example2

unistd 헤더를 사용하는 시스템 프로그래밍 예

정리

  • 운영체제는 시스템 콜 제공
  • 프로그래밍 언어별로 운영체제 기능을 활용하기 위해, 시스템 콜을 기반으로 API 제공
  • 응용 프로그램은 운영체제 기능 필요시, 해당 API를 사용해서 프로그램을 작성
  • 응용 프로그램이 실행되서, 운영체제 기능이 필요한 API를 호출하면, 시스템 콜이 호출되서, 커널 모드로 변경되어 OS 내부에서 해당 명령이 실행되고, 다시 응용 프로그램으로 돌아간다.

운영체제 핵심을 체계적으로 정리한 온라인 강의입니다

한 강의로 끝내는 컴퓨터공학 핵심 (CS 지식 파트1)

컴퓨터구조, 운영체제, 네트워크, 기술면접