컴퓨터 시스템
컴퓨터 시스템은하드웨어 위에 운영체제가 작동한다 그 운영체제는 User interface frogram이 작동하며 그 위에 우리가 사용하는 프로그램들이 동작하는 식으로 운영된다
운영체제는 확장된 기계로서 지저분한(상세한) 하드웨어들을 감추고 추상화되고 깔끔하며 직관적이고 편리한 모습들을 사용자에게 제공해준다.
또한 자원 관리자의 역할을 한다. 각 프로그램은 시간적 측면에서 자원을 공유하고, 공간적 측면에서 자원을 공유한다.
시간적 측면에서 자원을 공유한다. -> CPU, printer
공간적 측면에서 자원을 공유한다. -> Memory
운영체제를 통해 한개의 CPU가 여러개의 프로그램에 접근할 수 있는 스케쥴링 역할을 하기 때문이다.
다중 프로그래밍:
실선은 CPU를 사용중인 구간, 점선은 CPU가 쉬는구간을 의미한다. CPU가 쉬는 구간이 생기는 이유는 사용자에게서 입력을 받고있다던가, 연산을 완료해서 화면에 출력하는 구간이던가. 이와같은 이유로 생기게 될 수 있다.
다중 프로그램을 실시하지 않을 경우 A프로그램이 끝나야 B프로그램을 처리할 수 있으며, A가 쉬는 시간이 발생하면 그저 시간을 낭비하게 되는것이다.
이 후 다중프로그래밍이 개발되었다. 이는 옛날에 CPU가 인간의 인력보다 값진 시절, CPU를 최대한 일을 시키기위해(활용하기위해) 발전이 되었다. 최대한 CPU를 효율적으로 활용하기 위해 발전된 다중 프로그래밍은 두 프로세스를 스위칭 해가며 처리하게 된다.
두 프로그램을 모두 메모리(RAM)에 적재한다. 이유는 보조기억장치(하드디스크)는 주기억장치(RAM)에비해 월등히 속도가 느리기 때문이다. 만약 스위칭 해가며 처리하는데, 주 기억장치에 적재되어있지 않다면 하드에서 메모리로 올리는 시간 또한 유휴시간으로 발생하기 때문이다.
여러 프로그램 처리 기법이 존재하지만 다중 프로그램을 예로 들었다. 이처럼 운영체제는 하드웨어를 기반으로 사용자에게 인터페이스를 제공해줄 뿐 아니라 복잡한 하드웨어의 추상화를 이루어주고, 시스템 하드웨어를 관리한다. 또한 입, 출력과 자원관리, 스케쥴링등.. 전반적인 소프트웨어와 하드웨어를 관리한다.