현대의 운영체제는 인터럽트 구동식(interrupt driven)으로 사용자로부터 받는 인터럽트나 운영체제의 요청, 오류에 의해 일어나는 트랩(trap)이 발생할 경우에만 작업을 시작한다. 하나의 인터럽트당 하나의 인터럽트 서비스 루틴이 제공된다. 운영체제 내에서는 자원을 공유하기 때문에 한 프로그램의 오류는 그 프로그램 내에서만 영향을 미치도록 제어해야 한다. 이러한 보호 기능이 없으면 컴퓨터 시스템은 프로세스를 하나씩 밖에 실행하지 못하거나 모든 출력 결과를 의심할 수 밖에 없기 때문이다.
운영체제의 가장 중요한 능력은 다중 프로그래밍(multiprogramming)이다. 이는 CPU가 항상 하나의 작업을 실행할 수 있게 구성하는 능력으로 이를 통해 CPU의 이용률을 증가시킬 수 있다.시분할 시스템은 다중 프로그래밍을 응용한 형태로, 다수의 작업을 짧은 시간 간격으로 번갈아가며 행하는 시스템이다. 시분할과 다중 프로그래밍 운영체제에서는 메모리에 여러 개의 작업이 동시에 적재되어야 한다. 작업들을 적재시키는 과정에서 메모리 공간이 부족해 몇 작업만 선별해서 메모리에 적재시켜야 할 때가 있는데, 이러한 과정을 작업 스케줄링 이라 한다. 그리고 이 메모리 내의 여러 개의 작업들 중 하나의 작업을 선택해 CPU에 적재해야 하는데, 이를 CPU 스케줄링이라 한다. 병행해서 실행되는 다수의 작업은 프..
처음 다중처리기 시스템은 단순히 칩을 연결한 형태였다. 그러나 기술이 발전함에 따라 칩 내부에 여러 개의 코어(core)를 넣는 방식으로 바뀌게 된다. 우리가 흔히 들어본 듀얼코어, 쿼드코어 등이 이것이다. 이 구조는 칩을 여러개를 연결한 것 보다 전력 소모가 줄어들고 통신 속도가 늘어나게 되었다. 이 방식에서는 캐시와 메모리를 제외하면 운영체제는 코어 각각을 하나의 표준 처리기로 인식한다. 블레이드 서버(blade server)라는 것도 있다. 하드웨어 적으로는 다수의 보드들을 하나의 섀시 안에 장착시키는 이 방식이라 볼 수 있다. 블레이드 서버 내에는 자체적인 운영체제를 갖고 있기 때문에 독립적으로 실행 시킬 수 있다. 클러스터형 시스템(Clustered System)은 이러한 다중처리기 시스템을 컴..
최근 단일 처리기 시스템(Single-Processor Systems)에서 다중 처리기 시스템(Multi-Processor Systems)로 넘어가면서 크게 세가지 능력이 향상되었다. 1. 처리량당연하지만, 처리기가 늘어날 수록 작업할 수 있는 양도 늘어난다. 단, n개의 처리기가 1개의 처리기에 비해 n배 이하의 처리량을 보이는데, 각 처리기가 정확히 동작하도록 유지시키는 것에 드는 추가 비용과 공유 자원에 대한 경쟁 등의 요인이 전체 처리량을 떨어뜨린다. 2. 경제성똑같은 수의 처리기가 있더라도 처리기 외의 장치는 다중 처리기 시스템에서는 하나만 필요하기 때문에 가성비가 좋아진다. 3. 신뢰성한 프로세서가 기능을 상실해도 다른 프로세서가 일을 대신 할 수 있다. 이를 우아한 퇴보(graceful de..
장치는 보통 여러개가 장치 제어기에 연결되어 있고 그 장치 제어기들이 CPU와 메모리에 연결되어 있다.운영체제는 보통 각 장치 제어기마다 디바이스 드라이버를 두는데, 이는 장치 제어기의 신호를 이해하고 운영체제가 장치에 대해 일관된 인터페이스를 유지하도록 하기 위함이다. 현재는 대량의 데이터를 효율적으로 전달하기 위해 직접 메모리 접근(Direct Memory Access, DMA)장치가 사용된다. DMA 방식은 장치에 대한 버퍼, 포인터, 입출력 카운터를 세팅한 후 장치 제어기가 CPU를 거치지 않고 메모리와 직접적으로 데이터 블록 전체를 교환하도록 한다. 이러한 방식을 사용하면 그 동안 CPU는 다른 작업을 실행할 수 있게 된다.