[운영체제] 운영체제의 발전 과정, 기능, 서비스
운영체제의 발전 과정
운영체제와 컴퓨터 구조는 서로 많은 영향을 끼쳤으며, 관찰을 통해 운영체제의 개념을 올바르게 이해할 수 있다.
하드웨어와 같이 “세대”라고 불리는 발전 단계를 거쳤으며, 그 과정은 아래의 표와 같다.
구분 | 시대 | 특징 |
---|---|---|
제0세대 | 1940년대 |
- 운영체제없음 - 기계어사용 |
제1세대 | 1950년대 |
- IBM701(운영체제효시) - 작업간의 원활한 변환 - 버퍼링, 스풀링, 일괄처리시스템 |
제2세대 | 1960년대초 |
- 고급언어로 운영체제 작성 - 장치독립성 - 다중프로그래밍, 다중처리, 시분할시스템 |
제3세대 | 1960년대 중반 ~ 1970년대 중반 |
- IBM360시리즈, 유닉스 - 범용시스템 - 다중모드시스템 |
제4세대 | 1970년대 중반 ~ 현재 |
- 네트워크시스템 - 가상머신, 분산데이터처리 - 개인컴퓨터 |
운영체제 기능
운영체제는 프로그램을 실행하는 데 필요한 환경과 자원을 제공하고 관리하기 위한 크고 복잡한 시스템이다.
논리적으로 작은 모듈로 구성되며 각 부분은 명확하게 정의된다.
대부분의 시스템은 자원 관리와 프로그램을 위한 인터페이스 역할을 수행한다.
자원 관리 기능
대부분 메모리, 프로세스, 장치, 파일 등의 시스템 구성 요소를 제공 하며 이를 자원이라 하며, 운영체제는 이런 자원을 관리하는 역할을 수행한다.
메모리 관리
메인 메모리와 보조 기억장치로 구분한다.
- 메인 메모리는 컴퓨터 시스템에서 핵심 역할을 수행하며, 프로세서가 직접 주소로 지정할 수 있는 유일한 메모리다.
- 프로세서가 명령어를 수행하기 위해 메인 메모리에 명령어를 저장하며, 프로그램 수행을 위해 프로그램이 절대주소로 맵핑되어 매모리에 저장되어야 한다.
프로세서 이용률과 컴퓨터 응답 속도 향상을 위한 다양한 메모리 관리 기법이 존재한다.
운영체제는 메인 메모리 관리를 위해 다음 기능을 담당한다.
- 현재 메모리의 어느 부분이 사용되고, 누가 사용하는지를 점검
- 기억 공간에 어떤 프로세스를 저장할 지를 결정
- 기억 공간을 할당하고 회수하는 방법 결정
보조기억장치 관리
메인 메모리의 공간이 제한적이므로 컴퓨터 시스템은 보조기억장치를 이용해 메인 메모리 내용을 저장한다.
- 대부분의 시스템은 온라인 저장 매체로 디스크를 이용하므로 디스크에서의 저장 기법이 매우 중요하다.
운영체제는 디스크 관리를 위해 다음 기능을 담당한다.
- 비어 있는 공간 관리
- 저장 장소 할당
- 디스크 스케줄링
프로세스 관리
프로세스 하나는 자신의 업무를 수행하기 위해 프로세서 점유, 메모리, 파일, 입출력장치 같은 다양한 자원이 필요하다.
자원은 프로세스가 생성될 때 또는 실행 중에 할당될 수도 있다.
하나의 프로세스는 한 시스템에서 작업 단위이며, 시스템은 프로세스의 집합으로 구성된다.
모든 프로세스는 프로세서를 분할하여 사용함으로써 병행하여 수행할 수 있다.
운영체제는 프로세스 관리를 위해 다음 기능을 담당한다.
- 프로세스와 스레드 스케줄링
- 사용자와 시스템 프로세스 생성과 제거
- 프로세스의 중지와 재수행
- 프로세스 동기화와 통신을 위한 기법 제공
- 교착 상태(Deadlock)를 방지하는 기법 제공
장치 관리(입출력 관리)
운영체제는 사용자가 특정 하드웨어 장치(입출력장치 등)를 포괄적 기계로 인식하게 하여 장치의 특성을 숨긴다.
운영체제는 입출력 시스템을 관리하기 위해 다음의 기능을 제공한다.
- 임시 저장(Buffer-aching) 시스템
- 일반적인 장치 드라이버 인터페이스
- 특정 하드웨어 장치를 위한 드라이버
파일 관리
가장 많이 사용되는 운영체제 구성 요소 중 하나로, 컴퓨터는 물리적으로 다양한 형태로 정보를 저장할 수 있으며, 효율적인 사용을 위해 단일화된 정보 저장 형태를 제공한다.
운영체제는 파일의 추상적인 개념을 운영하고 쉽게 사용하기 위해 디렉터리로 구성, 다수의 사용자에 의한 파일 접근을 제어한다.
운영체제는 파일 관리를 위해 다음 기능을 담당한다.
- 파일과 디렉터리의 생성과 제거
- 보조기억장치에 있는 파일의 맵핑
- 안전한(비휘발성) 저장 매체에 파일 저장
운영체제 기타 기능
시스템 보호
운영체제에 있는 프로세스를 다른 사용자의 프로그램으로부터 보호한다.
네트워킹
시스템에 있는 프로세서는 다양한 방법으로 구성될 수 있는 통신 네트워크를 운영한다.
네트워크는 완전 접속과 부분 접속으로 연결되며, 설계 시 경로 설정, 접속 정책, 충돌, 보안 등의 문제를 고려해야 한다.
명령어 해석기와 시스템 관리
명령어 해석기(Command Interpreter)는 운영체제를 위한 중요한 시스템 프로그램 중 하나이다.
초소형 컴퓨터에는 커널이, 대형 시스템에서는 특수 목적 프로그램으로 명령어 해석기를 가지고 있다.
운영체제 서비스
부트스트래핑 서비스
운영체제가 적재되는 과정을 부트스트래핑(Bootstraping) 또는 부팅(Booting)이라 한다.
- 부트스트랩 로더(Bootstrap Loader)는 디스크 트랙 0, 나머지는 디스크의 다른 부분에 적재된다.
- 부트스트랩 로더의 목적은 운영체제를 적재하는 것이며, 운영체제를 적재하면 시스템이 초기화 된다.
- 초기화의 목적은 운영체제 정리, 사용자와의 대화를 통한 시간 등의 설정, 명령 해석기의 적재와 준비 등이다.
사용자 서비스
프로그래머가 프로그래밍 작업을 쉽게 수행할 수 있도록 제공되는 서비스로 운영체제는 다음과 같은 역할을 수행한다.
사용자 인터페이스
- 운영체제와 사용자의 연결을 위해 사용자가 제어 가능한 부분, 이를 통해 운영체제와 통신, 대화할 수 있다.
- 구현 방법 : 명령 라인 인터페이스(Command-Line Interface), GUI(Graphical User Interface)
프로그램 수행
- 시스템은 프로그램을 메모리에 적재하여 실행, 실행을 정상적 혹은 비정상적으로 끝낼 수 있어야 한다.
입출력 동작
- 수행 중인 프로그램이 입출력을 요구, 파일이나 입출력 장치를 지정할 수 있다.
- 특수한 기능이 필요한 입출력장치는 운영체제가 입출력 동작을 위한 방법을 제공한다.
파일 시스템 조작
- 프로그램은 파일을 정확히 읽고 기록, 파일 이름으로 파일을 생성하고 삭제해야 한다.
통신
- 프로세스간 정보 교환 방법은 크게 두 가지로 동일한 컴퓨터 또는, 컴퓨터 네트워크에 의해 함께 묶인 다른 컴퓨터 시스템에서 수행되는 프로세스 간에 일어난다.
오류 탐지
- 운영체제는 가능한 모든 오류를 항상 탐지하고, 올바르고 일관성 있는 계산을 보장하기 위해 오류 유형별로 적절히 조치해야 한다.
- 오류는 프로세스, 메모리, 하드웨어, 입출력장치, 사용자 프로그램에서 발생 가능하다.
시스템 서비스
사용자가 아닌 시스템 자체의 효율적인 동작을 보장하는 기능이다.
다수의 사용자를 위해 컴퓨터 자원을 공유하여 효율성을 높인다.
자원 할당
- 다수의 사용자나 다수의 작업이 동시에 실행 시 운영체제는 자원을 작업에 할당, 관리한다.
계정
- 계정 정보를 이용해 각 사용자의 시스템 이용 정보를 알 수 있다.
- 시스템 청구, 시스템 사용 통계를 수집하기 위해 보관, 사용자 서비스 개선을 위한 연구 자료로 이용 가능하다.
보호
- 시스템 호출을 위해 전달된 모든 매개변수의 타당성을 검사, 시스템 자원에 모든 접근을 제어 하도록 보장한다.
- 다중 사용자 컴퓨터 시스템에서 저장된 정보의 소유자는 정보 사용을 제한할 수 있다.
시스템 호출 서비스
운영체제가 제공하는 일반적인 시스템 호출은 다음과 같다.
프로세스 제어
- 종료, 취소, 적재(로드, Load), 수행
- 프로세스 생성, 종료, 속성 획득, 속성 지정
- 대기, 대기 이벤트(Event), 신호 이벤트
- 기억장치 할당 및 해제
파일 조작
- 파일 생성, 삭제, 오픈(Open), 폐쇄(Close), 속성 획득 및 지정
- 읽기, 쓰기, 재배치(Reposition)
- 논리적 부착(Logically Attach)
장치 조작
- 장치 요구, 해제, 속성 획득 및 설정
- 읽기, 쓰기, 재배치
- 논리적 부착 또는 장치 제거
정보 관리
- 시간과 일자, 데이터의 설정과 획득
- 프로세스, 파일, 장치 속성의 설정과 획득
통신
- 통신 연결의 생성, 제거, 메시지 송수신
- 상태 정보 전달
- 원격 장치의 부착 및 제거