tlov

[스터디] 1. 운영체제란? 본문

개발/운영체제

[스터디] 1. 운영체제란?

nowitzki 2024. 8. 15. 14:21

윈도우, 맥 OS, iOS, Lunux, 안드로이드 등등... 수 많은 운영체제가 컴퓨터 혹은 휴대폰에서 사용되고 있다. 도대체 운영체제가 무엇이길래 따로 공부해야할만큼 중요한 것일까? 왜, 개발자는 왜 운영체제를 알아야할까?

 

모든 프로그램은 실행을 위해 (시스템)자원을 필요로 한다.

ㄴ 자원 : 프로그램 실행에 있어서 마땅히 필요한 요소

ㄴ 자원에는 컴퓨터의 네 가지 핵심 부품이 포함된다.

ㄴ 하드웨어만을 자원이라고 칭하지는 않는다.

 

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

운영체제 또한 프로그램이기 때문에 메모리에 적재되어 실행된다. 하지만, 운영체제는 컴퓨터의 실행에서 중요한 역할을 하기 때문에 따로 메모리에 적재되는 영역이 할당되어 있는데 이를 커널 영역이라고 부른다. 번외로 커널 영역을 제외한 나머지 메모리 영역을 사용자 영역이라고 한다.

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

 

사용자가 어떤 응용 프로그램을 실행하면 사용자는 응용 프로그램을 메모리 어디에 적재하라고 하지도 않았는데 누가 응용 프로그램을 메모리에 어딘가에 적재해주는 것일까?

ㄴ 운영체제

 

 

운영체제의 CPU 관리

프로그램을 동시에 실행하는 것은 실제로 동시에 프로그램이 처리되는 것이 아니라 아주아주 빠르게 차례대로 실행시키고 있는 중인 것이다. 그럼 어떤 프로그램이 오래 실행되어야 하고, 어떤 프로그램을 나중에 실행해도 되는지 판단하고 관리하는 것은 누구일까?

ㄴ 운영체제

 

 

운영체제의 입출력 장치 관리

프린터라는 하드웨어가 있다면, 어떤 응용 프로그램에서 출력 중일 때 다른 응용 프로그램이 출력을 원하면 이를 잠시 대기 시키는 등의 입출력 장치의 관리 또한 맡고있다.

 

보조기억 장치에 있는 정보들을 파일 또는 디렉토리로 묶어 관리해주는 등의 일도 처리한다.

 

운영체제는 하드웨어와 응용 프로그램 사이에 위치하여 그 둘을 연결시켜주는 미들웨어와 같은 역할을 하는 특별한 프로그램이다.

 

운영체제 내부에서도 자원별로 관리하는 부분별로 묶여있다.

 

운영체제를 그럼 왜 알아야 함?

- 개발자 입장에서 운영체제가 없다면 자원을 접근하거나 조작하는 코드를 직접 하나하나 만들어야 한다.

- 하지만, 운영체제가 이러한 것들을 처리해줌으로 개발자는 자원을 조작, 접근하는 지식이 없어도 개발이 가능하다.

- 그럼 어차피 대신해줄건데 왜 알아야 하지?

  - 운영체제는 프로그램을 위한 프로그램

  - 그렇기에 프로그램을 마드는 개발자는 운영체제를 잘 알아야 한다.

  - 개발자가 만든 프로그램은 어찌되었든 운영체제 위에서 실행이 되고 운영체제의 도움을 받기 때문이다.

  - 또한, 개발한 프로그램이 어떤 문제를 일으킨다면 가장 먼저 운영체제가 알아채고 오류 메시지를 보여주는데

  - 이를 이해하기 위해서는 운영체제에 대한 이해가 필요