사용자가 응용 프로그램을 실행할 수 있는 기반 환경을 제공하여 컴퓨터를 편리하게 사용할 수 있도록 도와주고, 하드웨어를 효율적으로 사용할 수 있도록 다양한 기능을 제공하는 소프트웨어이다.
컴퓨터 자원을 관리하는 면에서 운영체제의 역할은 다음과 같다.
현대의 수많은 운영체제에서 하나 이상의 프로그램이 동시에 메모리에 적재된다. 프로세서는 즉시 한 프로그램으로 부터 하나의 명령만을 수행할 수 있지만, 여러개의 프로세스들은 나머지 프로세스들이 일시적으로 대기 상태에 있는 동안 각 프로세스에 CPU를 일시적으로 할당한다. 이 때 프로세스들을 동시실행(concurrent excution, 여러개의 프로그램을 하나의 컴퓨터에 실행하는 것을 뜻함)을 하기 위해 CPU 스케줄링이 필요하다.
concurrent(병행) 과 parallel(병렬) 은다르다. concurrent(병행)은 하나의 CPU 를 다수의 프로세스가 시간을 나누어 사용하는 것이지만, parallel (병렬) 은 다수의 CPU 에서 다수의 프로세스들이 동시에 실행 하는것을 말한다.
[참고문헌]