본문 바로가기
study/운영체제

운영체제 - 시스템콜, 사용자모드와 커널모드

by 고기만두(개발자) 2021. 11. 21. 12:01
728x90
반응형

운영체제 1

오늘 이해해야 할 개념 2가지

1. 시스템 콜

2. 사용자 모드와 커널 모드


1. 시스템 콜

운영체제 도서관
도서관 짤을 검색하다 드라마 로맨스는 별책부록 의 한 장면에 캡션을 달아 보았다.

시민이 도서관에 원하는 책을 요청하면, 도서관은 그 책을 찾아서 시민에게 빌려준다.

그리고 반납기한이 되면 시민은 책을 반납해야 한다.

 

이와 똑같다.

운영체제에 응용 프로그램이 원하는 하드웨어 자원(메모리, CPU시간, IO 디바이스 사용 허가/제어)을 요청하면,

운영체제는 이를 프로그램에게 넘겨준다.

그리고 기한이 다 되면, 운영체제는 자원을 회수한다.

 

운영체제란
출처 - 위키피디아

이 그림에서 보듯,

사용자가 어플리케이션을 실행하면 운영체제를 통해 하드웨어에게 자원을 할당받아서 어플리케이션이 실행된다.

 

사용자가 운영체제 기능과 서비스를 조작할 수 있도록 인터페이스를 제공하는데,

이를 가능하게 하는 프로그램을 쉘(Shell)이라고 한다.

쉘에는 두 가지 종류가 있다.

  • CLI : 터미널 환경. 명령어를 라인 바이 라인으로 입력해야 하는 유닉스 / 리눅스 같은 것들
  • GUI : 그래픽을 보며 마우스로 클릭할 수 있는 맥, 윈도우 같은 것들

 

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

이를 API(Application Programming Interface)라고 한다.

보통 각 프로그래밍 언어별로 운영체제 기능을 활용하기 위해

함수 라이브러리 형태로 제공되어 시스템이 갖다 쓸 수 있도록 한다.

 

그리고 응용프로그램이 API를 통해 운영체제의 각 기능을 사용하고 요청하기 위해서, 

운영체제는 시스템 콜(System call, a.k.a 시스템 호출 인터페이스) 이라는 명령/함수를 제공한다.

API는 시스템 내부에서 시스템 콜을 호출하는 형태를 띄는 경우가 많다.

 

예시를 보자.

시스템콜 작동예시
출처 - 패스트캠퍼스 컴퓨터공학 올인원패키지 _ 운영체제

API는 파일을 오픈하는 open()같은, 여러가지 운영체제에서 사용할 수 있는 함수를 제공한다.

함수를 사용하기 위해 시스템 콜이 필요하다.

 

그런데 사용자 모드는 뭐고 커널 모드는 뭘까?


2. 사용자모드와 커널모드

관리자 권한으로 실행
관리자 권한 실행도 일종의 커널모드
커널모드
출처 - 패스트캠퍼스 컴퓨터공학 올인원패키지 _ 운영체제

사용자 모드사용자가 접근할 수 있는 영역을 제한적으로 두고,

프로그램의 자원에 함부로 침범하지 못하는 모드이다.

코드 작성, 프로세스 실행 같은 일반적인 행동들을 수행한다.

 

반면 커널 모드는 OS가 사용하는 모드로, 모든 자원(드라이버, 메모리, CPU 등)에 접근하고 명령할 수 있다.
컴퓨터 내부에서 모든 자원에 접근하고 변경할 수 있다고 생각하면 된다.

커널 모드를 실행하여 커널 모드에서만 실행할 수 있는 기능들을 사용하려면, 반드시 시스템 콜을 거쳐야 한다.

 

응용프로그램이 실행되어

-> 운영체제 기능이 필요한 API를 호출하면

-> 시스템콜을 호출하고, 커널모드로 변경되어

-> OS내부에서 명령이 실행되고

-> 다시 응용 프로그램으로 돌아가게 된다.

 

728x90
반응형

댓글