# OS HW3 ## 問題 * RR task斷點怎麼紀錄 * PP multilevel queue * running state才能用del打斷,還是任何時候都可以 * turnaround = waiting + running ? ## 解決方案 * RR task斷點怎麼紀錄 直接用 swapcontext * PP multilevel queue sort queue (by priority) * running state才能用del打斷,還是任何時候都可以 先實作ready queue刪除,測資裡沒有中途刪除的動作 ## Block signal(建議) ```c= void block_sigprof(void){ sigset_t sigprof; sigemptyset(&sigprof); sigaddset(&sigprof, SIGPROF); if(sigprocmask(SIG_BLOCK, &sigprof, NULL) == -1){ perror("sigprocmask"); abort(); } } void unblock_sigprof(void){ sigset_t sigprof; sigemptyset(&sigprof); sigaddset(&sigprof, SIGPROF); if (sigprocmask(SIG_UNBLOCK, &sigprof, NULL) == -1) { perror("sigprocmask"); abort(); } } ``` ### CPU Idle 的時機 * ready queue 為空 waiting list 不為空 (FCFS例外?) * 進sleep,拿不到resource ~~### Process Dispatch(function)~~ ### Queue