본문 바로가기
CS/OS

[OS] OS의 작업 수행 방식

by Jiseong 2022. 3. 13.

OS에 대해 공부하다가 작업 수행 방식에 대한 역사부터 보고.. 재밌어서 글이 너무 길어져갖고 해당 부분을 끊어 쓴다~~~!!

 

OS의 작업 수행 방식 (역사)

순차 처리(~40s)

1940년대까진 운영체제의 개념이 존재하지 않았다.

이 말인 즉슨.. 운영체제가 해주는 일을 사용자가 직접 해야됐다는 말이다.

 

하드웨어 관리고.. 소프트웨어 관리고 전부 다 사용자가 관리해야됐던 시절이다.

 

작업 순서도 반드시 지켜야했고!!

 

근데 여기서 문제가 생긴다.

 

이 땐 비록 언어간 구별이 있었을지 없었을지는 모르겠지만 현존하는 언어를 예로 들어 얘기해보면, 어떤 사람은 C로 작업을 하였고, 다른 사람은 Java, 또 어떤 사람은 Python으로 작업을 했다고 생각해보자.

 

 

이 언어들의 동작 방법은 각각 다르고 운영체제가 없던 시절이기 때문에 C로 작업할 땐 사전 작업을 이렇게 하고, C 작업이 끝난 다음에 행할 작업은 Java 작업인데.. C랑 동작구조가 다르니깐 또 Java 사전 작업을 하고, 다음에 같은 언어가 아닌 다른 언어 작업이 들어온다면 또 사전작업을 해줘야되는 번거로운 일이 발생하였고, 컴퓨터가 노는 일이 생겨버렸다.

 

이 작업은 10초면 되는 건데 사전작업하는데 30초가 걸려버리니 오버헤드가 굉장히 발생했던 것이다.

오버헤드: 특정기능을 수행하는데 드는 간접적인 시간, 메모리등을 말한다.

 

이러한 치명적인 단점을 보완하기 위해 일괄처리 시스템이 생긴다.

 

Batch System - 일괄 처리 시스템 (50s~60s)

 

 

모든 시스템을 중앙(Operator)에서 관리 및 운영을 하며 사용자의 작업을 일정 시간동안 모아 두었다가 한번에 처리하는 시스템이 생겼다.

 

이로 인해 기존에 작업이 전환될 때 발생하였던 사전 작업(전환 시간, 오버헤드) 소요 시간이 엄청나게 줄게 되었다.

 

해당 시스템의 장점은 다음과 같다.

  • 많은 사용자가 시스템 자원 공유
  • 처리 효율 향상

하지만 단점도 존재했다.

  • 생산성 저하
    • 같은 유형들의 작업을 모아 처리해야 효율적이였기 때문에 작업들이 모이기까지 기다려야 했음
  • 긴 응답 시간
    • 작업들을 모아 처리했기 때문에 그 작업들을 전부 처리하는데 걸리는 시간 또한 늘어나게 되었다.

그래서 이 단점들을 보완하기 위해 Time Sharing System이 생겨났다.

 

Time Sharing System - 시분할 처리 시스템 (60s ~ 70s)

 

이전 시스템 버젼 일괄처리 시스템의 단점인 생산성 저하, 긴 응답 시간을 줄이기 위해 생겨난 시스템으로 cpp 잠깐 실행하고 멈추고, py 실행하고 멈추고, java 실행하고 멈추는 식으로 분할하여 처리하는 방식이 생겨났다.

 

이를 시분할 처리 시스템이라고 한다. 현재도 사용되는 방식이기도 하다.

 

이 시스템의 경우 처리 결과가 바로 나오진 않겠지만 어느정도 진행됐다는 등의 반응이 보였기 때문에 대화형 시스템이라고 한다.

 

이 때부터 단말기라는 것이 생겨 서버(Operator)와 통신을 할 수 있게 되었고, 작업을 행하는 사람마다 단말기를 가져 일을 처리하게 되었다.

 

또한 여러 사람이 단말기를 통해 자원을 동시에 사용하므로 OS가 파일 시스템 및 메모리 관리를 시작하게 되었다.

 

해당 시스템의 장점은 다음과 같다.

  • 응답 시간 단축
  • 생산성 향상
    • 프로세서 유휴시간 감소 (효율적으로 분산시켰기 때문에)

단점

  • 통신 비용 증가
    • 통신선 비용, 보안 문제 발생
  • 개인 사용자 체감 속도 저하
    • 동시 사용자 수가 오르면 시스템의 부하가 커져 느려지게 됨 (개인적 관점)

이렇게 하나의 컴퓨터(Operator)를 나누어 쓰니까 속도도 속터지고.. 답답하다는 단점이 있어 나 혼자만 쓰고싶어 라는 생각에 생겨난 시스템이 Personal Computing System이다.

 

Personal Computing System

개인이 시스템 전체를 독점한다.

 

하나의 컴퓨터를 여러명이 쓸 때 CPU 사용을 최대치로 하여 작업을 하는 것이 효율성면에서 중요했지만, Personal Computing System이 생겨나며 하나의 컴퓨터(시스템)를 개인이 사용하게 되어 활용률을 이전보다 고려하지 않게 되었고, 사용자 지원 기능(편리성)을 고려하게 되었다.

 

시스템을 혼자 쓰게되니 부하가 커지지 않게 되어 빠른 응답시간을 가지는 장점이 있었지만, 개인 컴퓨터의 성능을 높이려면 많은 돈이 필요했으므로 성능에 어느정도 제한이 있게 되었다.

 

혼자 쓰다보니 업그레이드 할 돈은 없는데.. 성능은 높이고 싶고... 또 답답하게 됐으므로 이 단점을 보완하려 생겨난 시스템이 Parallel Processing System이다.

 

Parallel Processing System - 병렬 처리 시스템

단일 시스템 내에서 둘 이상의 프로세서를 사용하는 시스템이다.

 

개인용 시스템이므로 여러 프로세서가 하나의 메모리등의 자원을 공유하게 되었고, 여러 프로세서가 있으므로 프로세서 각각의 관계 및 역활 관리가 필요하게 되었다.

 

이 시스템으로 인해 생겨난 장점은 다음과 같다.

  • 프로세서 증가로 성능 향상
  • 하나의 프로세서가 고장나도 남은 프로세서가 있으므로 신뢰성이 향상되었다.

하지만 단점도 존재했다.

  • 성능을 더 높이려 프로세서를 증가시키기엔 컴퓨터의 크기가 커지는 공간적인 제약과 시스템적인 제약 또한 존재하였다.

이러한 단점을 보완하려 생겨난 것이 Distributed Processing System이다.

 

Distributed Processing System - 분산 처리 시스템

 

컴퓨터 안에다가만 프로세서를 때려박지말고 네트워크를 통해 컴퓨터를 여러개 붙여 사용하자는 생각으로 생겨난 시스템이다.

 

각각의 PC는 물리적으로 분산되었고, 본인의 OS를 가지고 통신망을 이용한 상호간의 연결이 되었으며, 각각의 OS들을 전부 관리하는 분산운영체제가 존재하게 되었다.

 

분산처리시스템의 예

  • Cluster Computer (Super Computer)
  • Client - Server System
  • P2P

분산처리시스템의 장단점

  • 장점
    • 자원 공유를 통한 높은 성능
    • 높은 신뢰성, 높은 확장성
  • 단점
    • 구축 및 관리가 어려움

 

 

이 아래부터는 보는 관점에 따른 시스템 분류이다.

 

RealTime System - 실시간 시스템

작업 처리에 제한 시간을 갖는 시스템으로 제한 시간 내에 서비스를 제공하는 것이 자원 활용 효율보다 중요한 시스템이다.

 

해당 시스템의 자원 종류

  • Hard RealTime System
    • 시간 제약을 지키지 못하는 경우 시스템에 치명적인 영향
    • 예로는 발전소, 무기 제어 등이 있다.

원자력 발전소 온도 체크가 초마다 체크되어야하는데 안되서 온도가 올라가버리고.. 폭발한다면.... 아시죠?

  • Soft RealTime System
    • 예로는 동영상 재생 등이 있다.
    • 화, 짜증이 나긴하지만.. 하드 리얼타임 시스템보단 나은 경우를 말한다.
  • Non RealTime System

출처: https://www.youtube.com/watch?v=knF9lzHA3LI&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=4

'CS > OS' 카테고리의 다른 글

[OS] OS OverView  (0) 2022.03.13
[OS] Computer System Overview  (0) 2022.03.05

댓글