CS

[Operating System] 운영체제를 알아야 하는 이유

yerinpark 2023. 10. 25. 23:28

운영체제

커널 영역에 적재되는 프로그램

 

컴퓨터 부품들을 관리하고 프로그램을 작동시키는 프로그램.

실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는다.

 

 

e.g. Windows, macOS, Linux, andriod, iOS

 

 

 

운영체제란 무엇일까?

시스템 자원

프로그램 실행에 마땅히 필요한 요소들

e.g. CPU, 메모리, 보조기억장치, 입출력장치

 

c.f. 계산 프로그램은 CPU라는 하드웨어를, 이미지 저장 프로그램은 하드 디스크라는 하드웨어를 필요로 한다.

 

 

 

커널 영역(kernel space)

운영체제는 프로그램이기 때문에 메모리에 적재되어야 한다.

운영체제는 항상 컴퓨터가 부팅될 때 메모리내 커널 영역에 따로 적재되어 실행된다. 

 

c.f. 커널 영역을 제외한 나머지 영역, 사용자가 이용하는 응용 프로그램이 적재되는 영역을 사용자 영역(user space)라고 한다.

-> 운영체제는 커널 영역에 적재되어 사용자 영역에 적재된 프로그램들에 자원을 할당하고 올바르게 실행되도록 돕는다.

 

 

 

응용 프로그램(application software)

사용자가 특정 목적을 위해 사용하는 일반적인 프로그램

e.g. 워드 프로세서, 인터넷 브라우저, 메모장, 게임

 

 

 

운영체제의 역할

1. 응용 프로그램의 메모리 주소가 겹치지 않도록 적당한 공간에 프로그램을 적재해준다.

실행할 프로그램을 메모리에 적재하고, 더 이상 실행되지 않는 프로그램을 메모리에서 삭제하여 지속적으로 메모리 자원을 관리한다.

 

2. 어느 한 프로그램이 CPU를 독점하면 다른 프로그램들은 올바르게 실행될 수 없기 때문에 운영체제는 최대한 공정하게 여러 프로그램에 CPU 자원을 할당한다.

 

3. 동시에 두 개의 프로그램이 사용하지 못하도록 막고, 하나의 프로그램이 이용하는 동안 다른 프로그램은 기다리게 만들어 자원을 관리한다.

 

 

 

개발자가 운영체제를 알아야 하는 이유

운영체제는 하드웨어를 조작하고 관리하는 기능을 제공한다.

만약 운영체제가 없다면 하드웨어를 조작하는 코드를 개발자가 모두 직접 작성해야 한다.

e.g. 프로그램을 메모리에 적재하는 코드, CPU로 계산하는 코드, 모니터에 결과를 출력하는 코드 등

 

운영체제는 개발자에게 현재 하드웨어 상태가 어떻고, 코드가 어떻게 실행되었는지, 하드웨어 상에 어떤 문제가 있었는지 알려줄 수 있다.

-> 문제 해결의 단서 제공

e.g. 오류 메시지

 

 

 

더 알아봐야 할 것

커널이 무엇일까?

시스템 호출과 이중 모드

운영체제가 제공하는 핵심 서비스의 종류