그림으로 배우는 구조와 원리[책]를 본 후, 핵심 개념들을 요약 정리한 자료입니다.
운영체제의 개념
사용자가 응용 프로그램을 실행할 수 있는 기반 환경을 제공하여 컴퓨터를 편리하게 사용할 수 있도록 도와주고, 하드웨어를 효율적으로 사용할 수 있도록 다양한 기능을 제공하는 소프트웨어이다.
컴퓨터 자원을 관리하는 면에서 운영체제의 역할은 다음과 같다.
- 제어자(controller)
- 다른 프로그램이 작업을 할 수 있는 환경만 제공하는 컨트롤러의 역할을 한다.
- 자원 할당자 또는 관리자(resource allocator or administrator)
- 컴퓨터 시스템의 자원을 공정하고 효율적으로 분배하기 위해 자원 할당자 혹은 관리자의 역할을 한다.
- 응용프로그램과 입출력장치 제어자
- 컴퓨터 시스템을 부적절하게 사용하거나 오류 발생을 방지한다.
운영체제의 발전 목적
편리성
사용자와 컴퓨터 시스템이 정보 및 명령을 상호 교환할 수 있는 인터페이스를 제공해야 한다.
효율성
시스템의 성능을 향상시키는데 목적이 있다. 다음과 같은 기준으로 시스템의 성능이 평가된다.
- 처리량: 단위시간 당 처리하는 작업량이다.
- 지연, 응답시간: 사용자가 시스템에 작업을 의뢰한 후 반응을 얻을 때까지 걸린 시간, 즉 작업을 완료할 때까지 걸린 시간을 말한다.
- 신뢰도: HW, SW가 실패없이 주어진 기능을 수행할 수 있는 능력을 말한다.
- 사용 가능도: 사용자가 일정 기간 동안 실제로 컴퓨터를 사용한 시간(비율)이다.
제어서비스 향상
입출력 장치의 동작 관리 및 제어, 시스템 오류를 예방하는데에 있다.
운영체제의 기능
운영체제의 기능은 크게 자원관리, 시스템관리 로 분류된다.
자원관리 에는 메모리 관리(메인 메모리, 보조기억장치), 프로세스 관리, 주변장치 관리, 파일(데이터) 관리가 있으며,
시스템 관리 에는 시스템 보호(사용자 권한 부여), 네트워킹(통신), command interpreter 등의 기능을 지원한다.
운영체제의 발전 과정과 유형
운영체제의 발전 과정
- 1940년대: 운영체제 없음.(작업별 순차 처리)
- 1950년대: 일괄처리시스템. 데이터를 즉시 처리하지 않고 일정량이 될때까지 모아두었다가 처리. 이를위해 일괄처리, 버퍼링, 스풀링 등을 도입
- 일괄처리: 작업을 모아두었다가 비슷한 유형의 작업들을 묶어서 처리.
- 버퍼링: 입출력 장치와 프로세서의 속도 차이를 보완하기 위해 프로세서가 연산을 하는 동안 입출력 장치는 다음 레코드를 주 기억장치에 보관함으로서 CPU가 필요로 하는 레코드를 기다림 없이 전달해 줄 수 있다. 이 레코드를 저장하는 주 기억장치를 버퍼라고 부른다.
- 스풀링: 버퍼링과 다르게 스풀링은 주기억 장치대신 디스크를 매우 큰 버퍼처럼 사용하는 것이다. 스풀링의 장점은 여러 작업의 입출력과 계산을 함께 할 수 있다는 점이다.
- 1960년대: 다중 프로그래밍, 시분할, 다중 처리, 실시간 시스템.
- 다중 프로그래밍: 여러 프로그램을 메모리에 나눠 적재한 후 프로세서를 번갈아 할당하여 프로세서 사용을 극대화 시키면서 여러 프로그램을 동시에 실행시킨다.
- 시분할 시스템: 다중 프로그래밍 시스템에 프로세서 스케줄링이라는 개념을 더한것이다.
- 다중 처리 시스템: 하나의 시스템에서 여러개의 프로세서를 사용하는 시스템이다.
- 실시간 시스템: 즉시 응답하는 시스템이다.
- 1970년대 초반: 다중 모드, 범용 시스템.
- 1970년대 중반 ~ 1990년대: 분산 처리 시스템, 병렬 계산과 분산 계산
- 2000년대 이후: 모바일 및 임베디드, 가상화 및 클라우드 컴퓨팅
운영체제의 유형
- 일괄처리 시스템(batch processing system)
- 다중 프로그래밍 시스템(multiprogramming system)
- 일괄처리시스템의 가장 큰 문제점인 프로세서가 작업 중일때는 입출력 작업이 불가능하여 프로세서와 메인 메모리의 활용도가 떨어진다. 그래서 프로그램의 유휴시간(idle time)동안 다른 프로그램이 프로세서를 사용하도록 해 프로세서의 효율을 극대화 시키기 위한 시스템이다.
- 시분할 시스템(time sharing system)
- 다중 프로그래밍의 확장된 개념으로, 각 프로그램에 일정한 프로세서 사용시간 또는 규정 시간량을 할당하여 여러 사용자에게 짧은 간격으로 프로세서를 번갈아 가며 할당해 마치 한 사용자 혼자 프로세서를 독점하고 있는 듯 착각하게 해 여러 사용자가 단일 시스템을 동시에 사용할 수 있게 한다.
- 다중 처리 시스템(multiprocessing system)
- 단일 컴퓨터에서 둘 이상의 프로세서를 사용해 동시에 둘 이상의 프로세스를 지원하는 시스템이다.
- 실시간 처리 시스템(real time processing system)
- 사용할 수 있는 자원이 한정되어 있는 상황에서 작업 수행이 요청되었을 때, 이를 제한된 시간안에 처리해 결과를 내주는 것을 말한다. 즉, 작업의 요청에서 수행결과를 얻기까지의 시간적인 제약이 존재하는 시스템으로 그 제약의 엄격함에 따라서 경성 실시간 시스템과 연성 실시간 시스템으로 나뉜다.
- 경성 실시간 처리 시스템(hard real time processing system)
- 작업의 실행 시작이나 완료에 대한 시간 제약 조건을 무조건 지켜야 하는 시스템 이다.(무기 제어, 미사일 자동 조준 등) - 연성 실시간 처리 시스템(soft real time processing system)
- 작업 실행에서 시간 제약 조건은 있으나 이를 지키지 못해도 시스템에 치명적인 영향을 끼치지 않는 시스템이다.(동영상 재생 시스템 등)
- 분산 처리 시스템(distributed processing system)
- 시스템 마다 독립적인 운영체제와 메모리로 운영하며, 필요할 때 통신하는 시스템이다.