이 글은 KOCW 에 있는 [2014년 1학기 이화여자대학교 반효경]운영체제 수업을 바탕으로 작성되었습니다.
운영체제
운영체제의 기본적인 목표는 컴퓨터 시스템의 자원(프로세스, 기억장치 등) 을 효율적으로 관리하고 형평성있게 관리하는 것이다.
하나의 프로세서와 하나의 메모리밖에 없는데 어떻게 여러 프로그램을 작동시킬 수 있을까? 그리고 한정적인 자원을 어떻게 효율적으로 관리할 수 있을까?
n개의 프로그램을 실행하려면 메모리를 n분의 1씩 나눠서 할당하는게 좋을까 생각을 해보면 그렇지 않다는 것이다. 만약 그렇게 하면 공평하게 느려지게 된다.
그럼 우선순위를 매겨 가장 효율적으로 할당을 해주면 어떻게 될까?
특정 프로그램 그리고 특정 사용자는 최악의 경우 컴퓨터를 사용할 수 없게된다. 따라서 효율성뿐만 아니라 형평성을 고려하여 자원을 할당해야한다.
운영체제란
컴퓨터 하드웨어 위에 설치된 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어
- 협의의 운영체제(커널) 좁은 의미의 운영체제는 커널을 의미한다. 운영체제의 핵심부분으로 메모리에 상주하고 있다.
- 광의의 운영체제 넓은 의미에서 운영체제는 커널뿐만 아니라 일반적으로 사용되는 프로그램을 포함해서 말한다.
운영체제의 목적
- 컴퓨터 자원을 효율적으로 관리
- 사용자가 컴퓨터를 편하게 사용할 수 있게 함
효율적으로만 관리하다보면 특정 사용자가 차별받는 상황이 생긴다. 따라서 형평성 있는 자원 분배를 해야하고 주어진 자원에서 최대한의 효율을 내야한다. 이를 운영체제가 수행한다.
하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행하면서 사용자는 컴퓨터를 편하게 사용할 수 있다.
운영체제의 분류
단일 작업( Single Tasking ) 한번에 하나의 작업만 처리. 작업이 끝나기 전에 다른 작업을 수행할 수 없음
ex) MS-DOS다중 작업( Multi Tasking ) 동시에 여러 작업을 처리.
ex) Unix, MS Windows
- 사용자에 의한 분류
- 단일 사용자( Single User ) ex) MS-DOS, MS Windos
- 다중 사용자( Multi User ) ex) Unix, NT server
- 처리방식에 따른 분류
- 일괄 처리( Batch Processing ) 일정량의 작업을 모아서 처리하는 방식
정해진 양의 작업이 누적되지 않으면 작업을 수행하지 않는다.
물론 작업을 수행하는 트리거를 양이 아니라 시간으로 만들 수도 있다. 예를 들어 1시간마다 작업을 수행하도록 만들면 1시간동안 작업을 모았다가 처리하게 된다.
이것이 기본적인 Batch 의 개념이다. 실제 컴퓨터에서 어떻게 Batch Processing 을 구현했는지는 모른다.
- 일괄 처리( Batch Processing ) 일정량의 작업을 모아서 처리하는 방식
시분할 방식( Time Sharing ) 시간을 분할해서 자원을 나누는 방식이다.
여러개의 작업을 하나의 CPU가 처리하려면 시간을 나누어서 각각의 작업을 처리해야 할 것이다.
시분할 방식은 Interactive(상호작용) 을 제공한다.
키보드를 입력하면 화면에 바로 출력되는 것이 Interactive 하기 때문인데, 만약 일괄처리 방식이었다면 키보드의 입력이 저장되었다가 오랜시간 뒤에 처리되어 내가 누른 버튼을 실시간으로 화면에서 확인하기 어려웠을 것이다.실시간( Real Time ) 정해진 시간 내에 작업이 종료되는 것이 보장되어야 하는 시스템이다.
이름이 실시간 이라서 시분할 방식과 헷갈릴 수 있다. 시분할 방식은 일반적인 사용자가 사용하는 물건(컴퓨터)에 들어가고, 실시간 방식은 특수 목적을 가진 시스템(원자로 제어, 미사일 제어 등)에 들어가는 OS이다.
그래서 무슨 차이가 있냐하면 Dead Line의 유무다. 시분할 방식은 Dead Line 이 없고, 실시간 방식은 Dead Line 이 존재한다. 예를 들어 미사일의 움직임을 제어하기 위해 0.00000001 초 안에 계산을 끝내야하는데, 시분할 방식을 사용한다면 계산을 시간내에 끝내지 못해 미사일의 움직임을 제어할 수 없을 것이다.
- Hard Realtime System : 위에 설명한 예시처럼 Dead Line 을 반드시 지켜야 하는 시스템
- Soft Realtime System : Dead Line 이 존재하지만 지켜지지 않아도 큰 문제가 발생하지 않는 시스템. 예를 들어 스트리밍의 경우 Dead Line 이 지켜지지 않으면 화질이 안좋게 나올 뿐 문제가 생기지 않는다. 물론 설명을 위한 예시일뿐 스트리밍은 Real time 이 아니다.
- Hard Realtime System : 위에 설명한 예시처럼 Dead Line 을 반드시 지켜야 하는 시스템