역할

1
2
운영체제는 컴퓨터 하드웨어와 응용 프로그램간의 인터페이스 역할을 하며 CPU, 메모리와 같은 컴퓨터 자원을 관리하고 사용자에게 편의를 제공한다.
컴퓨터 시스템은 일반적으로 사용자, 소프트웨어, 하드웨어 3가지 요소로 구분된다.
  • 조정자: 운영체제는 시스템을 운영하여 여러 운영요소(하드웨어, 소프트웨어, 프로그램, 데이터)를 적절하게 사용할 수 있도록 제어한다. 다른 프로그램이 작업할 수 있는 환경만 제공할 뿐 직접 일을 못한다.
  • 자원 할당자, 관리자: 컴퓨터 시스템이 문제를 해결하는데 필요한 자원(프로세서 기간, 메모리 공간, 파일 저장공간, 입출력 장치 등)을 할당하는 업무이다. 컴퓨터 시스템을 공정하고 효율적으로 운영하기 위해 자원을 어떻게 할당할지를 결정하는 관리자 역할도 수행한다.
  • 입출력 장치, 사용자 프로그램 제어: 컴퓨터 시스템의 부적절한 사용이나 오류를 방지하기 위해 사용자 프로그램의 실행을 제어한다. 입출력 장치를 동작시키고 통제하는 역할이다.

기능

1
2
3
4
하드웨어와 사용자간의 인터페이스를 정의한다.
사용자들이 하드웨어를 공동으로 사용할 수 있도록 한다.
사용자간의 자원 스케줄링, 자원 할당자 역할을 수행한다.
입출력 보조 역할, 오류 처리를 한다.

운영체제의 역할과 기능이 매우 다양하여 완벽히 정의하기는 힘듦

일반적인 정의

컴퓨터 자원을 통제하고 할당하는 공통기능을 컴퓨터 소프트웨어 하나로 통합.

구체적인 정의

컴퓨터 시스템에서 항상 실행되는 응용 프로그램을 제외한 모든 프로그램, 커널.

  • 커널: 운영체제의 핵심, 메모리에 상주하며 운영체제의 다른 부분 또는 응용 프로그램 수행에 필요한 환경을 설정하는 소프트웨어. 응용 프로그램 실행에 필요한 다양한 서비스를 제공, 실행된 프로세스를 스케줄링하는 역할을 한다.

목적

사용자에게 편리한 환경을 제공(편리성), 시스템 성능 향상(효율성)

  • 처리 능력 향상
  • 신뢰도 향상
  • 응답 시간 단축
  • 사용 가능도 향상

기능의 발전

  • 카드 판독기, 라인 프린터, 자기테이프의 보편화
  • 어셈블러, 로더, 링커 등이 개발되었다.
  • 라이브러리 생성: 공통 기능을 새로 작성할 필요없이 작성할 프로그램에 삽입이 가능하게 되었다.
  • 컴파일러 개발: 포트란, 코볼. 프로그래밍 업무는 쉬우나 컴퓨터 동작은 복잡하다. 프토란 컴파일러의 경우 8단계의 어셈블리 과정이 필요하다. 이로 인해 준비시간 단계가 많아 시간낭비가 심하다.
  • 모니터
  • 초기의 일괄 처리 시스템: 작업 중 문제 발생 시 오퍼레이터가 콘솔을 조사, 사태 여부를 파악하고 필요한 조치를 취하기 위해 프로세서의 유휴 시간이 생성되는 문제점이 발생되었다.
  • 상주 모니터: 자동 작업 순서에 하나의 작업에서 다른 작업으로의 진행을 자동으로 제어하는 프로그램
  • 제어 카드
  • 카드 판독기와 라인 프린터를 자기 테이프 장치로 대체
  • 오프라인 처리 운영 방식
  • 오프라인 연산장치
  • 버퍼링
  • 스풀링
  • 초기의 컴퓨터 시스템: 속도가 느림, 온라인 판독기, 프린터에 의존, 많은 시간이 필요, 종이 테이프나 펀치 카드에서 메모리로 적재 후 시작 주소를 설정하고 실행, 실행 과정은 콘솔로 확인

다중 프로그래밍

1
2
3
4
5
6
7
작업 스케줄에서 가장 중요한 다중 프로그래밍
프로세서가 항상 수행할 작업을 가지도록 하여 프로세서 이용률을 증진시킨다.
운영체제는 메모리에 있는 작업 중 하나를 택하여 실행을 시작한다.
작업이 어떤 일을 기다릴 경우, 비 다중 프로그래밍 시스템의 프로세서는 유휴 상태가 되지만 다중 프로그래밍 시스템에서는 운영체제가 간단히 다른 작업으로 전환하여 수행한다.
작업을 위해 기다리는 것이 끝나면 프로세서를 다시 차지하며, 수행될 작업이 메모리에 적재되어 있으면 프로세서는 유휴하지 않을 것.
다중 프로그래밍 운영체제는 아주 복잡하며, 여러 작업을 준비 상태로 두려면 이를 메모리에 보관해야 하고 일정 형태의 메모리 관리가 필요하다.
여러개의 작업이 수행할 준비를 갖추고 있으면 이 중 하나를 선택하기 위한 결정 방법이 필요하다.

시분할 시스템

1
2
3
4
5
6
7
8
9
다중 프로그래밍을 논리적으로 확장한 개념으로 프로세서를 통해 다중 작업을 교대로 수행한다.
사용자가 프로그램을 실행하고 있을 동안 자신의 프로그램과 접촉하기 위해 교대가 빈벅히 일어난다.
프로세서 스케줄링과 다중 프로그래밍을 사용해 각 사용자에게 컴퓨터를 시간적으로 분할하여 나누어준다.
각 사용자는 메모리에 독립된 프로그램을 갖고, 프로그램은 입출력을 수행하는 아주 짧은 시간 동안만 실행되어 많은 사용자가 컴퓨터를 공유한다.
각 트랜잭션이 짧아 각 사용자는 짧은 시간 동안 프로세서를 사용한다.
1970년대 초까지는 일반화 되지 못했으나, 오늘날의 시스템은 대부분 일괄 처리 방식과 시분할 방식을 모두 제공한다.
여러 작업이 메모리에 저장되어 있는 경우 한 작업이 다른 작업의 데이터를 변경하는 등의 작업에 대한 보호가 필요하다.
다수의 사용자가 접근하는 파일은 접근권한을 두어 특정 권한을 가진 사용자만 접근할 수 있도록 파일 시스템을 보호해야 한다.
공유 자원의 경우 접근 순서도 조정할 수 있도록 기능을 제공해야 한다.

일괄 처리 시스템

1
2
3
작업을 미리 정의된 각 제어카드와 함께 읽어 작업을 완료하면 출력한다.
처리 과정 중 발생할 수 있는 모든 경우에 대한 제어카드를 제공해야 하므로 작업 제출과 완료까지의 반환시간이 길어질 수 있다.
오류 수정은 당시의 상태를 그대로 출력해야 가능하며, 오류를 수정한 후 다시 처음부터 수행한다.

대화식 입출력

1
2
입출력은 대화식으로 가능, 출력은 사용자를 위해 화면에 출력되고 입력은 키보드에서 읽어들이는 대화식이 될 수 없다.
사람의 처리와 속도가 같으므로 종료까지 소요시간이 길며, 이 경우 운영체제는 프로세서를 다른 사용자의 프로그램으로 전환한다.

다중 처리 시스템

1
2
3
4
5
마이크로프로세서 여러개를 연결해 다중 프로세서를 만듦
시스템은 프로세서를 많이 사용해 신뢰성, 가용성, 컴퓨터 능력 등을 증가
하드웨어 비용이 저렴해짐에 따라 단위 시간당 처리량을 증가시키기 위해 사용
고가의 초고속 프로세서를 사용하지 않고 대형 컴퓨터에 근접하는, 단일 프로세서 컴퓨터 시스템의 계산 능력을 증대시킬 수 있다.
다중 처리를 위한 운영체제 구성방법은 비대칭적(주/종)적 구성과 대칭적 구성이 있다.
  • 주/종 다중 처리 시스템(Master/Slave Multi Process System): 비대칭적 구성으로 마스터 프로세서가 주가 되어 부가적인 슬레이브 프로세서를 관리하는 단일 처리 시스템
  • 단일 사용자 시스템