init 이 policy 필드세팅이 SCHED_OTHER로 되어진걸로봐서....
init의 자손들도 모두 other를 갖게되는건지요?
그리고..SCHED_RR과 SCHED_FIFO는 쓰이지 않는게 맞는지요?
좋은 밤 되시기를 바라며...
리눅스 커널에선 쓰이지 않을 수도 있지만 리눅스가 커널만 돌리는 것이 아니기 때문에 쓰이지 않는다곤 할 수 없죠 ^^ 당장 제가 스케줄 폴리시를 바꾸는 toy 프로그램을 짜서 돌리면 쓰는 겁니다.
잘 아시겠지만, SCHED_OTHER가 일반적으로 사용하는 스케줄 policy이고 RR과 FIFO는 real-time 스케줄을 하기 위해 사용하는 것입니다.
리눅스는 real-time OS가 아닐 뿐더러 hard real-time 어플을 지원하도록 디자인되지도 않았기 때문에 real-time 스케줄을 사용하는 것은 거의 없습니다. RR과 FIFO 작업은 일반적으로 OTHER보다 우선순위가 높습니다. 그렇기 때문에 괜히 CPU 많이 사용하는 작업에 real-time policy를 걸어놨다간 거의 아무 작업도 못하게 되는 경우도 생기죠.
다만 다른 작업에 방해받고싶지 않아하는 특정한 프로그램들이 스케줄 폴리시를 RR이나 FIFO로 바꾸려고 하는 경우가 있습니다. 제가 본 바로는 cdrecord가 스케줄 폴리시를 바꾸더군요. cdrecord가 작업을 방해받다가 잘못되면 CD가 뻑나버리는 안타까운 사연을 접해버리기 때문인 듯 합니다.
참고로 sched_setscheduler 시스템 콜을 사용하면 스케줄 폴리시를 바꿀 수 있습니다.
Re: 커널에서 SCHED_RR 과 SCHED_FIFO는 안쓰이는건가요?
리눅스 커널에선 쓰이지 않을 수도 있지만 리눅스가 커널만 돌리는 것이 아니기 때문에 쓰이지 않는다곤 할 수 없죠 ^^ 당장 제가 스케줄 폴리시를 바꾸는 toy 프로그램을 짜서 돌리면 쓰는 겁니다.
잘 아시겠지만, SCHED_OTHER가 일반적으로 사용하는 스케줄 policy이고 RR과 FIFO는 real-time 스케줄을 하기 위해 사용하는 것입니다.
리눅스는 real-time OS가 아닐 뿐더러 hard real-time 어플을 지원하도록 디자인되지도 않았기 때문에 real-time 스케줄을 사용하는 것은 거의 없습니다. RR과 FIFO 작업은 일반적으로 OTHER보다 우선순위가 높습니다. 그렇기 때문에 괜히 CPU 많이 사용하는 작업에 real-time policy를 걸어놨다간 거의 아무 작업도 못하게 되는 경우도 생기죠.
다만 다른 작업에 방해받고싶지 않아하는 특정한 프로그램들이 스케줄 폴리시를 RR이나 FIFO로 바꾸려고 하는 경우가 있습니다. 제가 본 바로는 cdrecord가 스케줄 폴리시를 바꾸더군요. cdrecord가 작업을 방해받다가 잘못되면 CD가 뻑나버리는 안타까운 사연을 접해버리기 때문인 듯 합니다.
참고로 sched_setscheduler 시스템 콜을 사용하면 스케줄 폴리시를 바꿀 수 있습니다.
댓글 달기