반응형

멀티태스킹 :

하나 이상의 프로세스를 동시에 중첩형태로 실행할수 있는 운영체제

 

멀티태스킹 운영체제:

협동형 멀티태스킹 (Cooperative Multitasking) & 선접형 멀티태스킹프로세스 (Preemptive Multitasking)

 

선점형 멀티태스킹 :

 

- 프로세스 실행을 언제 중단하고 다른 프로세스를 실행할지리를 스케줄러가 결정

- 실행중인 프로세스를 강제로 중지시키는 작업을 선점이라고 정의

- 프로세스가 선점되기 전까지 주어지는 시간은 보통 미리 정해져 있으며 이것을 Timeslice(타임슬라이스)라고 함

타임슬라이스 : 프로세스가 선점되기 전까지 프로세스에 주어지는 시간

- 스케줄러는 타임슬라이스를 관리하는 방식으로 전체적인 시스템 스케줄링을 결정

 

협동형 멀티태스킹 :

- 프로세스가 자발적으로 실행을 중단하지 않는 한 프로세스를 중지 불가

- 프로세스가 자주 양보함으로써 실행 중인 프로세스가 충분한 프로세서가 충분한 동작 시간을 확보할 있다

 

 

정책 : 스케줄러가 무엇을 언제 실행 할  것인지를 정하는 동작

- 스케줄러의 정책을 통해 프로세서 시간의 사용을 최적화하는 책임

 

입출력중심 / 프로세서중심 프로세스

 

입출력중신 프로세스 : 입출력 요청을 기다리는데 대부분의 시간을 사용하는 프로세스

-> 입출력을 기다리는 작업을 반복하게 되므로 실제 실행시간을 짧다

ex) GUI 어플리케이션, Word Application

 

프로세서 중심 프로세스 : 대부분의 시간을 코드를 실행하는 데 사용

-> 선점될때 까지 계속 실행 / 긴시간동안 덜 자주실행되는것이 중요

ex) ssh-keygen , MATLAB

 

 

프로세스 우선순위

1. 스케줄링 알고리즘의 일반적인 형태는 우선순위 기반의 스케줄링이다

2. 목표는 가치와 필요에 따라 프로세스의 순위를 매겨 프로세서 시간을 할당해야 한다.

 

리눅스 커널의 두가지 우선순위 단위

1. 나이스값 (-20 ~ +19, 기본값 : 0) : 클 수록 우선순위가 낮다.

2. 실시간 우선순위 (0 ~ 09) : 클수록 우선순위가 높다

-> 실시간 우선순위값은 나이스값과 별도의 값이다

 

타임슬라이스 : 선점되기 전까지 작업을 얼마나 더 실행할 수 있는지 나타내는 값이다

1. 너무 길게 잡으면 시스템의 대화형 성능이 떨어지고 실제 App이 시스템에서 실행되고 있다는 것을 느끼기 어렵다

2. 너무 짧게 잡으면 타임슬라이를 소진한 프로세스를 다음 프로세스로 전환하는데 빈번하게 시스템 시간을 사용하게 되므로 프로세스 전환에 프로세스 시간을 소비한다.

 

※ 리눅스의 CFS스케줄러는 타임슬라이스 값을 할당하지 않고 대신 프로세스별 프로세서 할당 비율을 지정하는 방법을 사용한다

→ 리눅스에서 프로세스에 할당되는 프로세스 시간은 시스템의 부하에 따른 함수로 결정되고 이는 나이스값의 영향을 받는다 

반응형

+ Recent posts