운영체제-프로세스 스케쥴링

dooh kim·2020년 2월 10일
0

operating_system

목록 보기
2/3

프로세스 스케쥴링

  • 배치 처리 시스템
  • 시분할 시스템
  • 멀티 태스킹
  • 멀티 프로그래밍

Batch Processing(배치 처리 시스템)

그림

Queue 와 같은 방식으로 돌아감

- FIFO(First In First Out)

배치 처리 시스템과 시분할 시스템/멀티 프로그래밍

- 여러 프로그램을 순차적으로 실행시킬 수 있도록 해주세요!
	- 어떤 프로그램은 실행 시간이 많이 걸려서, 다른 프로그램이 실행하는데 시간을 많이 기다려야 한다.(단점)
    - 나는 MP3 음악을 들으면서, 문서 작성을 하고싶어요(배치처리 시스템에서는 불가능함, 동시성 여러 응용 프로그램 실행)
    - 여러 사용자가 동시에 하나의 컴퓨터를 쓰려면 어떻게 해야 하나요?(다중 사용자 지원)

요구사항으로 인하여

멀티 프로그래밍/시분할 시스템이 나왔다.

시분할 시스템

- 시분할 시스템: 다중 사용자 지원을 위해 컴퓨터 응답 시간을 최소화하는 시스템

시간을 잘게 분할하여 조금씩 조금씩 응용 프로그램들을 바꿔가면서 실행을 하면 짧아진다.

멀티 태스킹

- 멀티 태스킹: 단일 CPU에서, 여러 응용 프로그램이 동시에 실행되는 것처럼 보이도록 하는 시스템

(cpu에서 실행되는 건 하나의 명령어이지만 여러개가 실행되는 것처럼 보이도록 한다 물론, 요즘은 여러개의 cpu장착되어있음)

실제 멀티 태스킹

- 1000 밀리초(ms) = 1초
- 10 ~ 20 ms 단위로도 실행 응용 프로그램이 바뀌더라
- 사용자에게는 동시에 실행 되는 것처럼 보임

(해당 기술은 시분할 시스템의 기본 기술과 동일하다.)

멀티 태스킹과 멀티 프로세싱

- 멀티 태스킹 : 단일 cpu
- 멀티 프로세싱 : 여러 cpu에 하나의 프로그램을 병렬로 실행해서 실행속도를 극대화 시키는 시스템(하나의 응용 프로그램이 여러 개의 cpu를 사용을 하면서 어떻게하면 짧은 시간안에 실행 시킬 수 있을까의 요구사항을 구현한 시스템)

정리

  • 배치 처리 시스템
  • 시분할 시스템(다중 사용자 지원, 응답시간 최소화)
  • 멀티 태스킹(동시 실행 하는 것처럼 보이도록)
  • 멀티 프로세싱(여러 CPU에 하나의 프로그램을 병렬로 실행시키는 시스템)

멀티 프로그래밍

  • 최대한 CPU를 많이 활용하도록 하는 시스템
    - 시간 대비 CPU 활용도를 높이자(응용 프로그램이 CPU에 실행을 하는 중이라 할지라도 응용 프로그램이 다양한 작업을 중간중간에 필요로 해서 cpu에 응용프로그램이 있다손치더라도 응용 프로그램이 실행을 못하는 경우가 있다)
    • 응용 프로그램을 짧은 시간 안에 실행 완료를 시킬 수 있음

의문점
응용 프로그램이 cpu에 한줄한줄 코들르 실행하면 되는거지 무슨 다른 작업을 한다는 말이냐 다 cpu가 실행하는거 아냐

그런 작업이 있다 하더라고 그런작업이 많을까?

의문점이 있을 수 있다

응용 프로그램은 온전히 cpu를 쓰기보다, 다른 작업을 중간에 필요로 하는 경우가 많습니다.

(다른 작업이라는 것들은 은 여러가지 기술들을 연결이 되었어서 여러가지 기술들을 다 알고나서 응용 프로그램들이 cpu에 넣어진다 치더라도 다른 작업들 때문에 cpu에서 계속 실행이 쭉 되는건 아니겠구나 ) 이해 안됨

- 응용 프로그램이 실행 되다가 파일을 읽는다(저장매체,굉장히 느림) 
cpu에 해당 응용프로그램들이 놓여 있더라도 저장매체에서 파일을 읽기 전까지 더이상 실행을 할 수 없다.
- 응용 프로그램이 실행 되다가 프린팅을 한다.

code example

그림

fd = open....
if(fd ==-1)

이 사이에 다른 응용 프로그램으로 바꿔 줄수 있다.
(fd return값을 이용해서 다음 코드가 진행되기때문에 걸리는 시간동안)

그림 2


컴퓨터 구조 측면

메모리 계층 - 컴퓨터 구조 복습

출처 : https://computationstructures.org/lectures/caches/caches.html

정리

실제로는 시분할 시스템, 멀티 프로그래밍, 멀티 태스킹이 유사한 의미로
통용된다.

  • 핵심
    - 여러 응용 프로그램 실행을 가능 토록 함
    • 응용 프로그램이 동시에 실행되는 것처럼 보이도록 함
    • CPU를 쉬지 않고 응용 프로그램을 실행토록 해서, 짧은 시간안에 응용 프로그램이 실행완료 될수 있도록 함
    • 컴퓨터 응답 시간도 짧게 해서, 다중 사용자도 지원

단어 정리

  • 시분할 시스템 : 다중 사용자 지원, 컴퓨터 응답시간을 최소화 하는 시스템
  • 멀티 태스킹 : 단일 CPU에서 여러 응용 프로그램을 동시에 실행하는 것처럼 보이게 하는 시스템
  • 멀티 프로세싱 : 여러 CPU에서 하나의 응용 프로그램을 병렬로 실행하게 해서, 실행속도를 높이는 기법
  • 멀티 프로그래밍 : 최대한 CPU를 일정 시간당 많이 활용하는 시스템

from fastcampus 컴퓨터 공학 강의

profile
testify to the light

0개의 댓글