운영체제는 메모리, CPU 등 컴퓨터 하드웨어의 resource를 관리하는 소프트웨어의 집합체로 유저, application programs과 하드웨어 사이의 interface역할을 해줍니다.
시스템 관점에서 보면 OS는 CPU, Memory, Storage, IO device등의 자원을 관리하여 사용자들이 효과적으로 하드웨어 자원을 사용할 수 있도록 해준다. 또한 User program들이 이상행동을 하는 것을 방지해 주는 등 User Program을 관리해주는 일도 해줍니다.
유저의 관점에서 OS를 구분해보면 user Interface가 다른 것으로 구분할 수 있다.
UI (User Interface)는 크게 CLI(Command Line Interface)와 GUI(Graphical User Interface)로 나뉘게 된다.
CLI는 주로 개발자를 위한 환경으로 반복적인 작업을 쉽게 할 수 있다.
GUI는 보기 편리한 UI를 제공하여 일반적인 사용자들이 사용하고 있습니다.
OS가 하는 일
Process Management
process/thread의 생성, 실행 종료를 관리하고 누가 먼저 실행될지 CPU scheduling을 관리하고 resource를 공유와 동기화에 대한 작업을 해준다.
Memory Management
현재 사용 중인 메모리 부분을 추적하며 메모리로 이동할 프로세스와 데이터 결정하여 필요에 따라 메모리 공간 할당 및 취소하는 작업을 해준다.
I/O Management
I/O장치의 작업이 실행되고끝나는 것을 인지하며 Process가 해당 작업을 실행할 때 CPU가 놀지 않게 해준다.