본문으로 이동

개인적인 사정으로 큰숲백과 관리를 무기한 중단합니다. 데이터베이스 덤프 관련 공지도 조만간 올리겠습니다.

  1. 큰숲백과:청사진에서 위키 발전의 대략적인 방향성을 제시했습니다. 의견이 있으신 분은 큰숲백과토론:청사진에서 의견을 남겨주시면 좋겠습니다.
  2. 기능상의 오류로 지원하지 않고 있는 기능에 대해서는 큰숲백과토론:이슈 트래커에 요약했습니다. 참고하시기 바랍니다.
  3. 큰숲백과 단축도메인 bigforest.wiki 열렸습니다.

리눅스/리눅스 시스템 프로그래밍: 두 판 사이의 차이

1,845 바이트 추가됨 ,  2023년 7월 6일 (목)
63번째 줄: 63번째 줄:


=== 프로세스 스케줄링 정책과 우선순위 ===
=== 프로세스 스케줄링 정책과 우선순위 ===
리눅스의 프로세스 스케줄링 정책은 다음 상수들을 세팅함으로 이루어진다.
* SCHED_RR : 우선 실행 레벨이 있는 라운드 로빈(실행한 프로세스를 실행 큐 맨 뒤에 넣어서 큐 내의 모든 프로세스가 돌아가면서 균등한 시간 동안 실행된다) 정책을 쓴다.
* SCHED_FIFO : First in, First Out(실행한 프로세스를 실행 큐 맨 뒤에 넣어서 큐 내의 모든 프로세스가 돌아가면서 실행되나 프로세스마다 수동으로 실행을 포기해야 다음 프로세스가 실행될 수 있다) 정책을 쓴다.
* SCHED_OTHER 우선 실행 레벨이 없이 공평한 라운드 로빈 정책을 쓴다.
* SCHED_BATCH : 자주 wake(프로세스 실행 재개)된다면 덜 실행하게 된다.
* SCHED_IDLE : nice 값을 무시하다시피 하여 SCHED_OTHER를 실행한다.
* SCHED_NORMAL : Completely Fair Scheduler(CFS)를 사용한다.
* SCHED_DEADLINE : 실행 시간의 데드라인을 프로세스 별로 정하고 데드라인 시간이 짧은 것부터 실행한다.
리눅스의 프로세스 우선순위는 nice라는 가중치의 형태로 수동 조절이 가능한 경우가 있다.
* getpriority(which, id) : which로 선택한 프로세스 선택 기준(PRIO_PROCESS, PRIO_PGRP, PRIO_USER)에 따라 id 값에 해당하는 프로세스(들)의 nice를 정수 값으로 반환한다.
* setpriority(which, id, priority) : 선택한 프로세스 범위 기준에 priority 정수 값을 nice로 적용한다.
PREEMPT_RT 옵션을 주고 컴파일한 리눅스 커널은 커널의 기본적인 프로세스 선점(Preemption) 기능이 비활성화되어 프로세스든, 커널 단계든 수동으로 스케줄링 정책을 짜야 하며, 인터럽트나 Priority Inversion이 되는 뮤텍스에 의존하는 스케줄링을 할 수 없다.
=== 경량 프로세스(Lightweight Process) ===
=== 경량 프로세스(Lightweight Process) ===
=== 데몬과 그 외 프로세스 관련 기능===
=== 데몬과 그 외 프로세스 관련 기능===