모든 프로그램은 하드웨어
과 자원
이 필요하다.
이때 실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램이 운영체제이다.
운영체제 역시도 프로그램(ex. 크롬, 엑셀)이기때문에 메모리에 적재되어야하는데, 특별한 프로그램이기 때문에 항상 컴퓨터가 부팅될 때 메모리 내의 커널 영역
에 적재되어 실행된다.
커널 영역을 제외한, 사용자가 이용하는 응용프로그램이 적재되는 영역은 사용자 영역
이라고 한다.
커널 영역에 적재되어
1. 컴퓨터 시스템이 제대로 작동하도록 한다.
2. 프로그램 개발 및 실행을 위한 환경을 제공한다.
지금 내가 실행하고있는 크롬, 노션, 카카오톡 등 응용 프로그램은 메모리 내의 사용자 영역
에 적재되어있는데, 각각 메모리 주소를 갖고있다. 이 메모리 주소가 겹치지 않도록 적당한 공간을 찾아주는 역할을 운영체제가 수행한다. 또한 프로그램 실행을 위해 최대한 공정한 방법으로 여러 프로그램들에게 CPU를 할당한다. 마우스, 키보드. 프린트 등의 입출력 장치의 요청이 들어오면 응용프로그램과 하드웨어 사이에서 응용프로그램에 필요한 자원을 할당하고, 응용프로그램이 올바르게 실행되도록 관리한다.
운영체제가 있기에 하드웨어를 조작하는 코드에 대한 고민없이 프로그램 개발이 가능하다.
운영체제가 없다면, 간단한 계산기 프로그램을 만들고자할 때도 프로그램을 메모리에 적재하는 코드, CPU가 수를 연산하는 코드, 모니터에 계산 결과를 출력하는 코드를 다 작성해야한다.
즉, 운영체제는 내가 작성한 프로그램이 어떻게 하드웨어 상에서 작동하는지 다 알고 있다.
운영체제와의 대화를 통해 하드웨어를 이해한다면 문제 해결의 실마리를 찾을 수 있다.