본문 바로가기
운영체제

다중프로그래밍, 시분할

by 핫동경 2022. 3. 24.
반응형

[다중 프로그래밍]

  ○ CPU 작업과 입출력 작업을 병행하는 것

 

  ○ 일반적으로 단일 사용자는 CPU 나 입출력 장치를 항상 무언가를 하도록 유지할 수 없다

      하지만 다중 프로그래밍은 한 명의 사용자도 종종 여러 프로그램을 동시에 실행 시킨다.

 

 작업은 처음에는 디스크의 작업 풀에 유지된다.

    디스크 작업 풀 : 공간으로 디스크에 얽혀 들여져 대기하고 있는 여러 작업들이 실행 될 수

                          있도록 준비시킨다.(작업 풀의 있는 작업들은 메인 메모리의 할당을 기다린다)

 

  운영체제는 메모리의 용량만큼 여러 작업을 적재한다.

  이때

  몇몇 작업들이 메모리로 옮겨질 준비가 되었지겠지만 메모리의 용량이 충분치 않아 작업들 중 몇 개를 선택해야 한다. 이러한 결정을 하는 것을 작업 스케줄링 이라고 한다.

   현재 보이는 작업들은 작업 풀에 대기 중인 작업의 부분집합이다.

   운영체제는 메모리 내에 있는 작업 중에서 하나를 선택해 실행을 시작한다.

   다중 프로그래밍을 사용하지 않는 시스템에서 입출력 연산과 같은 작업이 들어오면 CPU는 쉬게되고

   입출력 연산의 완료를 기다리게 된다.

   하지만 다중 프로그래밍에서는 운영체제가 단순히 다른 작업으로 전환한다. 

   즉 첫 번째 작업이 기다리기를 끝내고 CPU를 다시 차지하게 된다. 따라서 실행될 작업이 최소한 하나가 

   있는 한 CPU는 쉬지 않는다.

[장점] : 시스템 자원을 효율적으로 이용할 수 있는 환경 제공


 

[시분할]

   다중 프로그래밍의 논리적 확장으로서 CPU가 다수의 작업들을 교대로 실행하지만 매우 빈번하게 교대가

   일어나기 때문에 사용자들은 각자 자기의 프로그램이 실행되는 동안에 상호 작용할 수 있다.

 

  시분할 시스템은 사용자와 시스템 간에 직접적인 통신을 제공하는 대화식 컴퓨팅 환경을 제공한다

  (마치 대화하는 것 같음)

  사용자의 명령에 응답 시간은 짧아야 하며 전형적으로 1초 이내이다

 

  메모리에 적재되어 있는 프로그램을 프로세스라고 한다. 프로세스가 실행될 때는 자신이 종료되거나

  입출력을 수행할 필요가 있을 때까지 아주 짧은 시간 동안만 실행된다.

 

  작업 스케줄링에 의해 여러 개의 작업들이 메모리에 적재되었고 여러 개의 작업이 동시에 실행 준비되어    있으면 시스템은 무엇을 실행할지 그들 중 하나를 선택해야 한다. 이러한 결정을 내리는 것을 

  CPU 스케줄링 이라고한다.

 

 시분할 시스템에서는 응답 시간을 보장해야한다(1초이내). 응답 시간을 보장하기 위해서 스와핑이 

 이 실행되는데 스와핑은 프로세스를 메인 메모리에서 디스크로 적절하게 스왑인 또는 스왑아웃 시킨다.


[정리]

예를 들어보자)

 작업 1을 하다가 사용자의 입력을 받는 작업이 들어왔다. 그럼 CPU는 사용자의 입력이 다 끝날 때

 까지 다른 작업을(작업2,3,4)수행하다가 사용자의 입력이 끝나면 다시 작업1을 수행한다.

 여기서 사용자가 "안녕하세요"를 쳤을 때 보통 3~4초가 걸린다. 컴퓨터에게는 3~4초는 매우 느린

 시간이기 때문에 다른 많은 작업들을 수행할 수 있다.

반응형

댓글