일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 큐
- defee
- pintos
- TiL
- 핀토스
- 코드트리
- 사이드프로젝트
- 4기
- 백준
- 크래프톤 정글
- 모션비트
- HTML
- Java
- CSS
- 자바
- 스택
- corou
- Flutter
- 시스템콜
- 오블완
- JavaScript
- 소켓
- 자바스크립트
- userprog
- 알고리즘
- 나만무
- 정보처리기사
- 리액트
- 크래프톤정글
- Vue.js
- Today
- Total
목록priority (2)
미새문지
Alarm Clock devices/timer.c에 정의된 timer_sleep()을 다시 구현합니다. 작동하는 구현이 제공되지만 busy waits, 즉 현재 시간을 확인하고 충분한 시간이 경과할 때까지 thread_yield()를 호출하는 루프에서 회전합니다. busy waits를 피하려면 다시 구현하세요. void timer_sleep (int64_t ticks); 호출 스레드의 실행을 최소한 x 타이머 틱 만큼 시간이 지날 때까지 일시 중지합니다. 시스템이 유휴 상태가 아닌 경우에는 정확히 x 틱이 지난 후에 스레드를 깨울 필요는 없습니다. 대신 적절한 시간 동안 대기한 후에 준비 큐에 해당 스레드를 넣어주면 됩니다. timer_sleep()은 초당 한 번씩 커서를 깜박이는 등 실시간으로 동작하는..
thread.c 더보기 // advanced scheduling 용도 //17.14 형식의 고정소수점 표현 #define P 17 #define Q 14 #define F (1 = 0 ? ((x + F/2)/F) : ((x - F/2)/F)) //고정소수점 기본 연산 #define ADD_FIXED(x,y) (x) + (y) #define SUB_FIXED(x,y) (x) - (y) #define MUL_FIXED(x,y) ((int64_t)(x)) * (y) / (F) #define DIV_FIXED(x,y) ((int64_t)(x)) * (F) / (y) #define ADD_INT(x, n) (x) + (n) * (F) #define SUB_INT(x, n) (x) - (n) * ..