<aside> 💡 자주 들어봤던 운영체제란 것에 대해서 알아보자
</aside>
(참고: https://parksb.github.io/article/5.html)
운영체제(Operating System, OS)란 컴퓨터의 하드웨어를 관리하고, 하드웨어와 소프트웨어 그리고 사용자를 매개하는 프로그램이다. 운영체제는 커널과 커널 모듈(Kernel module)들로 구성되는데, 커널이 운영체제의 핵심이다보니 일반적으로 운영체제와 커널은 동일시 된다.
위의 정의에서 운영체제가 하는 역할을 짐작 해 볼 수 있을 것이다.
우리가 자주 얘기하는 프로그램. 정확히 무엇을 의미할까? 우리가 컴퓨터에서 쓰는 웹브라우저나, 워드, 파워포인트 같은 것들을 지칭한다. 운영체제는 이러한 프로그램들이 효율적으로 일을 할 수 있는 환경을 제공하는 것이다. ***프로그램은: 작업의 순서(setup instruction)!!!
응용프로그램이 컴퓨터에게 제대로 일을 시키기 위해서는 운영체제로 부터 권한을 부여 받아야 하며, 그 이후, 응용프로그램이 운영체제와 소통하기 위해서 운영체제는 API(인터페이스)를 제공해야 하며, 응용프로그램이 컴퓨터의 시스템자원을 사용할 수 있도록, 운영체제가 차원에서 제공하는 다양한 함수를 **시스템 콜(System Call)**이라고 한다. (시스템콜은 응용프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스)
a program in execution
운영체제에서는 실행중인 하나의 애플리케이션을 process라고 부른다. 사용자가 만약 애플리케이션을 실행하게 되면, 운영체제로부터 실행에 필요한 메모리를 할당받고, 애플리케이션의 코드를 실행하게 된다. 그리고 이렇게 실행된 애플리케이션을 하나의 프로세스라고 한다.
하나의 애플리케이션은 여러개의 프로세스를 생성하기도 한다. (활성상태 보기로 확인)