티스토리 뷰
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
- c언어
- Java Decompiler
- 유전 알고리즘
- 유전
- 카운터
- jad
- Service
- 자바 입출력
- 포켓몬 Go
- 5582
- java 파일 입출력
- LISTVIEW
- android
- 테라펀딩 #투게더펀딩 #P2P투자 #부동산 소액 투자 #카카오 #토스
- 포켓몬 고
- vim
- Res
- 파일입출력
- Notification
- java url
- 파일 입출력
- 알고리즘
- 안드로이드
- php
- vim 설치
- 인텐트
- java
- counter
- 서버
- 아두이노
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |