CS/운영체제

[운영체제 ] 1. 운영체제 구조 - 커널 , 시스템 콜 , 쉘 , API

쉽코기 2021. 9. 18. 01:31

1. Application ( 응용 프로그램 ) , 운영 체제 , 하드웨어의 관계

  • 운영체제는 응용 프로그램이 요청하는 메모리를 허가 및 분배한다.
  • 운영체제는 응용 프로그램이 요청하는 CPU 자원을 규칙에 맞게 제공한다.
  • 운영체제는 응용 프로그램이 요청하는 IO Devieces 사용을 허가 / 제어한다.
  • 응용프로그램이 종료되면 운영체제는 응용프로그램이 점유하고 있던 메모리와 하드웨어를 회수한다.

 

**프로그램과 프로세스의 차이

:  하나의 프로그램도 여러개의 프로세스를 생성할 수 있다.  프로세스는 메모리를 할당 받고 cpu 에서 실행되고 있음을 의미한다. 예를들어 여러개의 메모장을 사용한다면 한개의 프로그램에서 여러개의 프로세스가 생성되는 것이다.

 


2. 커널모드

  • 파일 입출력, 프로세스 관리 , 하드웨어 접근등 핵심적인 기능을 수행 할수 있는 상태
  • 상용자 모드 (응용프로그램이 사용함) 에서 시스템 콜을 사용해서 커널모드로의 전환이 가능
  • CPU protect ring 의 level 0 에 해당함 

 

3. 쉘

  •  사용자가 OS 기능과 서비스를 조작 할 수 있는 사용자 인터페이스(UI) 를 제공하는 응용 프로그램
  •  쉘은 GUI , CLI 2가지로 나뉘며 GUI 는 그래픽을 이용한 OS 와의 커뮤니케이션을 CLI 는 명령 프롬프트 창을 이용한 커뮤니케이션을 제공한다.

 

4. 시스템콜

  • 운영체제의 기능을 호출하는 함수 이다.
  • user 혹은 응용프로그램이 직접적으로 kernel 에 접근할 수 없으므로 kernel 에서 수행해야할 기능을 시스템 콜을 통해 수행한다.
  • 일반적으로 직접 사용하기 보다는 시스템 콜들을 내포하고 있는 라이브러리(API)를 통해 간접적으로 사용한다.