[ Regular OS ]
운영체제는 컴퓨터의 주기억장치 내에 상주하면서 사용자와 컴퓨터 시스템 사이의 인터페이스를 담당하여 컴퓨터 시스템의 전반적인 동작을 제어하고 조정하며 사용자에게 편리성을 제공하고 한정된 시스템 자원을 효율적으로 사용할 수 있도록 관리하는 여러 시스템 프로그램들의 집합을 말한다.
o 특징
운영체제를 구성하는 프로그램들은 하드웨어와 응용프로그램 간의 인터페이스 역할을 하면서 중앙처리장치, 주기억장치, 입출력장치, 파일 시스템 등의 컴퓨터 자원을 관리한다. 또한 인간과 컴퓨터 시스템 간의 상호작용을 위한 인터페이스를 제공함과 동시에 컴퓨터의 동작을 구동하고 작업의 순서를 정하며 입출력 연산을 제어하고 프로그램의 실행을 제어하며 데이터와 파일의 저장을 관리하는 등의 기능을 수행한다. 운영체제의 목적은 컴퓨터 시스템의 자원을 편리하게 사용할 수 있는 환경을 제공하고 컴퓨터 시스템의 자원들을 효율적으로 관리하여 시스템의 성능을 최적화하는 데 있다. 즉 운영체제는 컴퓨터의 기능을 사용자가 잘 활용하도록 돕고, 하드웨어가 성능을 잘 발휘하도록 관리하는 기능을 수행한다.
o 구성
운영체제의 구성은 사용자 프로그램들과 하드웨어와의 중간에 위치한다. 운영체제는 크게 커널과 유틸리티 프로그램의 두 부분으로 나누어지며, 커널은 부팅 후 주기억장치에 상주하는 OS의 핵심부분으로 제어 프로그램 또는 핵이라고 부른다. 운영체제의 각종 기능 중 사용자와 실행 프로그램들을 위해 자주 사용되는 기능 등을 담당하며 주로 자원의 관리 기능을 담당한다. 운영체제 중에서 자주 사용되는 부분들을 주기억장치에 적재시키는 것은 이들을 사용할 때마다 보조기억장치에서 주기억장치로 해당 프로그램을 읽어 올 때 시간이 많이 소요되어 시스템 성능이 떨어지기 때문이다. 유틸리티는 커널에 비해 자주 사용하지 않으며 추가 기능을 제공하는 작은 프로그램을 말한다. 부팅 시 주기억장치에 적재되지 않으며 보호기억 장치에 잇다가 해당 기능이 호출되는 경우 필요한 부분만 주기억장치로 적재되어 사용하다가 사용이 끝나면 주기억 장치에서 지워진다. 지우는 이유는 주기억장치의 용량이 한정되어 있고 가능하면 사용자 프로그램에 주기억 장치를 많이 할당하여 사용자 프로그램들을 효과적으로 실행시키기 위함이다.
o 예시
컴퓨터의 용량에 따라 구분하여 개인용 컴퓨터와 중대형 컴퓨터로 나누어 그 종류를 살펴볼 수 있다. 개인용 컴퓨터에 이용하는 대표적인 운영체제로는 마이크로소프트의 윈도우즈 계열의 운영체제와 리눅스 등이 있다. 중대형 컴퓨터에서 사용하는 운영체제는 유닉스 계열의 운영체제가 주종을 이루고 있다.
[ Multi-Processing OS, 다중처리 ]
다중 처리 시스템은 주기억 장치만 분할하고 CPU를 공동 사용하므로 프로그램의 완전한 동시 처리가 불가능하였다. 따라서 동시에 프로그램을 수행하도록 여러 CPU를 설치하여 각각 해당업무를 처리할 수 있는 시스템이다.
o 특징
다중처리 시스템은 2개 이상의 중앙처리 CPU를 사용하여 작업을 여러 개로 분담해 프로그램을 동시에 수행하는 방식이다. 다중처리 시스템은 수행 시간을 단축하거나 단위 시간당 처리율을 높을 수 있는 방식이다. 또한 하나의 CPU에 문제가 생기더라도 다른 CPU가 처리를 계속할 수 있으므로 신뢰도를 높일 수 있다. 일반적으로 여러 개의 프로세서가 하나의 운영체제에 의해 관리되고 버스나 기억장치를 공유하여 서로 통신하며 작업처리 하므로 작업처리 속도도 빨라질 수 있다.
o 구성
1) Master-Slave 프로세서
Master-Slave Master 프로세서는 Master 프로세서만이 운영체제를 수행하며 Master의 고장은 전체의 시스템을 작동 불가능으로 만들기 때문에 신뢰성이 낮다. Slave 프로세서는 사용자 수준의 프로그램만을 수행하며 Slave에서 실행되던 프로세스가 운영체제의 개입을 필요로 할 때에는 인터럽트를 발생시켜 Master에게 운영체제의 수행을 요청 하며 일이 없더라도 Master가 작업을 줄 때까지 대기한다. 운영체제가 한 순간에 하나의 프로세서(Master)에 의해서만 사용되며 또 한순간에는 한 사용자에게만 서비스하므로 운영체제는 재진입 가능하게 만들 필요가 없다. 따라서 상호배제가 간단하며 시스템에서의 부하가 미리 알려져 있는 구조에 적합하다. 각 프로세서에서 대한 서로 다른 운영체제와 기능들을 보유하며 각 프로세서는 각자의 제어하는 파일이나 입출력 장치가 존재한다. 한 번 할당된 프로세스는 실행이 종료될 때까지 그 프로세서에서만 실행하기 때문에 입출력 인터럽트는 직접 입출력을 시작하게 한 프로세서에 전달되며 Master-Slave 구조보다 높은 신뢰성을 갖는다.
2) 대칭적 운영체제
대칭적 운영체제는 모든 프로세서들이 동등한 입장에 있으며 운영체제는 어느 프로세서나 모든 입출력 장치와 기억장치를 사용할 수 있도록 한다. 여러 프로세서들이 한 운영체제를 동시에 수행할 수 있으므로 재진입 코드와 상호 배제가 필요하다. 대칭적 구성이므로 작업 부하의 효과적인 분산이 가능하며 가장 높은 신뢰성을 갖는다. 동시에 같은 기억장소를 액세스하는 프로세서들 사이의 충돌은 하드웨어로 해결하고 시스템 테이블에의 액세스 충돌은 소프트웨어로 해결한다. 실행되는 프로세스는 다른 프로세스로 옮겨져서 수행될 수도 있고 어떤 프로세스의 수행을 위해 모든 프로세서가 협력할 수도 있다. 어느 시점에서 시스템 테이블과 시스템 기능에 책임을 갖고 있는 프로세서는 하나뿐이며 이를 운영 프로세서라 한다. 대부분의 작업들이 어느 프로세서들에게도 옮겨갈 수 있으므로 전 시스템의 부하를 쉽게 조절할 수 있고 자원의 활용이 효율적이다.
o 예시
윈도우창 여러 개를 띄워놓고 한 번에 여러 가지 프로그램을 처리한다. 예를 들어MP3재생기로 음악을 들으면서 인터넷 서핑을 하거나, 문서 작업을 하는 등 여러 가지를 동시에 행하는 것이다.
[ Network OS, 네트워크 ]
네트워크 운영체제는 컴퓨터 네트워크로 연결되어 있으며, 각각 자주적인 별개의 컴퓨터들이 편리하고 효율적인 방법으로 서로 이용할 수 있도록 해 주는 통신규약과 소프트웨어의 집합이다. 즉, 구성된 네트워크 환경에서 서버와 클라이언트 간의 원활한 통신을 보장하기 위해서 자원공유 서비스 및 각 클라이언트의 관리기능을 제공하는 것으로, 주로 자원공유 기능 서비스를 제공하는 서버의 어플리케이션이다.
o 특징
컴퓨터 간의 통신을 위해 먼저 도구가 필요하다. 도구의 예는 컴퓨터와 LAN카드, 케이블 등의 통신 장비이다. 이 장비들을 운영 및 제어하기 위해서 운영체제가 필요하듯 이 네트워크를 위해서는 네트워크 운영체제가 필요하다.
- 네트워크의 호스트에 있는 각종 자원들을 사용할 수 있다.
- 특정 자원이 적당한 자격을 갖춘 이용자에 의해서만 사용할 수 있다.
- 네트워크와 호스트 컴퓨터의 복잡하고 자세한 사항들을 이용자들이 모르고 사용할 수 있다.
- 멀리 떨어져 있는 자원들도 자기 지역의 자원을 이용하듯 쉽게 사용할 수 있다.
- 전체 네트워크를 통틀어 동일한 계정 개설 절차를 적용할 수 있다.
- 단일 호스트에서 보다 훨씬 신뢰도가 높은 시스템이 된다.
o 구성
네트워크 운영체제의 논리적 구성요소로 사용자 프로세스, 노드, 링크가 있다. 사용자 프로세스는 정보처리나 통신을 하는 장치를 모델화 한다. 노드란 통신망을 나타내는 그래프에서 단말장치나 통신처리 장치 등에 해당한다. 정보통신분야에서는 네트워크에 접속 할 수 있는 장치를 의미한다. 링크는 두 점 간의 물리적인 연결을 말한다. 네트워크의 구성형태는 위상 방사형, 원형, 계층형, 버스형, 접속 방사형, 완전 연결형, 망형 등이 있다.
o 예시
1) 네트웨어
네트웨어는 노벨 사의 네트워크 서버 운영체제이다. 초기에는 프린터 공유라는 초보적 기능에서 출발하여 파일, 디스크 등의 공유로 확대되었다. 웹서버를 위한 응용계층의 지원뿐만 아니라, 노벨 고유의 네트워크 프로토콜(IPX)과 IP 프로토콜 모두를 지원하며 세대 파일 시스템, 프린팅 서비스 그리고 공개키 암호화 기법 또는 SAS를 비롯한 진보된 보안체계 등이 추가 되었다.
2) Windows NT
마이크로소프트사의 데이비드 커틀러가 새로운 운영체제로 다중 프로토콜 원격접속, 완화된 메모리 요구량, 새로운 TCP/IP 스택 등 많은 지원을 하며 클라이언트/서버 운영체제, 32bit 플랫 메모리 모델, 보호 메모리 모델, 선점형 멀티태스킹, 이식성, 확장성, 유니코드 사용, 보안성 등의 특징을 갖는다.
[ Distributed OS, 분산처리 ]
분산 처리 시스템은 네트워크를 통해 연결된 여러 자료 저장 장소와 컴퓨터 시스템에 작업과 자원을 나누어 서로 통신을 하면서 일을 처리하게 하는 방식이다. 즉 분산 처리 시스템은 하나의 대형 컴퓨터 시스템에서 수행하던 기능을 물리적으로 분산된 여러 개의 시스템에 분담시킨 후 네트워크를 통하여 상호 교신하여 일을 처리 하는 방식을 의미한다.
o 특징
분산 처리 시스템은 여러 컴퓨터들을 서로 연결한 네트워크 환경을 사용자에게는 마치 하나의 시스템처럼 나타나도록 하는 기능을 제공하며 여러 개의 자료 저장 장소와 시스템을 이용하여 동시에 여러 작업을 수행함으로써 성능이 향상될 수 있다. 또한 시스템 내의 분산된 자원을 효율적으로 관리하기 위해 시스템 내의 모든 컴퓨터들이 서로 긴밀한 관계를 유지하고 서로 도울 수 있도록 한다. 자료의 복사본을 여러 곳에 유지할 수 있어 신뢰도를 높일 수 있으며, 네트워크에 새로운 처리 시스템을 추가함으로써 쉽게 시스템 확장도 가능하다는 장점이 있다. 그러나 분산 처리 시스템이 이와 같은 장점을 잘 살리자면 자료 저장장소와 시스템을 단순히 물리적으로 연결해서는 안 되고 연결된 여러 자원과 시스템을 효율적으로 이용할 수 있는 소프트웨어와 시스템의 논리적인 설계가 반드시 필요하다.
o 구성
분산 처리기, 통신 네트워크, 분산 데이터베이스로 구성된다. 분산처리기는 지리적으로 분산 설치되어 있는 복수의 컴퓨터 즉 지역처리기이다. 그 지역에서 생성 저장되어 있는 데이터를 처리하는 지역 컴퓨터로 하나의 독립된 데이터 처리 시스템의 중추 역할을 한다. 통신 네트워크는 분산 처리기들을 네트워크로 연결시켜 자원을 공유함으로써 논리적으로 하나의 시스템과 같이 운영되도록 하는 망으로 어떤 특정 통신 규약에 따라 데이타를 전송, 수신한다. 분산 데이터베이스는 데이타가 지리적으로 분산 저장되어 있는 형태의 데이터베이스이며 클라이언트/서버 시스템으로 구성된다. 각 시스템은 하나의 구성원으로서 범시스템적인 규정에 따라 통제를 받는다.
o 예시
1) Monolithic 커널
Monolithic 커널이란 기존 단일 시스템용 운영체제들이 제공해야 할 서비스 기능을 포함하고 있는 대규모의 운영체제를 분산 시스템 내의 호스트들에게 탑재시킨다. 그러나 운영체제의 많은 서비스 기능들이 여러 호스트에 중복 배치되어 메모리 등 각종 자원의 낭비가 발생하는 문제점이 생긴다.
2) 마이크로 커널
Monolithic 커널의 문제점을 해결하기 위해 분산 시스템의 각 호스트에 탑재되는 운영체제에서 기본적인 기능들만 남겨 놓고 나머지 모든 서비스 기능들은 서비스 프로세서의 형태로 구성하여 운영체제의 규모를 최소화할 수 있다. 이렇게 운영체제의 규모를 대폭 줄여서 이로 인한 부담을 줄이는 기법이 바로 마이크로 커널이다. 마이크로 커널의 기능은 각 호스트를 위해 반드시 필요한 기능들 즉, 프로세스 관리, 메모리 관리, 그리고 지역 프로세스 간의 메시지 전달 기능 등이 있다.
[ Real-Time OS, 실시간처리 ]
실시간 처리 시스템은 데이터 발생 지역에 설치된 단말기를 이용하여 데이터의 발생과 동시에 입력시키며 중앙의 컴퓨터는 여러 단말기에서 전송되어 온 데이터를 즉시 처리 후 그 결과를 해당 단말기로 보내주는 시스템이다.
o 특징
실시간 처리 시스템은 각각의 적용 업무에 따른 단말 입출력장치의 발달, 단말장치와 컴퓨터 본체를 잇는 통신 제어장치 등의 발달, 그리고 처리를 요구하는 작업이 발생할 때마다 지정된 짧은 시간 내에 작업을 처리하여 확실한 응답이나 출력을 보장하는 마이크로프로세서의 발달로 실용화된 시스템이다. 외부의 사건에 시간적 제약성을 가지고 반응하며 시스템의 기능적 정확성뿐만 아니라 시간적 정확성이 만족되어야 올바른 동작이 보장된다. 시간적 제약을 만족시키기 위해 우선순위에 기반 한 스케줄링을 지원 해야 한다. 운영체제의 크기가 작아야 하며 필요에 따라 운영체제의 기능과 크기를 조절 가능해야한다. 또한 이식성이 좋아야 한다. 그러나 실시간 처리 시스템은 시스템에 오류가 발생하면 심각한 문제가 발생할 수 있는 위험성이 있다.
o 구성
커널, 스케줄러, 인터럽트 처리기, 메모리 관리자, 각종 커널 오브젝트로 구성된다. 스케줄러는 실시간 처리 시스템 커널의 핵심부이며 수행 가능한 여러 개의 태스크 중에서 가장 적합한 임무를 선택하여 수행 권한을 넘겨주는 역할을 하며 멀티태스킹이 가능하게 한다. 스케줄러는 선점형 스케줄러와 비선점현 스케줄러로 나눠진다. 여기서 태스크는 실시간 처리 시스템의 실행단위이다. 각 태스크는 우선순위를 가지고 우선순위가 높은 태스크가 시스템 자원을 선점할 수 있다.
o 예시
실시간 처리 시스템의 예로 미사일 방어 시스템을 들 수 있다. 즉 발사된 미사일을 인지하여 그에 상응하는 방어 수단을 보장하려면 제한된 짧은 시간 내에 응답을 실시간 처리 시스템이어야 한다. 또 다른 실시간 처리 시스템 응용 분야는 군사용뿐만 아니라 항공기나 철도의 좌석 예약 시스템, 은행의 예금 업무 등을 예로 들 수 있다. 실시간 처리 시스템은 자료가 발생한 단말기를 통해 그 처리가 가능하므로 사용자가 편리하고, 처리 시간이 단축되며 처리 비용도 절감되는 장점이 있다.
1) 경성 실시간 시스템
Dead line을 어길 경우 시스템의 품질에 치명적인 타격을 입히는 시스템
예) 미사일, 자동차
2) 연성 실시간 시스템
Dead line을 어기는 것이 품질의 저하를 가져오더라도 시스템의 동작이 여전히 의미를 가지는 시스템
예) 동영상 플레이어(오류시 깜빡임 정도)
'컴퓨터공학과 > Computing System' 카테고리의 다른 글
[시스템] 예외처리② - 예외처리 및 인터럽트 처리 과정 (0) | 2012.06.02 |
---|---|
[시스템] 예외처리① - Exception과 Vector Table (0) | 2012.06.02 |
[시스템] CPU정리② - 레지스터와 CPU 동작방법 (0) | 2012.05.26 |
[시스템] CPU정리① - CPU 내부 들여다보기 + CPU꿀정보 (1) | 2012.05.26 |
[system] Computing system3 (0) | 2012.05.25 |