컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
컴퓨터 하드웨어만 가져다 놓고 사용자들이 사용하도록하면 아무도 사용하지 못함, 운영체제가 설치되어 있지 않으면 컴퓨터는 그저 고철덩어리에 지나지 않는다. 또는 굉장한 실력을 가진 사람만이 컴퓨터를 사용할 수 있다.
운영체제를 설치하면 운영체제와 컴퓨터 하드웨어가 한몸이 되어 컴퓨터 시스템이 되고 사용자는 하드웨어에 직접 접근하지 않고 운영체제와만 인터페이스한다.
운영체제는 동시 사용자/프로그램들이 각각 독자적 컴퓨터에서 수행되는 것 같은 환상을 제공한다.
하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행한다.
프로세서, 기억장치, 입출력 장치등의 효율적 관리
자원이란 ? 영어로 resource, 컴퓨터 내의 CPU나 메모리, 각종 입출력 장치 (하드 디스크 같은 보조기억 장치)
여러 사용자들이 자신의 프로그램을 컴퓨터에서 실행시키는데 이들은 자기 자신만의 컴퓨터가 잇다고 생각하지만 실제 컴퓨터는 하나이다. 컴퓨터엔 CPU가 원칙적으론 하나이다. (요즘엔 멀티 코어등 CPU가 여러개인 컴퓨터도 있다. ) 그렇다면 여러 프로그램이 동시에 실행되려면 어떻게 되어야 하는가 ? 아주 짧은 간격으로 번갈아 가면서 사용해야 한다. CPU가 시간을 여러 프로그램들에 번갈아 가면서 할당해 실행한다. 짧은 시간간격으로 번갈아 가면서 실행하기 때문에 사용자는 동시에 프로그램을 실행하는 것처럼 느낀다.
메모리는 하나의 메모리가 통으로 주어져있고, 여러 프로그램이 동시에 실행되어야 하므로 메모리를 쪼개서 프로그램들에 할당되어 있다. 그렇다면 각 프로그램마다 어떻게 얼마나 할당해야하는지 의문이 생긴다. 이를 운영체제가 해준다.
각각의 주제에 대해 여러 알고리즘이 존재한다. CPU를 어떤 시간간격으로 분배할 것인지 어떤 순서로 분배할 것인지 얼마나 분배할 것인지 등이다.
무조건 모든 프로그램에 시간, 메모리, 순서를 동일하게 분배하는 것이 좋은 것은 아니다. 우선순위가 있을 수도 있고 프로그램의 필요 메모리등이 다를 수 있다. 따라서 이러한 것을 고려해 효율적으로 자원을 관리하는 것이 매우 중요하다. 효율적으로 관리하되 너무 차별적이면 안된다. 효율성만 생각하다보면 특정 프로그램은 계속해서 실행되지 않는 불상사가 일어날 수 있다.
Operating System Concepts 10th
KOCW 강의 - [운영체제] 이화여자대학교 반효경 교수