certification/정보처리산업기사

[OS] 운영체제의 발달 과정

gaing 2024. 10. 18. 17:11

운영체제의 발달 과정

1세대 : 일괄 처리 시스템
2세대 : 다중 프로그래밍 시스템, 시분할 시스템, 다중 처리 시스템, 실시간 처리 시스템
3세대 : 다중 모드 처리
4세대 : 분산 처리 시스템

 

운영체제의 운용 기법

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

초기의 컴퓨터 시스템에서 사용된 형태로, 일정량 또는 일정 기간 동안 데이터를 모아서 순차적으로 한꺼번에 처리하는 방식
  • 초기의 시스템은 사용자와 상호작용하는 것이 불가능했지만, 운영체제가 발전함에 따라 프로그램 입출력을 통해 상호작용하는 것이 가능해졌다.
  • 한꺼번에 처리하면 시간과 비용을 절감하여 업무의 효율성을 향상시킬 수 있었다.
  • 한 작업이 끝나기 전까지 다음 작업이 시작되지 않기 때문에 작업 처리 대기 시간이 길어질 수 있다.

 

2. 다중 프로그래밍(Multi-Programming) 시스템

하나의 CPU와 주기억장치를 이용하여 여러 개의 프로그램을 동시에 처리하는 방식
  • 다중 프로그래밍 운영체제에서 여러 개의 작업들이 수행할 준비를 갖추고 있다면 이 작업들 중에 하나를 선택하기 위한 결정이 필요한데, 이것이 CPU 스케줄링이다. 따라서 수행해야 할 작업이 있는 한 CPU는 유휴 상태가 되지 않는다.
    • 유휴 상태 : 컴퓨터 시스템이나 장치가 아무런 작업을 하지 않고 대기하는 상태
  • 여러 프로그램이 동시에 실행되면서 자원을 공유하기 때문에, 교착 상태(Deadlock)가 발생할 수 있다.
    • 교착 상태 : 두 개 이상의 프로그램이 서로 자원을 기다리면서 영원히 대기하는 상태
  • 메모리에 여러 프로세스를 수용해야 하므로 메모리 관리가 복잡해지며, 실행 대기 중인 프로세스 간에 처리 순서를 스케줄링해야 한다.

 

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

CPU 스케줄링과 다중 프로그래밍을 이용해서 각 사용자들에게 컴퓨터 자원을 시간적으로 분할하여 사용할 수 있게 해주는 방식
  • 한 사용자에서 다음 사용자로 빠르게 전환함으로써 각 사용자에게 자신만이 컴퓨터를 사용하고 있는 것과 같은 착각을 주지만, 실제로는 여러 사용자가 하나의 컴퓨터를 공유하여 사용하고 있는 것이다.
  • 많은 사용자가 컴퓨터 자원을 공유할 수 있으며, 대화형으로 작업을 수행할 수 있다.

 

4. 다중 처리(Multi-Processing) 시스템

여러 개의 CPU와 하나의 주기억장치를 이용하여 여러 개의 프로그램을 동시에 처리하는 방식
  • 하나의 CPU가 고장나더라도 다른 CPU를 이용하여 업무를 처리할 수 있으므로 시스템의 신뢰성과 안정성이 높다.
  • 일반적으로 하나의 운영체제가 모든 프로세서들을 제어한다.

 

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

데이터가 발생하거나 요청될 때 즉시 처리하여 결과를 제공하는 방식
  • 작업의 요청과 수행 결과를 얻기까지의 시간적인 제약이 존재하는 시스템으로, 그 제약의 엄격함에 따라서 경성 실시간 시스템과 연성 실시간 시스템으로 나뉜다.
  • 우주선 운행이나 레이더 추적기, 핵물리학 실험 및 데이터 수집, 은행의 온라인 업무, 좌석 예약 업무, 인공위성 등의 제어 업무 등 시간에 제한을 두고 수행되어야 하는 작업에 사용된다.

 

6. 다중 모드 처리(Mulit-Mode Processing) 시스템

일괄 처리 시스템, 시분할 시스템, 다중 처리 시스템, 실시간 처리 시스템을 통합하여 하나의 시스템에서 제공하는 방식
  • 다양한 처리 기법을 한 시스템에서 모두 사용할 수 있으므로, 각 환경에 맞는 유연한 대응이 가능하다.
  • 시스템 설계 및 운영이 복잡하며, 각 처리 모드 간의 상호작용을 잘 관리해야 한다.

 

7. 분산 처리(Distributed Processing) 시스템

여러 개의 분산된 컴퓨터 시스템이 네트워크로 연결되어 자원을 공유하고 협력하여 작업을 처리하는 방식
  • 각 컴퓨터는 고유의 운영체제, CPU, 메모리를 가지고 있지만, 하나의 큰 시스템처럼 동작한다.
  • 자원 공유와 확장성이 뛰어나며, 장애 발생 시에도 일부 시스템에만 영향을 받으므로 안정적이다.
  • 네트워크 의존도가 높으며, 네트워크 성능에 따라 시스템 전체 성능이 좌우될 수 있다.