CS/운영체제

[OS] 운영체제 거시적으로 보기

yoon_seon 2023. 9. 7. 02:23

운영체제의 역할

컴퓨터 구조 파트에서 다양한 컴퓨터 부품들(CPU, 메인 메모리, 보조기억장치, 입출력장치..)은 운영체제가 움직이게 한다.

여기서 말하는 다양한 컴퓨터 부품들은 리소스의 일종이다.

(시스템)리소스란 자원이라고도 하며 실행에 마땅히 필요한 요소를 말한다. 예를 들어 CPU는 프로그램 실행에 마땅히 필요한 요소이기 때문에 리소스이며 메모리, 파일, 네트워크를 통해 주고받는 정보 또한 리소스의 일종이 될 수 있다. 즉, 컴퓨터 구조 파트에서 학습한 다양한 컴퓨터 부품들을 비롯한 리소스들은 운영체제가 움직이게 만든다 라고 볼 수 있다. 관련된 용례로써는 '리소스를 소비/낭비' , '리소스 모니터링'  등이 있다.

참고로 리소스 모니터를 통해서 현재 실행되고있는 프로세스를 확인할 수 있다.

프로세스 : 실행중인 프로그램

 

운영체제 란?

운영체제는 자원을 관리하고 할당하는 특별한 프로그램이다. 모든 프로그램들은 실행이 되려면 RAM(메모리)에 적재가 되어야한다. CPU는 RAM에 적재된 프로그램을 인출해서 실행하고 인출해서 실행하고를 반복하면서 메모리에 있는 프로그램이 실행된다고 보면 된다.

메모리 내에 운영체제가 적재되는 공간이 따로있다. 

  • 커널 영역 : 메모리 내에 운영체제가 적재되는 공간
  • 사용자 영역 : 커널영역이 아닌 나머지 영역

운영체제는 커널영역에 할당되어있는 프로그램으로써 사용자영역에 할당되어있는 많은 프로그램들에게 메모리, CPU, 디스크 자원을 관리하고 할당해주는 프로그램이다.

운영체제는 하드웨어와 응용프로그램 사이에 위치하는 프로그램이라고 할 수 있다.

 

커널(Kernel) 이란?

커널운영체제의 핵심 부분으로써 하드웨어와 응용 프로그램 사이에서 인터페이스를 제공하는 역할을 하며 컴퓨터 자원들을 관리하는 역할을 한다. 즉, 커널은 인터페이스로써 응용 프로그램 수행에 필요한 여러가지 서비스를 제공하고, 여러가지 하드웨어(CPU, 메모리) 등의 리소스를 관리하는 역할을 한다.

 

커널(kernel)은 운영체제의 핵심부와 같은 부분이다. 운영체제를 다루고 있는 소스코드의 양은 굉장히 방대하지만 그중에서도 운영체제가 제공해주는 핵심서비스를 제공해주는 운영체제의 한 부분을 커널이라고 한다.

 

운영체제 중 커널이 아닌 것도 있을까? → 클릭, 더블클릭을 하거나 드래그를 하는 사용자 인터페이스는 커널이 제공해주는 시스템이 아니다.

 

응용 프로그램은 하드웨어에 임의로 접근할 수 없고 반드시 운영체제를 통해서만 접근할 수 있다.

이중모드는 프로그램이 실행되는 모드를 커널모드와 사용자모드로 나누는 실행방식이다.

  • 커널모드 : 커널 영역의 코드를 실행할 수 있는 모드
  • 사용자 모드 : 커널 영역의 코드를 실행할 수 없는 모드

 

시스템 콜 이란?

응용 프로그램이 자원에 접근하려면 운영체제의 도움을 받아 커널모드로 전환되어 실행이 되어야하는데 여기서 커널모드로 전환하는 것을 시스템 콜 이라고 한다.

시스템 콜 : 운영체제 서비스를 제공받기 위해 커널 모드로 전환하는 것(시스템 콜은 인터럽트에 일종이다.)

 

커널이 제공해주는 핵심 서비스 3가지

  • 프로세스 관리
  • 자원 관리 접근 및 할당
  • 파일 시스템 관리

 


정리

  • 운영체제란 메모리 내에 커널영역에 저장되는 시스템 자원을 할당하고 관리하는 특별한 프로그램이다.
  • 리소스란 실행에 마땅히 필요한 요소를 말한다.
  • 메모리 내에는 커널 영역과 사용자 영역이 있으며 운영체제가 저장되는 영역을 커널 영역이라하고 커널영역을 제외한 나머지 영역을 사용자 영역이라고 하며 사용자 영역에는 응용프로그램과 같은 운영체제를 제외한 프로그램들이 저장된다.
  • 커널은 운영체제의 핵심 부분으로 하드웨어와 응용 프로그램 사이에서 인터페이스를 제공하는 역할을 하며 CPU, 메모리, 디스크 자원을 관리하는 역할을 한다. 
  • 운영체제 중 커널이 아닌 시스템은 사용자 인터페이스와 같은 것들이 있다.
  • 응용 프로그램이 하드웨어에 접근하기 위해서는 반드시 운영체제를 통해서 접근할 수 있다.
  • 이중모드는 프로그램이 실행되는 모드를 커널모드와 사용자모드로 나누는 실행 방식으로 커널모드는 메모리 내의 커널영역의 코드를 실행할 수 있는 모드이다.
  • 시스템 콜이란 운영체제 서비스를 제공받기 위해서 커널 모드로 전환하는 것이다.
  • 커널이 제공해주는 핵심서비스는 프로세스관리, 자원 관리 및 할당, 파일 시스템 관리가 있다.