티스토리 뷰

SoftWare/OS

OS - 5. CPU Scheduling (2)

White Whale 2016. 4. 23. 22:06
728x90

1. Contention Scope

• 커널 수준 쓰레드는 운영체제에 의해 스케줄링 된다.

• 유저 수준 쓰레드는 쓰레드 라이브러리에 의해 스케줄링 된다.
• PCS : 같은 프로세스내에 존재하는 쓰레드 끼리 경쟁상태에 놓이게 된다. 다-대-다, 다-대-일 모델을 구현하는 시스템에서는 LWP상에서 스케줄한다. 즉 프로세스-경쟁-범위(PSC)이다.
• SCS : 시스템에 존재하는 모든 쓰레드끼리 경쟁상태에 놓이게 된다. 


2. 다중 처리기 스케줄링

• Asymmetric multiprocessing : 하나의 master server 하는 처리기를 두어 다른 스케줄링 결정과 입출력 처리 그리고 다른 시스템의 활동을 처리하게 한다.

• Sysmetric Multiprocessing : 각각의 프로세서가 독자적으로 스케줄링한다. 


3. 처리기 친화성

• 프로세스가 다른 처리기로 이동하면 해당 프로세스와 관련된 정보들 역시 이동해야한다. 정보가 이동하는 비용이 많이 들기 때문에 대두분의 SMP 시스템은 한 처리기에서 다른 처리기의 이주를 피하고 같은 처리기에서 실행되도록한다. 이를 처리기 친화성이라고 부른다. 


4. 부하 균등화

• 부하 균등화는 SMP 시스템의 모든 처리기 사이에 부하가 고르게 배분되도록 시도한다.
• push migraion는 특정 태스크가 주기적으로 각 처리기의 부하를 검사하고, 불균등 상태이면 과부하인 처리기에서 쉬고 있거나 덜 바쁜 처리기로 프로세스를 이동시킨다.
• pull migraion은 쉬고있는 처리기가 다른 처리기의 프로세스를 자기쪽으로 가져온다.


5. 다중코어 프로세서

• 프로세스가 메모리를 접근할 때 데이터가 가용해지기를 기다리는 시간을 메모리 멈춤(memory stall)이라고 한다.

• 둘 이상의 하드웨어 스레드가 각 코어에 할당되어 아래와 같이 실행된다.


6. Real-time scheduling - Minimizing Latency

• 실시간 시스템의 사건-중심의 특성 때문에 일이 발생하면 빠르게 처리되어야 한다. 이러한 이유로 사건이 발생하고 반응하기까지의 시간인 사건 지연을 줄여야한다.
• 인터럽트 지연시간은 CPU에 인터럽트가 발생한 시점부터 해당 인터럽트 처리 투린이 시작하기까지의 시간을 말한다.

 디스패치 지연 시간은 스케줄링 디스패처가 하나의 프로세스를 블록시키고 다른 프로세스를 시작하게 하는데 덜리는 시간을 말한다.



7. Real-time scheduling - Priority based Scheduling

• 실시간 스케줄은 우선순위 스케줄링 베이스이다. 
• 일정 시간내 무조건 실행되어야하는 것들을 위해 실시간 스케줄링에서는 총 프로세스 갯수를 제한한다.
• 한 주기를 정해 주기 안에 돌아갈 프로세스를 정하고 주기 내에서 프로세스끼리 우선순위로 처리가 된다. 
• 제어승인 알고리즘으로 주기안에 돌아갈 수 있는것만 받는다.


8. Real-time scheduling - Rate Monotonic

• 주기에 따라서 우선순위가 선정된다.

 P1 : f1 = 50, t1 = 20 -> t1/f1 = 20/50 = 0.4
 P2 : f2 = 100, t2 = 35 -> t2/f2 = 35/100 = 0.35
 P1이 우선순위가 더 높다.


9. Real-time scheduling - Earliest Deadline First Scheduling (EDF)

• 마감시간에 따라서 우선순위를 동적으로 부여한다. 그렇기 때문에 프로세스가 실행가능하게 되면 자신의 마감시간을 시스템에게 알려야한다. 우선순위는 새로 실행가능하게 된 프로세스의 마감시간에 맞춰서 다시 조정된다.

• 들어올 떄마다 데드라인 확인해야 해서 오버헤드가 크다.


10. Real-time scheduling - Proportional Share Scheduling

• 모든 응용에게 시간을 주고 이것을 가지고 승인 제어(Admission-control)를 한다.

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

식사하는 철학자 문제(C언어)  (0) 2016.05.07
OS - 6. Process Synchronization (1)  (0) 2016.04.25
OS - 5. CPU Scheduling (1)  (0) 2016.04.23
OS - 4. Thread  (0) 2016.04.10
OS - 3. Process(2)  (0) 2016.04.10
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함