Last update: @1/7/2023
•
운영체제(operating system)
: 실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램
◦
시스템 자원
: 프로그램 실행에 마땅히 필요한 요소
◦
운영체제와 메모리 영역
▪
운영체제는 매우 특별한 프로그램이기 때문에 항상 컴퓨터가 부팅될 때 메모리 내 커널 영역( kernel space)이라는 공간에 따로 적재되어 실행됨
▪
커널 영역을 제외한 나머지 영역인 사용자 영역(user space)에는 사용자가 이용하는 응용 프로그램이 적재됨
◦
역할
: 운영체제는 응용 프로그램과 하드웨어 사이에서 응용 프로그램에 필요한 자원을 할당하고, 응용 프로그램이 올바르게 실행되도록 관리하는 역할을 함
▪
운영체제는 실행할 프로그램을 메모리에 적재하고, 더 이상 실행되지 않는 프로그램을 메모리에서 삭제하며 지속적으로 메모리 자원을 관리
▪
어느 한 프로그램이 CPU를 독점하면 다른 프로그램들은 올바르게 실행될 수 없기 때문에 운영체제는 최대한 공정하게 여러 프로그램에 CPU 자원을 할당
▪
입출력장치에 대한 여러 프로그램들의 사용을 관리
◦
운영체제 또한 관리할 자원별로 기능이 나누어져있음(CPU, 메모리, 입출력장치, 파일 시스템, 프로세스 등)
◦
운영체제의 의의
▪
운영체제가 하드웨어를 조작하고 관리하는 기능들을 제공하기 때문에 개발자는 하드웨어를 조작하는 코드를 직접 작성할 필요 없이 운영체제의 도움을 받아 간편하게 개발할 수 있음
◦
개발자가 운영체제를 알아야 하는 이유
▪
운영체제 지식을 알아야만 해결할 수 있는 문제들이 많기 때문
▪
접하게 되는 대다수의 오류 메시지의 근원은 운영체제임. 작성한 소스 코드를 하드웨어가 제대로 실행하지 못하면 운영체제는 여러분에게 오류 메시지를 띄워 줌. 프로그래밍 문법만 학습한 사람들은 운영체제의 메시지를 이해하기 어렵고, 문제를 진단하고 해결하기도 어려움