ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [운영체제] 5. 운영체제의 운용기법 변천사
    운영체제 2022. 1. 25. 12:41

     

    운영체제의 운용기법 발전으로 인해 여러 프로그램을 동시에, 빠른 속도로 돌릴 수 있게 되었다.
    사실 여러 프로그램이 동시에 돌아가지는 않는다.
    기술이 좋아져서 그런 것처럼 보이는것이고, 실제로는 한 프로그램씩 실행한다.


    이제 운용기법이 어떤 과정을 거쳐서 동시에 돌리는것처럼 보이는 지경에 도달했는지 알아보겠다.

    그 전에 알아야 할 규칙 :

    프로그램은 CPU 처리 후 I/O(입출력장치) 까지 처리해야 '수행을 완료했다'고 할 수 있다.

     

    1. 일괄 처리 시스템 (1950년대)

    특징 : - 한 프로그램이 '수행을 완료'하면 (CPU, I/O 모두 처리) 그 다음 프로그램이 수행된다.
    - (한개의 프로그램씩 아주 정직하게 실행되는것처럼 느껴진다.)

    ex) 앱A: CPU 수행 , 앱B: 대기 -> 앱A: I/O 수행 , 앱B: 대기 (CPU 사용X) -> 앱A: 완료, 앱B: CPU 수행

    단점 : I/O가 수행을 끝마칠때까지 CPU는 아무일도 하지 않는다. 따라서 CPU낭비가 심하다.


    2. 다중 프로그래밍 시스템 (1960년대)

    특징 : - 한 프로그램이 CPU를 수행하고 I/O으로 넘어가면 다음 프로그램이 기다리지 않고 바로 CPU를 수행한다.
    - (두개의 프로그램이 동시에 실행되는것처럼 느껴진다.)

    ex) 앱A: CPU 수행 , 앱B: 대기 -> 앱A: I/O수행, 앱B: CPU 수행

    단점 : 프로그램의 상황에 따라 무기한으로 대기할 수도 있다.

    3. 시분할 시스템 (1960년대)

    특징 : - CPU가 하나의 프로그램을 수행하는 시간을 제한하여 무기한으로 대기하는 폐해를 막는다.
    - (여러 프로그램이 동시에 실행되는것처럼 느껴진다.)

    ex) 앱A: CPU 일정시간 수행, 앱B: 대기 -> 앱A: CPU수행시간 제한되어 대기, 앱B: CPU 일정시간 수행

    단점 : 우선순위가 높은 프로그램이 대기중이라도 순서대로 실행된다.

    4. 인터럽트 시스템 (현재)

    특징 : - 인터럽트를 통해 우선순위가 높은 프로그램을 먼저 실행한다.

    인터럽트란? : 우선순위가 높은 프로그램이 수행을 원할 경우 즉시 CPU에게 전기신호를 보내는 것.
    이로 인해 CPU는 하던 일을 중지하고 해당 프로그램을 수행하게 된다.

    ex) 앱A: CPU 수행 -> 마우스 이동으로 인한 인터럽트 발생 -> 앱A: 일시중지, 마우스: CPU 수행


    인터럽트의 종류 : - 하드웨어 인터럽트 : 마우스, 키보드 등
    - 소프트웨어 인터럽트 : 파일 불러오기 등
    - 내부 인터럽트: 예외 상황이 발생한 경우(프로그램을 강제로 종료하게 된다)



    인터럽트의 실제 동작과정 :

    1) 인터럽트가 발생하여 CPU에게 전기신호를 보낸다.
    2) CPU는 하던 일을 중단하고 OS 내부에 있는 인터럽트를 처리하는 코드로 점프한다.
    3~4) 코드를 실행해 Disk에 있는 앱을 RAM에 올려 실행한다.
    5) 수행이 끝나면 원래 위치로 돌아간다.



    참고한 페이지
    https://velog.io/@codemcd/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9COS-2.-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%EC%97%AD%EC%82%AC

Designed by Tistory.