정보보호론/시스템 보안

운영체제의 기술 발전 흐름과 입ㆍ출력 방식

retro_blue 2020. 9. 16. 14:47
반응형

■ 운영체제 시스템의 발전

 - 하드웨어 기능 및 기술의 발전으로 인해 운영체제 역시 지속적으로 기능을 확장하고 있으며, 사용자 및 시스템 관리자의 요구에 부합하는 서비스를 제공하기 위해 발전해 나가고 있다

 

* 운영체제 시스템의 발전

세대 운영체제의 발전
1세대 일괄처리
2세대 다중프로그램, 시분할, 다중처리, 실시간
3세대 다중모드
4세대 분산처리

 

1) 일괄처리 시스템 (Batch Processing System)

 - 초기의 컴퓨터 시스템에 사용한 형태로 일정량 또는 일정기간 데이터를 모아서 한꺼번에 처리하는 방식을 말함

 - 일괄처리를 위한 적절한 작업제어언어(JCL : Job Control Language)를 제공한다

 - 컴퓨터 시스템을 효율적으로 사용할 수 있다

 - 하나의 작업이 모든 자원을 독점하므로 중앙처리장치(CPU) 유휴시간이 줄어들지만, 반환시간(Turn Around Time)이 느리다

 - 급여계산, 지불계산, 연말결산 등의 업무에 사용된다

 

2) 다중프로그램 (Multi-Programming System)

 - 입ㆍ출력장치와 CPU 사이의 속도 차를 이용하는 것으로 하나의 CPU와 주기억장치를 이용하여 여러 개의 프로그램을 동시에 처리하는 방식

 - 하나의 주기억장치에 두 개 이상의 프로그램을 기억시켜 놓고 그중 하나가 실행될 때 입ㆍ출력장치의 조작으로 인해 CPU 유휴시간이 발생하면 운영체제가 다른 작업으로 전환하게 된다

 - CPU의 사용률과 처리량이 증가한다

 

3) 시분할 시스템 (Time Sharing System)

 - 여러 명의 사용자가 사용하는 시스템에서 컴퓨터가 사용자들의 프로그램을 번갈아가며 처리함으로써, 각 사용자는 독립된 컴퓨터를 사용하는 느낌을 주는 것으로 라운드 로빈(Round Robin) 방식이라고도 한다

 - 여러 사용자가 각자의 단말장치를 통하여 동시에 운영체제와 대화하면서 각자의 프로그램을 실행한다

 - 아주 짧은 일정시간 동안만 CPU를 사용하고 다음 사용자에게로 사용 권한을 전환한다. 각 사용자는 자신이 컴퓨터 시스템을 독점하고 있는 것처럼 생각할 수 있다

 - 하나의 CPU는 같은 시점에서 여러 개의 작업을 동시에 수행할 수 없기 때문에 CPU 전체 사용시간을 작은 작업시간량(Time Slice)으로 나누어서 그 시간 동안 번갈아가며 CPU를 할당하여 각 작업을 처리한다

 - 시스템 전체 효율은 좋아질 수 있으나 사용자 입장에서는 반응속도에 저하가 생긴다

 - 각 작업에 대한 응답시간을 최소한으로 줄이는 것을 목적으로 한다

 

4) 다중처리 시스템 (Multi-Processing System) 또는 다중처리 운영체제 (Multi-Processing Operating System)

 - 여러 개의 프로세서(Processor)가 공용 기억장치(Shared Memory)를 통해 제어 및 자원을 공유하면서 수행하는 시스템이다. 이를 위해서 여러 프로세서 간의 기억장치 공유를 지원하는 방법이다

 - 여러 프로세서의 내용을 스케줄링하는 방법 등이 필요하다

 - 2개 이상의 처리기로 구성된 시스템을 통하적으로 제어 및 관리하는 운영체제이다

 - 하나의 CPU가 고장나도 다른 CPU를 이용하여 업무를 처리할 수 있어 시스템 신뢰성과 안정성이 높다

 - 여러 CPU가 하나의 메모리를 공유하여 단일 운영체제에 의해 관리된다

 - 프로그램의 처리속도는 빠르지만 기억장치, 입ㆍ출력장치 등의 자원공유에 대한 문제점을 해결해야 한다

 

5) 실시간처리 시스템 (Real Time Processing System)

 - 데이터 발생 또는 데이터 처리요구가 있는 즉시 처리하여 결과를 산출하는 방식

 - 처리 시간이 단축되고 처리비용이 절감된다

 - 공항에서 항공기 운행이나 레이더 추적기, 핵물리학 실험 및 데이터 수집, 전화교환 장치의 제어, 은행의 온라인 업무 등 시간에 제한을 두고 수행되어야 하는 직업에 사용된다

 

6) 다중모드처리 (Multi-Mode Processing)

 - 일괄처리 시스템, 시분할 시스템, 다중처리 시스템, 실시간 처리 시스템을 한 시스템에서 모두 제공하는 방식이다

 

7) 분산처리 시스템 (Distributed Processing System) 또는 분산처리 운영체제 (Distributed Proessing Operating System)

 - 여러 개의 컴퓨터(프로세서)를 통신회선으로 연결하여 하나의 작업을 처리하는 방식

 - 각 단말장치나 컴퓨터 시스템은 고유의 운영체제와 CPU, 메모리를 가지고 있다

 - 사용자 프로그램에 대해 분산처리 형태를 의식하지 않도록 하는 기능을 가진 운영체제. 소프트웨어의 구성에 따라 분산 운영체제와 네트워크 운영체제로 나눈다

 

8) 임베디드 시스템 (Embedded System)

 - 어떤 장치가 다른 시스템에 의존하지 않고 독립적으로 기능을 수행하는 것을 의미하며, 하드웨어나 소프트웨어가 다른 하드웨어나 소프트웨어의 일부로 내포되어 있는 내장형을 의미하기도 한다

 - 일반적인 컴퓨터가 아닌 각종 전자제품과 정보기기 등에 설치된 마이크로프로세서에 미리 정해진 특정한 기능을 수행하는 소프트웨어를 내장시킨 것으로 특징은 SoC(System on Chip)이다

 - 유비쿼터스 컴퓨팅과 사물인터넷 시대의 도래로 임베디드 소프트웨어 관련 산업이 크게 성장할 것으로 기대된다

 

 

■ 운영체제의 입ㆍ출력 방식

 

1) 입ㆍ출력 기능

 - 운영체제는 설계자 또는 시스템 관리자가 정한 정책에 따라 입ㆍ출력장치의 할당, 분리, 공유 기법을 관리하여 단순하고 사용하기 편리한 형태로 입ㆍ출력장치와 시스템의 다른 부분과 인터페이스 기능을 제공해야 한다

 

2) 입ㆍ출력 버퍼링

 ① 버퍼링 (Buffering)

   - 컴퓨터 시스템에서 처리를 어떤 장치로부터 다른 장치로 데이터를 일방통행으로 전송할 때 양자의 속도차를 수정하기 위하여 중간에서 데이터를 일시적으로 기억장소에 축적하는 방법이다

   - 입력 버퍼링은 프로세서가 데이터를 요구하기 전에 입력장치가 데이터를 주기억장치에 복사하는 것이고, 출력 버퍼링은 데이터를 주기억장치에 저장하고 프로세서가 실행을 계쏙하는 동안 장치에 데이터를 기록하는 것이다

 

 ② 스풀링 (Spooling)

  - 스풀링은 주변장치와 컴퓨터 처리 장치 간에 데이터를 전송할 때 처리 지연을 단축하기 위해 보조기억장치를 완충 기억장치로 사용하는 것으로 이 용어는 「Simulataneous Peripheral Operation On-Line」에서 유래한다

  - 스풀링은 디스크의 일부를 스풀 공간으로 매우 큰 버퍼처럼 사용하는 방식으로, 디스크를 스풀 공간으로 사용하는 이유는 입ㆍ출력장치와 CPU의 속도 차이를 없애기 위해서이다

  - 대표적으로 프린터에서 사용한다

 

 ③ 버퍼링과 스풀링 비교

  버퍼링 스풀링
구현 하드웨어적 구현 소프트웨어적 구현
위치 버퍼의 위치는 주기억장치 스풀의 위치는 디스크
사용자 SIngle User Multi User
수행 스택 또는 큐 방식 입ㆍ출력 수행 큐 방식 입ㆍ출력 수행
다중작업 여부 한 작업에 입ㆍ출력과 계산 중복 가능 여러 작업에 입ㆍ출력과 계산 중복 가능

 

3) 인터럽트 (Interrupt)

 - 인터럽트는 시스템에 예기치 않은 상황이 발생하였을 때, 운영체제에 알리고 이를 해결하기 위한 메커니즘을 의미

 - CPU는 이것의 발생을 알리는 신호를 받으면 프로그램 카운터의 내용과 프로그램 수행 상테에 관한 모든 정보를 저장한 후, 문제의 해결을 위한 처리과정이 기술된 프로그램인 이것의 시작주소를 프로그램 카운터로 옮긴다

 - 인터럽트는 실행 중인 프로그램을 일시 중단하고 다른 프로그램을 끼워 넣어 실행시키는 것으로, 인터럽트 요인이 되는 조건이 생겼을 때 실행 중인 프로그램(A)을 중단하여 강제적으로 특정한 주소로 제어를 옮기고, 준비되어 있는 인터럽트 처리 프로그램(B)을 실행시키며, 그 처리가 끝나면 원래의 프로그램으로 되돌아가서 계속 실행 시킨다

 - 프로그램 처리의 효율화, 입ㆍ출력장치의 동시 동작 온라인 처리의 효율화를 기할 수 있다

 - 인터럽트 요인의 종류로는 입ㆍ출력 종료 인터럽트, 프로그램 인터럽트, 감시 프로그램 호출, 장해 인터럽트 등이 있다

 

종류 상세 특징
외부 인터럽트 - 입ㆍ출력장치, 타이밍 소자, 전원 공급 등 외부적인 요인으로 발생하는 인터럽트로 CPU H/W 신호에 의해 발생하며 프로그램과 비동기적으로 발생한다
- 전원 이상 인터럽트(Power Fail Interrupt) : 정전이나 전원 이상이 있는 경우
- 기계 착오 인터럽트(Machine Check Interrupt) : CPU의 기능 오작동이 발생한 경우
- 외부 신호 인터럽트(External Interrupt)
  ① 타이머에 의해 규정된 시간을 알리는 경우
  ② 키보드로 인터럽트 키(Ctrl+Alt+Del)를 누른 경우 (Operator의 Console 조작)
  ③ 외부 장치로부터 인터럽트 요청이 있는 경우
- 입ㆍ출력 인터럽트(Input-Output Interrupt)
  ① 입ㆍ출력 data의 오류가 발생한 경우
  ② 입ㆍ출력장치가 데이터의 전송을 요구하거나 끝났음을 알리는 경우
내부 인터럽트
(Trap)
- 프로그램 자체의 문제에 의해 프로그램과 동기적으로 발생한다
- 프로그램 검사 인터럽트(Program Check Interrupt)
  ① 0으로 나누기가 발생한 경우
  ② Overflow 또는 Underflow가 발생한 경우
  ③ 프로그램에서 명령어를 잘못 사용한 경우
  ④ 부당한 기억장소를 접근한 경우
** ①~③ : 특정 명령처리가 끝나면 일정 주기마다 동기적으로 발생
소프트웨어 인터럽트 - 소프트웨어 인터럽트는 프로그램 처리 중 명령의 요청에 의해 발생하는 것으로, 가장 대표적인 형태로 감시 프로그램을 호출하는 SVC 인터럽트가 있다
- SVC(SuperVisor Call) 인터럽트 (= 슈퍼바이저 인터럽트)
  ① 사용자가 SVC 명령어를 써서 의도적으로 호출한 경우
  ② 복잡한 입ㆍ출력 처리를 해야 하는 경우
  ③ 기억장치 할당 및 오퍼레이터와 대화를 해야 하는 경우

 

반응형

'정보보호론 > 시스템 보안' 카테고리의 다른 글

메모리(기억장치) 관리  (0) 2020.10.14
프로세스 동기화  (0) 2020.10.14
CPU 스케줄링 (CPU Scheduling)  (0) 2020.10.13
프로세스 관리  (0) 2020.10.13
운영체제(Operating System) 의 정의와 구조  (0) 2020.09.16