OS란? 위키백과를 보자
운영 체제 또는 오퍼레이팅 시스템은 시스템 하드웨어를 관리할 뿐 아니라 응용 소프트웨어를 실행하기 위하여 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어이다. 최근에는 가상화 기술의 발전에 힘입어 실제 하드웨어가 아닌 하이퍼바이저 위에서 실행되기도 한다.
표를 보면 쉽게 이해가 가능하다. OS는 하드웨어 및 소프트웨어 자원을 효율적으로 관리하여 사용자가 편리하게 이용할 수 있도록 하는 시스템 소프트웨어이다.
예를 들면 OS는 아이콘을 클릭하여 프로그램을 실행하고, 프로그램을 삭제하고, 제어판의 기능을 이용하는 등 자원과 입출력, 파일 등을 관리하여 사용자가 기계언어로 소통하지 않고도 이용하기 쉬운 형태로 자원을 제공해준다.
그럼 여기서 여러가지 기능들을 제어하는 커널(Kernel)이란 무엇일까?
위키백과를 보자
컴퓨터 과학에서 커널은 컴퓨터의 운영 체제의 핵심이 되는 컴퓨터 프로그램의 하나로, 시스템의 모든 것을 완전히 통제한다. 운영 체제의 다른 부분 및 응용 프로그램 수행에 필요한 여러 가지 서비스를 제공한다. 핵심이라고도 한다.
일단 이 정도만 알아두면 될 것 같다.
커널에 대한 자세한 설명은 내용이 매우 많아서 다음에 다른 페이지에 다루겠다.!!
멀티 프로그래밍(Multi-programming)과 타임 쉐어링(Time-sharing) 방식으로 작동한다.
멀티 프로그래밍이란 I/O작업이 동작하지 않고 있을 떄 발생하는 CPU의 효율 저하를 해결하기 위해 Memory에 여러개의 Job(프로그램,프로세스)들을 저장하여 I/O 대기상태때 Job을 전환하면서 수행하는 방식이다. 우선순위의 작업을 먼저 처리할 수 없다는 단점이 있다.
타임 셰어링은 멀티 태스킹(multi-tasking)이라고도 불린다. 타임 셰어링은 CPU가 Job들을 빠르게 스위칭하면서 (일반적으로 10ms 마다) Job들을 수행한다. 매우 짧은 시간안에 스위칭하기 때문에 Job들이 거의 동시에 수행되는 것 처럼 느껴진다.