운영체제
1. 운영체제란?
운영체제(operating system)는 컴퓨터 하드웨어를 관리하는 프로그램이다. 또한 운영체제는 운용 프로그램을 위한 기반을 제공하며 컴퓨터 사용자와 컴퓨터 하드웨어 사이에서 중재자 역할을 실행한다.
운영체제의 놀라운 점은 이러한 일들을 실행하는 데 대단히 다양한 방법이 존재한다는 것이다. 대형 컴퓨터의 운영체제는 주로 하드웨어의 이용을 최적화하는 것을 주요 목적으로 삼는다. 개인용 컴퓨터 운영체제는 복잡한 게임, 비즈니스 응용, 그리고 이들 중간에 위치하는 모든 응용 프로그램을 사용자가 자유롭고 쾌적한 환경에서 사용할 수 있도록 지원한다.
운영체제는 덩치가 매우 크고 복잡하기 때문에 부분별로 생성되어야 한다. 각 부분은 전체 시스템 윤곽에 잘 부합하여야 하며 각 부분의 입력과 출력, 동작은 명확하게 정의되어야 한다.
2. 운영체제의 역할 (OS Role)
1) 자원 할당
- 메모리와 같은 컴퓨터의 자원을 각 응용 프로그램들에게 할당하는 역할을 한다.
- 또한, 응용 프로그램들이 적정 크기의 메모리를 할당 받는지를 체크한다.
2) 보호 역할
- 파일 접근 권한(file permission) 등을 통해서 각 사용자가 허용된 범위만큼만 파일 등을 사용할 수 있도록 제한하는 역할을 수행한다.
- 사용자들로부터 허용 범위 이상의 개입을 막는다,.
3) 컴퓨터 자원에 접근
- 메모리, 저장 장치, I/O 기능 등에 접근하고, 이들을 관리한다.
3. 인터럽트 (interrupt)
인터럽트는 프로그래밍 언어에서는 이벤트(event)라고 불려지기도 하는 것으로, CPU가 하던 일을 중단하게 만든다. 인터럽트는 흔히 마우스나 키보드 등의 입력 장치를 통해서 발생하게 된다. 인터럽트가 발생할 경우에는 CPU가 하던 일을 중단하게 하며, 즉시 지정된 위치로부터 실행을 시작한다. 이러한 지정된 위치는 일반적으로 인터럽트를 위한 서비스 루틴이 위치한 시작 주소이다.
예를 들어, 프로그램이 어느 응용프로그램이 실행 중에 있는 데, 사용자가 마우스를 이용해서 해당 응용 프로그램 위의 어느 버튼을 누르게 되면, 그 즉시 마우스가 인터럽트를 발생 시켜서 진행 중이던 작업을 중단시키고 버튼의 기능을 실행 시키게 된다.
또한, 인터럽트가 CPU가 하던 일을 중단시킨다고 해서 진행 중이던 작업에 대한 정보가 누락되거나 하지는 않는다. 운영체제가 프로그램 카운터(program counter)를 통해서 진행 상황을 저장한 후에 작업을 중단시키기 때문이다.
앞서 말했듯, 인터럽트는 적절한 서비스 루틴으로 제어를 전달한다. 이러한 전달을 처리하는 간단한 방법으로는 인터럽트 정보를 조사하는 일반적인 루틴을 호출하는 것이다. 이 루틴은 이어 인터럽트 고유의 핸들러(handler)를 호출한다. 그러나 인터럽트는 매우 빠르게 처리되어야 하고, 사용 가능한 인터럽트의 수가 미리 정의되어 있으므로, 인터럽트 루틴에 대한 포인터의 테이블을 대신 이용할 수 있다. 이 경우 중간 루틴을 둘 필요 없이 테이블을 통하여 간접적으로 인터럽트 루틴이 호출될 수 있다.
일반적으로 포인터의 테이블은 하위 메모리에 저장된다(첫 100개 정도의 위치). 이 위치에는 여러 장치에 대한 이터럽트 서비스 루틴의 주소가 들어 있다. 인터럽트가 요청되면, 인터럽트를 유발한 장치를 위한 인터럽트 서비스 루틴의 주소를 제공하기 위해 이 주소의 배열, 즉 인터럽트 벡터가 인터럽트 요청과 함께 주어진 고유의 유일한 장치번호로 색인된다.
'OS > OS - Overview' 카테고리의 다른 글
하드웨어 타이머 (Hardware Timer) (0) | 2018.09.24 |
---|---|
운영체제 이중 동작 모드 (OS dual-mode operation) (2) | 2018.09.24 |
입출력 구조 (0) | 2018.09.20 |
부팅 시 운영체제가 실행되는 과정 (2) | 2018.09.20 |
멀티 프로그래밍을 위한 시간 공유 (Time Sharing for the Multi-Programming) (0) | 2018.09.20 |