반응형

 

  • 운영체제(Operating System) : 운영체제는 응용 프로그램을 위한 기반을 제공하며 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스로 동작하는 시스템 소프트웨어의 일종이다. 운영체제는 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공한다.
  • 운영체제의 목적 : 처리능력, 사용자 용이성, 신뢰도 향상, 반환시간 단축
  • 운영체제의 유형 

1. 초기 일괄처리 시스템

초기 시스템은 효율성이 낮아 초기 일괄처리 시스템은 이를 개선하기 위해 초점이 맞춰졌다. 컴퓨터를 쉬지 않고 일하게 하기 위해 운영자를(operator)를 고용해서 사용자 작업을 접수받아서 비슷한 작업들을 묶어 배치(batch)로 처리하였는데, 배치는 별도의 오프라인 카드 리더나 자기 테이프에 저장하고 처리 결과를 별도의 오프라인 테이프를 통해 프린터로 출력되었다. 일괄처리 시스템에서는 주컴퓨터와 위성 컴퓨터 분리하여 주컴퓨터는 계속 작업 시행하고, 위성 컴퓨터는 프로그램 적재 및 결과물을 출력 전담하였다.  그러나 배치라는 일괄처리 작업을 취급하는 것은 사람 operator였고, 주컴퓨터의 효율성은 개선했지만 operator에 대한 의존도에 대한 개선이 필요했다.

 

2. 일괄처리 시스템

일괄처리 시스템은 일정량 또는 일정 기간 동안 여러 작업들을 모아서 한꺼번에 일괄적으로 처리하는 방식이다. 그러나 하나의 작업이 끝나기 전까지는 다른 작업을 할 수 없다. 일괄 처리 시스템은 일정 기간마다 주기적으로 한꺼번에 처리할 필요가 있고, 그룹별로 분류시킬 수 있는 성질을 가지고 있으며, 순차 접근방법을 사용할 수 있는 업무. 즉, 처리 요건이 일괄적인 업무에 대해 유사한 자료를 한데 모아 일정한 형식으로 분류한 뒤 한 번에 일괄 처리함으로써 시간과 비용을 절감하여 업무의 효율성을 향상한다. 이 시스템은 사용자와 대화가 필요하지 않은 CPU-bound 응용 프로그램 수행에 적합(수치계산, 대용량 데이터 처리)하지만, 기계적인 입, 출력 장치의 속도가 CPU와 같은 전자적인 장치의 속도보다 느리기 때문에 CPU가 계속해서 쉬는 상태(IDEL)인 경우가 많았고, 질의응답이 많거나 에디터와 같이 사용자와 빈번한 대화가 필요한 대화형 응용프로그램에서는 사용이 어려웠다.


<보호>
잘못된 사용자 프로그램이 상주 모니터 영역에 접근하여 덮어쓰는 일이 빈번히 발생함에 따라 상주 모니터 보호의 필요성 대두
- 모든 프로그램이 입출력을 직접 하지 않고 상주모니터의 루틴을 호출하도록 하고(시스템 콜 태동) 
미리 작성된 테이블에 기록된 허용치를 참조하여 각 연산(instruction) 수행 시 메모리 접근 범위를 제한

 

 

3. 다중 프로그래밍

다중 프로그래밍은 스케줄링이라는 방식을 사용하여 컴퓨터 사용자에게 병렬 연산이 이루어지는 것과 같은 환경을 제공한다. 한 시점에 여러 프로그램을 사용자 영역에 탑재하는데, 시스템에 들어오는 모든작업은 일단 작업 풀(디스크 사용)에 적재되고 작업 풀 내의 작업은 운영체제의 정책에 따라 선택되어 메모리에 탑재된다. 그리고 하나의 CPU와 주기억 장치를 이용하여 여러 개의 작업을 동시에 처리하기 위해 주기억장치에는 두 개 이상의 작업을 저장하고 하나의 CPU와 대화하면서 동시에 처리할 수 있다. 실제 CPU에서는 한 개의 프로그램만 실행되며, 나머지 프로그램은 입출력을 수행하거나 대기상태에 머문다. CPU 유휴시간에 버퍼링은 메모리 버퍼를 이용하여 입출력 장치와의 속도 차이를 해소한다. 다중 프로그램 시스템 덕분에 프로그램에서 카드를 읽거나 프린터를 쓰는 동안에도 CPU를 계속해서 사용할 수 있게 되었다. 일괄처리 시스템과는 다르게 디스크를 이용한 버퍼링과 스풀링으로 CPU 사용률과 처리량이 증가하게 되었지만, 단점은 메모리에 여러 프로세스를 수용해야 하기 때문에 메모리 관리가 복잡해지며, 실행 대기 중인 프로세스 간에 처리 순서를 스케줄링해야 한다. 

 

디스크는 순차적 처리 장치이지만 속도가 빠르고 임의접근이 가능해서 각 프로그램에서 산발적으로 일어나는 출력 자료를 디스크에 모아놓으면 각 프로그램이 프린터를 동시에 접근하는 효과가 있다.

 

4. 시분할 시스템

다중 프로그래밍의 경우 입출력이 일어날 때에만 스케줄링이 일어나기 때문에 결과적으로는 한 프로그램의 입출력 빈도와 시간이 다른 프로그램에 영향을 준다. 따라서 사용자와의 빈번한 대화성, 편리성 증진에는 한계가 있었다. 때문에, 시분할 시스템은 컴퓨터를 대화식으로 사용하려는 시도에서 탄생하게 되었다. 시분할 시스템은 CPU 스케줄링과 다중 프로그래밍을 이용해서 각 사용자들에게 컴퓨터 자원을 시간적으로 분할(Time Slice)하여 사용할 수 있게 해 준다. 시스템에서 타임 슬라이스가 도래하면 무조건 스케줄링을 실행하고 사용자와의 대화성을 증진시켜 결과적으로 효율성에 편의성까지 증진시키는 효과를 가져왔다. 따라서 많은 사용자들이 컴퓨터를 공유할 수 있고 시스템은 한 사용자에서 다른 사용자로 빠르게 전환함으로써 각 사용자가 마치 자신이 컴퓨터를 독점한듯한 착각을 준다. 사용자는 프로그램이 수행되고 있는 순간에도 상호작용(Interact)할 수 있고 아주 짧은 주기로 전환이 이루어지기 때문에 각 사용자는 모든 프로그램이 동시에 작동을 하고 있다고 느끼게 된다. 여러 사용자는 터미널과 시스템 간에 온라인 통신을 마련하여 동시에 접속하고 운영체제나 프로그램에 직접 명령을 주고 즉시 응답을 받을 수 있다.

시분할 시스템의 탄생으로 온라인 파일 시스템, 디스크 스케줄링, CPU 스케줄링, 프로세스간 통신, 동기화 및 교착상태 처리 등 다양한 이슈가 대두되었다.

 

5. 다중처리 시스템

다중처리 시스템은 컴퓨터 시스템 한 대에 둘 이상의 CPU를 이용하여 병렬로 작업을 처리하는 것을 가리킨다. 프로세스를 여러 개를 사용하여 여러 개의 작업을 동시에 수행함으로써 작업 속도를 높일 수 있으며, 프로세서 중 일부에 문제가 발생하더라도 다른 프로세서를 이용해 처리할 수 있고 신뢰성이 높다.

- 대칭형 다중 처리(SMP, Symmetric MultiProcessing) : SMP는 운영체제와 메모리를 공유하는 여러 프로세서가 프로그램을 수행하는 것을 말한다. 프로세서가 메모리와 입출력 버스 및 데이터 경로를 공유하며, 또한 하나의 운영체제가 모든 프로세서를 관리한다.

- 비대칭형 다중 처리 : 각 처리기마다 특정한 작업이 정해져 있고 하나의 주요 CU가 시스템을 제어하며, 다른 CPU들은 미리 정의된 작업 혹은 명령을 수행한다.

 

6. 분산처리 시스템

분산처리 시스템(Distributed Data Processing System)은 하나의 대형 컴퓨터에서 수행하던 기능을 분산된 여러 컴퓨터에 분담시킨 후, 네트워크를 통하여 처리하는 방식이다. 

1) 장점

- 여러 사용자들 간의 통신 용이

- 제한된 장치를 서로 다른 사용자가 공유 가능

- 중앙 컴퓨터 과부하 감소

- 업무량 증가에 따른 시스템의 점진적인 확장에 용이

- 하나의 일을 여러 시스템이 처리하므로 연산속도, 신뢰도, 사용 용이성이 향상되고, 결함 허용이 가능하다.

2) 단점

- 중앙 집중형 시스템에 비해 소프트 웨어의 개발이 어려움

- 보안 문제 발생 가능성

- 시스템 유지상 통일성 잃기 쉬움

- 시스템 설계가 복잡하고 데이터 처리 서비스의 질이 떨어짐

 

7. 클러스터 시스템

 

클러스터 시스템은 여러 대의 컴퓨터들이 연결되어 하나의 시스템처럼 자동하는 컴퓨터들의 집합을 말한다. 일반적으로 단일 컴퓨터보다 더 뛰어난 성능과 안정성을 제공하며, 비슷한 성능과 안정성을 제공하는 단일 컴퓨터보다 비용 면에서 훨씬 효율적이다. 클러스터 시스템은 사용자의 필요에 따라 시스템을 구축할 수 있으며, 연결된 서버의 수를 늘리는 것으로 쉽게 성능을 향상할 수 있다는 것 장점으로 꼽힌다. 반면 단일 시스템에 비해 유지 보수가 힘들고, 시스템의 성능이 네트워크 성능에 많은 영향을 받는다는 단점이 있다.

 

 

8. 실시간 시스템

실시간 컴퓨팅(Real-Time Computing, RTC)은 사용할 수 있는 자원이 한정되어 있는 상황에서 작업 수행이 요청되었을 때, 이를 제한된 시간 안에 처리해 결과를 내주는 것을 말한다. 이러한 컴퓨팅을 활용한 시스템은 실시간 시스템(Real-Time System)이라 하는데, 작업의 요청에서 수행 결과를 얻기까지 시간적인 제약이 존재하는 시스템으로 그 제약의 엄격함에 따라서 경성 실시간, 연성 실시간 시스템으로 나뉜다.

- 경성 실시간 시스템

작업의 실행 시작이나 완료에 대한 시간 제약조건을 지키지 못하는 경우 시스템에 치명적인 영향을 주는 경우를 가리킨다. 예로서는 무기 제어, 발전소, 철도, 미사일 유도 시스템 등등이 있다. 보장되는 컴퓨팅과 시간의 정확성과 컴퓨팅에 대한 예측성을 가지게 해주어야 한다.

- 연성 실시간 시스템

작업 실행에 대한 시간 제약이 있지만, 지키지 못하더라도 전체 시스템에 큰 문제를 일으키지 않는 시스템을 말한다. 예로서는 동영상 플레이어를 들 수 있다.

 

 

<용어 개념 잡기>

채널 : 명령어, 레지스터 및 입출력 제어장치로 구성되고, CPU와 함께 메모리를 공유하고 명령을 받아 CPU와 독립적으로 입출력 실행한다. 
단 메모리 사이클 경쟁 제어 필요 -> Cycle Steeling을 통해 해결. (직접 메모리 접근(Direct Memory Access, DMA))

 버퍼링(Buffering) :  메모리 버퍼를 이용하여 입출력과 CPU의 속도차를 해소해서 독립된 동작을 허용한다. 

 스풀링(SPOOLing, Simultaneous Peripherial Operation On-Line) :  하나의 순차적 처리 장치(ex:프린터)를 여러 프로세스 프로그램이 디스크를 활용하여 동시에 공유할 수 있도록 하는 기능을 제공한다.

버퍼 : CPU와 채널 입출력의 병렬 수행을 위하여 데이터 버퍼를 사용한다. 연산하는 동안 읽거나, 쓰는것이 가능하게 되어 입출력 대기시간을 없앤다. 채널이 입출력을 위해 사용하는 메모리상의 약속된 장소이자 CPU가 입출력 정보를 접근하는 장소이기도 하다. 버퍼가 있기 때문에 채널과 CPU가 어긋나지 않고 자료를 공유하면서도 서로 간섭을 일으키지 않게 된다.

인터럽트 : 사용자 프로그램이 아니라 하드웨어에 의하여 자동으로 메모리 특정 부분에 있는 함수 (Interrupt Service Routine, ISR)를 호출하는 개념. 입출력의 완료와 예외 동작(파일 종료, 테이프 끝, 패리티 오류)을 처리한다. 채널을 통한 입출력 버퍼링을 CPU와는 독립적으로 수행하도록 하는 핵심 수단이다.

※ 프로세서 : 하드웨어적 측면에서 "컴퓨터 내에서 프로그램을 수행하는 하드웨어 유닛"이다. 이는 중앙처리장치(CPU)를 뜻하며 폰노이만 아키텍처에 의해 만들어졌다면 적어도 하나 이상의 ALU(Arithmetic Logic Unit)와 처리 레지스터(Register)를 내장하고 있어야 한다. 소프트웨어적으로 프로세서는 데이터 포맷을 변환하는 역할을 수행하는 데이터 프로세싱 시스템(데이터 처리 시스템)을 의미하며 출력 가능한 인쇄물을 생성하는 Word Processor도 프로세서라 부른다.

※ 프로세스 : 스스로 무언가를 처리하지 못하며, 단어 그대로 "절차(과정)"이라는 뜻이다. 특정 목적을 수행하기 위해 나열된 작업의 목록 즉, "메모리에 적재되어 프로세서에 의해 실행 중인 프로그램"이라고 정의할 수 있다.

작업의 과정이 파일로 저장되어 있으면 그것을 "프로그램"이라고 부르고 메모리에 적재되어 실행중 이거나 실행 대기 중일 때는 "프로세스"라고 구별하여 부른다. 

※ 스케줄링 : 다중 프로그래밍을 가능하게 하는 운영 체제의 동작 기법이다. 운영 체제는 프로세스들에게 CPU 등의 자원 배정을 적절히 함으로써 시스템 성능을 개선할 수 있다.

 타임슬라이스 : 사용자에게 빠른 응답 시간을 주기 위하여 보다 작은 단위로 CPU시간을 나누어 할당한다.

 가상메모리 : 가상 메모리 또는 가상 기억 장치는 RAM을 관리하는 방법의 하나로, 각 프로그램에 실제 메모리 주소가 아닌 가상의 메모리 주소를 주는 방식을 말한다. 여러 프로그램의 동시 적재로 메모리 부족을 야기하기 되어 가상 메모리를  통해 실제 메모리보다 더 큰 프로그램의 수행을 가능하게 한다.

 

 

반응형

+ Recent posts