개요
운영체제란
- 컴퓨터 하드웨어와 컴퓨터 사용자 간의 매개체 역할을 하는 시스템 소프트웨어
- 사용자가 프로그램을 수행할 수 있는 환경을 제공
운영체제의 목적
- 컴퓨터 시스템을 편리하게 사용/이용
- 주요 목적
- 컴퓨터 하드웨어(자원)을 효율적으로 관리
- 부수적 목적
-> 운영체제는 컴퓨터 자원의 운영을 위해 수행되는 가장 중요한 소프트웨어
운영체제의 관점
- 자원 할당자라고도 함
- 컴퓨터 시스템은 하나의 문제를 해결하기 위해 필요한 자원들, CPU의 점유시간, 기억장치 공간, 파일 저장 공간, 입출력장치 등을 운영
- 운영체제는 이들 자원의 관리자로서 특정 프로그램과 사용자 간의 작업에 필요한 자원을 할당해 줌
운영체제의 다른 관점
- 다양한 입출력장치와 사용자 프로그램의 통제자
- 제어 프로그램
- 사용자 프로그램을 통제하여 오류와 컴퓨터의 부적절한 사용을 방지
- 컴퓨터 시스템을 구성하는 자원들을 통제하고, 할당하는 공통적인 기능을 하나의 소프트웨어로 통합한 것
운영체제의 유형
일괄 처리 시스템(Batch Processing System)
- 작업 준비 시간(테이프 준비, 오퍼레이터가 콘솔을 조작)을 줄이기 위하여 요구사항이 비슷한 작업들을 함께 묶어서 수행하는 방법
- 유휴 상태의 시간을 없애기 위해 작업 순서의 자동화 개념을 도입함
- 작업 순서의 자동화(automatic job sequencing)
- 한 프로그램에서 다음 프로그램으로 제어를 자동적으로 넘기기 위하여 만들어진 상주 모니터(resident monitor)를 두는 것
-> 작업의 준비 및 실행 순서를 자동화함으로써 시스템의 성능을 증진- 작업 제어 카드(JCC)를 사용하여 프로그래머가 상주 모니터에게 정보 전달
- 어떤 작업 또는 프로그램이 실행되어야 할 것인가에 대한 정보
- 단일 프로세스
- 하나의 작업이 시작되면 그 작업이 모든 시스템 자원을 독점
-> CPU가 자주 유휴 시간을 가짐다중 프로그래밍 시스템(Multiprogramming System)
- 중앙처리장치의 이용도를 높이기 위하여 주기억장치 내에 여러 프로그램들이 존재하도록 함
- 여러 개의 작업을 준비 상태에 두고, 준비 상태에 있는 여러 작업들 중 어느 한 작업을 실행할 작업으로 선정하는 데에는 별도의 기억장치 관리 기법이나 중앙처리장치 관리 기법 등이 필요
- 장치 스케줄링, 교착 상태(deadlock) 문제, 병행 제어 및 보호 문제 등을 신중히 고려해야 함
시분할 시스템(Time-sharing System)
- 다중 프로그래밍의 변형된 형태
- 사용자들로 하여금 단말기를 통하여 컴퓨터와 직접 접촉할 수 있도록 하기 위하여 개발됨
- 여러 사용자들이 컴퓨터 자원(특히, CPU)에 대한 짧은 시간 단위의 공유를 통하여 구현
- 각 사용자로 하여금 자신만이 컴퓨터 시스템을 독점하여 사용하고 있는 듯한 착각이나 환상을 가지도록 함
- 사용자는 대화식(interactive) 단말장치를 이용하여 시분할 시스템과 인터페이스 함
- 문제점
- 자원 제어에 대한 대부분의 책임을 운영체제에 전가시킴에 따라 운영체제를 복잡하게 함
- 운영체제는 기억장치에 복수 개의 프로그램을 동시에 두는 문제에 대한 배려 및 그들을 위한 기억장소를 주기억장치나 보조기억장치에서 관리하고 제어하는 책임을 져야 함
- 여러 사용자에 대한 공정한 자원 공유를 보장하기 위하여 어떤 사용자에게 중앙처리장치를 사용하게 할 것인지를 스케줄링 해야 함
- 실행 중인 프로세스 간의 통신 및 입출력장치의 사용에 대한 제어 및 관리 능력 필요
실시간 시스템(Real-time System)
- 대개 특수 목적만을 위한 응용분야에서 제어장치로 사용
- 처리기의 작동이나 데이터의 흐름에 엄격한 시간적 제약이 있을 때 사용
- 사전에 정의된 제약 내에서 수행되어야 함
- 가상 적의 공중 공격에 대비한 감시나 한계 온도 치를 제어하기 위한 센서 등에 의한 사건 발생 신호를 받아, 어떤 사건이 발생하였는지를 판단하고 그 사건을 해결하기 위하여 사건이 제시한 데이터를 처리하여 응답하는 과정에 대한 제어를 책임짐
- 과학 실험을 제어하는 시스템, 군사용 시스템, 의학 영상 시스템, 산업 제어 시스템 등
- 경성 실시간(hard real-time) 시스템
- 중요한 태스크가 정해진 시간에 완료될 것을 보장
- 어떤 보조 저장장치는 제한적으로 사용하거나 전혀 사용하지 않으며, 데이터는 주기억장치 또는 ROM에 저장됨
- 연성 실시간(soft real-time) 시스템
- 중요한 실시간 태스크가 다른 태스크 보다 높은 우선순위를 얻음
- 멀티미디어, 가상현실
다중 처리 시스템(Multiprocessing System)
- 공유 기억장치(common memory)를 통하여 하나로 연결된 다중 처리기(multiprocessor)의 제어 및 공유를 위한 시스템
- 밀착된 결합 시스템(tightly coupled system)
- 매우 밀접한 통신을 하는 하나 이상의 처리기를 가지며 컴퓨터 버스, 클럭, 메모리와 주변장치를 공유
-> 처리량, 신뢰성 증가- 느슨한 결합 시스템(loosely coupled system)
- 동기화가 엄격하지 않고 높은 작업 처리율을 제공하는데 목적을 둠
- 각 처리기는 기억장치와 클럭을 공유하지 않으며 각 처리기는 자신의 지역 기억장치를 가지며, 처리기들은 고속의 버스나 광섬유와 같은 다양한 통신 회선을 통해 서로 통신
-> 분산 시스템- 고려 사항
- 여러 프로세서 간의 기억장치 공유를 어떻게 지원할 것인가?
- 여러 프로세서의 사용을 어떻게 스케줄링할 것인가?
- 신뢰성과 병렬 계산, 최적의 연결 기법, 같은 자원을 요구하는 프로세서들 간의 경쟁을 제어하는 것
개인용 컴퓨터 시스템
- 중앙처리장치와 주변장치 이용률을 최대화시키려는 노력 대신에 편리성과 응답성을 더 중요시
분산 처리 시스템(Distributed Processing System)
- 연산을 분산화 시키는 시스템을 구성하는 데는 두 가지 형태 존재
- 밀착된 결합(tightly coupled) 시스템
- 프로세서들이 기억장치와 클럭을 공유
- 통신은 보통 공유 기억장치(shared memory)를 통해 행해짐
- 느슨한 결합(loosely coupled) 시스템
- 프로세서들이 기억장치와 클럭을 공유하지 않으며, 각 프로세서들은 자신의 지역(local) 기억장치를 가지며, 프로세서들은 고속의 버스(bus)나 전화선과 같은 다양한 통신 라인을 통해서 서로 통신
- 분산 시스템 내의 어느 특정 프로세서의 관점에서 볼 때
- 지역(Local) : 그 프로세서가 가지고 있는 자원을 말함
- 원격(Remote) : 그 특정 프로세서 외의 나머지 모든 프로세서들과 그 프로세서들에게 속해 있는 자원을 말함
- 분산 시스템 내의 프로세서들은 그 크기와 기능이 서로 다름
- 미니 마이크로 프로세서, 워크스테이션, 미니컴퓨터, 범용 컴퓨터 등이 포함
- 프로세서는 사이트(Site), 노드(Node), 컴퓨터, 기계(Machine) 등으로 불림
- 기계 위치를 나타내기 위해서는 사이트, 사이트에 있는 특정 시스템은 호스트라 부름
- 일반적으로 자원을 가지고 있는 사이트를 서버(Server), 반면 다른 사이트에서의 클라이언트(Client)나 사용자는 그 자원을 사용
- 분산 운영체제는 사용자들에게 시스템이 제공하는 다양한 자원들을 접근할 수 있도록 함
- 자원(Resource) : 프린터나 CD드라이버와 같은 하드웨어와 파일이나 프로그램과 같은 소프트웨어를 의미하는데, 이러한 자원의 접근은 운영체제가 관리
- 서비스를 제공하기 위해서는 두 가지 기법
- 네트워크 운영체제
- 노드 간 기종 차이가 심하고 대규모 네트워크 시스템에 사용되며, 각 노드들은 독자적인 운영체제를 가짐
- 통신기능은 기존 운영체제 위에 존재하며, 자원공유가 곤란함
- 분산 운영체제
- 각 노드들을 통괄할 수 있는 하나의 운영체제로 운영되며, 통신기능은 운영체제 설계 시 고려
- 미니, 마이크로컴퓨터 등으로 연결된 근거리 네트워크 시스템에서 많이 사용되며 자원 공유가 용이
- 분산 시스템 구축 이유
- 자원공유
- 연산 속도 향상
- 신뢰성 향상
- 통신 가능
멀티미디어 시스템(Multimedia System)
- 이미지/그래픽, 사운드, 애니메이션 및 비디오 등 다양한 미디어를 이용하여 멀티미디어 콘텐츠를 제작하기 위해 필요한 하드웨어와 소프트웨어로 구성
- 저작 시스템(authoring system)
- 멀티미디어 데이터를 생성, 편집, 재구성하여 멀티미디어 콘텐츠로 제작하기 위하여 스캐너, 디지털 카메라, 캠코더와 같은 H/W, 그리고 다양한 미디어 편집 S/W와 저작도구가 갖추어진 멀티미디어 시스템을 말함
- 재생 시스템(presentation system)
- 멀티미디어 콘텐츠를 재생하기 위한 음성출력, 영상출력, CD-ROM을 재생할 수 있는 H/W 와 S/W를 포함
- 저작 시스템 + 재생 시스템 -> 멀티미디어 플랫폼
임베디드 시스템(embedded System)
- 정의
- 마이크로프로세서 또는 마이크로컨트롤러를 내장하여 시스템 제작자가 의도한 몇 가지 혹은 특수한 기능만을 수행하도록 제작된 시스템
- 임베디드 시스템에 의존하는 장치들 : 자동차, 의료기기, 네비게이터, 바코드 스캐너, 키오스크, 측정장비, 핸드폰, 항공관제 시스템, 군사용 제어장치, u-홈 서비스 등
- 임베디드 운영체제의 강점
- 임베디드 시스템과 그 한정된 자원들의 능력에 맞게 최적화 가능