티스토리 뷰
https://www.youtube.com/watch?v=1PEe33_INZc&list=PLVsNizTWUw7FCS83JhC1vflK8OcLRG0Hl&index=25
운영체제가 뭘까?
컴퓨터 부품들은 전기만 공급하면 마법처럼 알아서 작동하는 것이 아니다.
컴퓨터부품들을 동작시켜주는 가장 근원적인 프로그램이 운영체제다.
운영체제란
모든 프로그램은 실행을 위해 자원을 필요로 한다.
자원/시스템 자원 : 프로그램 실행에 있어서 마땅히 필요한 요소들(애매모호)
- 프로그램 실행에 있어 마땅히 필요한 요소
- 컴퓨터의 네 가지 핵심 부품 포함
운영체제는 실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램
운영체제 또한 프로그램이기에 메모리에 적재되서 실행되고, 너무 중요하기 때문에 따로 적재되는 영역이 있다.
이 영역을 커널 영역이라고 부른다.
일반 프로그램들은 사용자 영역에 적재된다.
응용 프로그램은 일반적인 프로그램을 지칭한다.
운영체제의 역할
운영체제는 응용프로그램의 메모리 관리를 해준다.
적당한 공간에 메모리를 적재해서 넣고, 종료 시 깨끗하게 만드는 역할을 한다.
운영체제는 CPU도 관리한다.
CPU를 실행할 때는 인간이 인식하지 못할 정도로 빠르게 동시에 실행하는 중이다.
그 때, 어떠한 프로그램을 먼저 실행할지도, CPU가 얼마나 점유 할건지도 운영체제가 전부 해준다.
응용 프로그램과 하드웨어 사이의 연결다리인 프로그램.
운영체제는 정부랑 많이 비교가 되곤 한다.
다양한 자원들을 관리해주고, 아주 효율적으로 배분해주는 역할, 문제 해결 역할
다양한 정부 체제 부서가 있는 것처럼, CPU 관리 부서, 프로세스 관리 부서, 파일 시스템 관리 부서 등등 다 나뉘어져 있다.
운영체제를 배워야 하는 이유
운영체제 없이 프로그램을 개발하는 건 끔찍한 일이다.
전부 일일이 다 개발자가 입력해야 한다.
하드웨어 접근 코드, 더하는 코드, 계산 결과 출력 코드. 전부 다 코드를 개발자가 만들어야 한다.
C언어 조차도, 운영체제에 있는 언어를 실행해라라는 코드를 가지고 있는 것이다.
파일 생성조차도 운영체제가 가지고 있는 것이다.
출력도, 읽기 쓰기도 전부.
그렇다면 반대로 다 해주면 운영체제를 왜 알아야 할까?
운영체제는 사용자를 위한 프로그램이 아니라, 프로그램을 위한 프로그램이기 떄문이다.
그렇기에 프로그램을 만드는 개발자는 운영체제를 알아야 운영체제의 도움을 받으면서 개발할 수 있다.
문제가 발생했을 때, 운영체제가 가장 먼저 알아채기 때문이다.
프로그램이기 때문에 오류 메세지 등을 통해서 개발자와 대화도 할 수 있다.
문제 해결 능력 - 오류 메세지에 대한 깊은 이해
기업에서는 기술 면접을 통해 검증한다.