운영체제 실습 - introductionosdc.hanyang.ac.kr/sitedata/2017_under_os/2017_04_os_cfs.pdf ·...

35
Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 운영체제 실습 4 주차 - Completely Fair Scheduler (1) Real-Time Computing and Communications Lab. Hanyang University [email protected] [email protected] [email protected]

Upload: others

Post on 01-Feb-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 운영체제 실습 - Introductionosdc.hanyang.ac.kr/sitedata/2017_Under_OS/2017_04_OS_CFS.pdf · 2017-03-29 · Version CPU Scheduler ~Linux 2.4 • Priority-based scheduling and

Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr

Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr

운영체제실습 4주차- Completely Fair Scheduler (1) –

Real-Time Computing and Communications Lab.

Hanyang University

[email protected]

[email protected]

[email protected]

Page 2: 운영체제 실습 - Introductionosdc.hanyang.ac.kr/sitedata/2017_Under_OS/2017_04_OS_CFS.pdf · 2017-03-29 · Version CPU Scheduler ~Linux 2.4 • Priority-based scheduling and

2Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr 2Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr

Contents

Linux Scheduler

CFS (Completely Fair Scheduler)

CFS Parameters

CFS Source code (1)

Kernel Functions

Foreground & Background

“top” command

과제 preview

Page 3: 운영체제 실습 - Introductionosdc.hanyang.ac.kr/sitedata/2017_Under_OS/2017_04_OS_CFS.pdf · 2017-03-29 · Version CPU Scheduler ~Linux 2.4 • Priority-based scheduling and

3Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr 3Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr

Process State Transition

Scheduling :시스템상태나사용자편의에알맞게프로세스상태전이시점을정하는정책

Page 4: 운영체제 실습 - Introductionosdc.hanyang.ac.kr/sitedata/2017_Under_OS/2017_04_OS_CFS.pdf · 2017-03-29 · Version CPU Scheduler ~Linux 2.4 • Priority-based scheduling and

4Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr 4Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr

Linux Scheduler

Version CPU Scheduler

~Linux 2.4

• Priority-based scheduling and Round-robin scheduling

• Multilevel feedback queue

• SMP support was introduced in Linux 2.2

Linux 2.4 ~ 2.6 • O(n) scheduler

Linux 2.6 ~ 2.6.22 • O(1) scheduler introduced by Ingo Molnar

Linux 2.6.23 ~• CFS (Completely Fair Scheduler) by Ingo Molnar

• O(log N) complexity

Page 5: 운영체제 실습 - Introductionosdc.hanyang.ac.kr/sitedata/2017_Under_OS/2017_04_OS_CFS.pdf · 2017-03-29 · Version CPU Scheduler ~Linux 2.4 • Priority-based scheduling and

5Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr 5Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr

Linux Scheduler

Linux Scheduler는 Scheduler class라는이름으로모듈화되어있다.

각각의 Scheduler class는우선순위를가지고있다.

Task는아래의 Scheduler class중 1개에속해서, 해당알고리즘에맞게동작한다.

Base

Scheduler

RT

Scheduler

Base

Scheduler

CFS

scheduler

Idle-task

Scheduler

Base

Scheduler

Kernel/sched

Page 6: 운영체제 실습 - Introductionosdc.hanyang.ac.kr/sitedata/2017_Under_OS/2017_04_OS_CFS.pdf · 2017-03-29 · Version CPU Scheduler ~Linux 2.4 • Priority-based scheduling and

6Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr 6Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr

CFS (Completely Fair Scheduler)

CFS (Completely Fair Scheduler)

▪ Linux kernel version 2.6.23 이후로기본스케줄러로사용되고있는스케줄러

▪ 여러 task들에대해공정하게 CPU time을할당하기위해도입

▪ Basic concept

• 각각의 task들이가지는 weight에 비례하여 CPU time 할당

Page 7: 운영체제 실습 - Introductionosdc.hanyang.ac.kr/sitedata/2017_Under_OS/2017_04_OS_CFS.pdf · 2017-03-29 · Version CPU Scheduler ~Linux 2.4 • Priority-based scheduling and

7Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr 7Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr

CFS Parameters

CPU`s Run queue

▪ Linux에서각각의 CPU는자신의 run queue를가지고있다.

▪ Real-time task들은 array로저장하고, 일반 task들은 Red-black tree로저장한다.

▪ /kernel/sched/sched.h -> cfs_rq

Page 8: 운영체제 실습 - Introductionosdc.hanyang.ac.kr/sitedata/2017_Under_OS/2017_04_OS_CFS.pdf · 2017-03-29 · Version CPU Scheduler ~Linux 2.4 • Priority-based scheduling and

8Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr 8Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr

CFS Parameters

Schedulable Entity

▪ 각각의프로세스들은자신의 task_struct에 sched_entity를가진다.

▪ Task의 weight와같은 linux scheduling에필요한정보를가지고있다.

▪ /include/linux/sched.h

Page 9: 운영체제 실습 - Introductionosdc.hanyang.ac.kr/sitedata/2017_Under_OS/2017_04_OS_CFS.pdf · 2017-03-29 · Version CPU Scheduler ~Linux 2.4 • Priority-based scheduling and

9Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr 9Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr

CFS Parameters

Task Priority

▪ 각각의 task는 priority에따라서 CPU를할당

▪ Priority값이작을수록우선순위가높다는것을의미

▪ Non-real-time priority의경우 100~139의값을가짐

(Nice value : -20~19, default is 0)

▪ Real-time priority의경우 0~99의값을가짐.

Page 10: 운영체제 실습 - Introductionosdc.hanyang.ac.kr/sitedata/2017_Under_OS/2017_04_OS_CFS.pdf · 2017-03-29 · Version CPU Scheduler ~Linux 2.4 • Priority-based scheduling and

10Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr 10Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr

CFS Parameters

Nice value

▪ Nice value란모든 Unix system에서사용되는표준 Priority

▪ Linux의경우각각의 task에대한 time slice를 nice value값을이용해할당

▪ Kernel/sched/sched.h에각 nice value 값에따른 task weight 값이정의되어있음

▪ Default : 0(weight=1024)

Page 11: 운영체제 실습 - Introductionosdc.hanyang.ac.kr/sitedata/2017_Under_OS/2017_04_OS_CFS.pdf · 2017-03-29 · Version CPU Scheduler ~Linux 2.4 • Priority-based scheduling and

11Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr 11Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr

CFS Parameters

Timeslice

▪ Task가 preemption 되기전 CPU를통해수행된시간

▪ Timeslice는각 task의 weight에따라서 proportional하게할당됨

Page 12: 운영체제 실습 - Introductionosdc.hanyang.ac.kr/sitedata/2017_Under_OS/2017_04_OS_CFS.pdf · 2017-03-29 · Version CPU Scheduler ~Linux 2.4 • Priority-based scheduling and

12Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr 12Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr

CFS Parameters

Virtual Runtime (vruntime)

▪ “ideal multitasking”을수행하기위해제안됨

▪ Nice value = 0에해당하는 weight값과자신의 weight값의상대적인비율에따른가상의시간(=vruntime)을계산함.

▪ Scheduler는 vruntime이가장작은 task를선택함.

• Red-black tree의 leftmost node

Page 13: 운영체제 실습 - Introductionosdc.hanyang.ac.kr/sitedata/2017_Under_OS/2017_04_OS_CFS.pdf · 2017-03-29 · Version CPU Scheduler ~Linux 2.4 • Priority-based scheduling and

13Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr 13Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr

Quiz

1. 프로세서가 100ms 동안실행된다고가정하고같은 nice값을가지는 task가 2

개 (A, B) 존재한다면, 각각의 task가가지는 timeslice는어떻게되는가?

2. 프로세서가 100ms동안실행되고, nice 0과 nice 5를가지는 2개의 task가실행된다. 각각의 task가가지는 timeslice는어떻게되겠는가?

3. 프로세서가 100ms 동안실행되고, 같은 nice값을갖는 task가 2개있다. 스케줄러는 20ms 주기로 context switching을한다고가정하자. 60ms의시간이지났을때, 각각의 task가실제실행된시간은?

4. 3의상황에서만약 weight가 3:1인 task가 2개라면? 그리고이때 vritual

runtime의개념을 CFS는어떻게사용하는가?

Task의 nice value가작아질수록 virtual runtime은어떻게되겠는가? 그리고이때, 어떤효과가예상되는가?

Page 14: 운영체제 실습 - Introductionosdc.hanyang.ac.kr/sitedata/2017_Under_OS/2017_04_OS_CFS.pdf · 2017-03-29 · Version CPU Scheduler ~Linux 2.4 • Priority-based scheduling and

14Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr 14Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr

Overview of Scheduling Flow

Timer interrupt에의해 CFS의 scheduling tick 이동작

각각의 scheduling tick에대해▪ 1. 현재 running task에대해 runtime을 update

▪ 2. runtime 과 time slice를구한뒤

• (runtime) ≥ (time slice)를만족하면, TIF_NEED_RESCHED flag를 set

▪ 3. TIF_NEED_RESCHED를 check

• Set 상태이면, run queue에서가장작은 virtual runtime 값을갖는 task를 scheduling함

• Red-black tree에현재 running task를 Enqueue

• Red-black tree에서 left-most node를 Dequeue

Page 15: 운영체제 실습 - Introductionosdc.hanyang.ac.kr/sitedata/2017_Under_OS/2017_04_OS_CFS.pdf · 2017-03-29 · Version CPU Scheduler ~Linux 2.4 • Priority-based scheduling and

15Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr 15Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr

CFS Flow chart

scheduler_tick task_tick -> task_tick_fair entity_tick

update_curr calc_delta_fair

cfs_rq->nr_running > 1 = true?

vruntime > time slice

check_preempt_tick sched_slice

resched_task set_tsk_need_resched

true

truefalse

false

Page 16: 운영체제 실습 - Introductionosdc.hanyang.ac.kr/sitedata/2017_Under_OS/2017_04_OS_CFS.pdf · 2017-03-29 · Version CPU Scheduler ~Linux 2.4 • Priority-based scheduling and

16Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr 16Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr

Scheduler Tick Handler

Scheduler_tick

▪ Timer interrupt에의해서실행

▪ 현재 running task에대한정보를받아 task tick(=task_tick_fair)을실행

Page 17: 운영체제 실습 - Introductionosdc.hanyang.ac.kr/sitedata/2017_Under_OS/2017_04_OS_CFS.pdf · 2017-03-29 · Version CPU Scheduler ~Linux 2.4 • Priority-based scheduling and

17Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr 17Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr

Tick Handler of Scheduling Class

Task_tick_fair

▪ CFS task들에대해 scheduling tick을수행

▪ 현재 task의 sched_entity를받아 entity_tick호출

Page 18: 운영체제 실습 - Introductionosdc.hanyang.ac.kr/sitedata/2017_Under_OS/2017_04_OS_CFS.pdf · 2017-03-29 · Version CPU Scheduler ~Linux 2.4 • Priority-based scheduling and

18Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr 18Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr

Tick Handler of CFS

entity_tick

▪ CFS의 schedulable entity의정보를 update

▪ update_curr를호출하여 virtual runtime을 update

▪ check_preempt_tick을호출하여 TIF_NEED_RESCHED의조건을검사

Page 19: 운영체제 실습 - Introductionosdc.hanyang.ac.kr/sitedata/2017_Under_OS/2017_04_OS_CFS.pdf · 2017-03-29 · Version CPU Scheduler ~Linux 2.4 • Priority-based scheduling and

19Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr 19Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr

Update The Current Task Runtime

update_curr

▪ 프로세스의실제 runtime & vruntime값을갱신

Page 20: 운영체제 실습 - Introductionosdc.hanyang.ac.kr/sitedata/2017_Under_OS/2017_04_OS_CFS.pdf · 2017-03-29 · Version CPU Scheduler ~Linux 2.4 • Priority-based scheduling and

20Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr 20Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr

Virtual Runtime Calculation

calc_delta_fair

▪ 실제 time slice값에대하여 task의 weight 비율에 따른 vruntime을계산

▪ __calc_delta를호출하여 vruntime계산

Page 21: 운영체제 실습 - Introductionosdc.hanyang.ac.kr/sitedata/2017_Under_OS/2017_04_OS_CFS.pdf · 2017-03-29 · Version CPU Scheduler ~Linux 2.4 • Priority-based scheduling and

21Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr 21Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr

Check The Necessity of Preemption

check_preempt_tick

▪ CFS의 entity_tick에의해서호출됨

▪ Ideal runtime을구하기위해 time slice를구하는 sched_slice함수호출

▪ Runtime > time sclice이면, resched_task호출

Page 22: 운영체제 실습 - Introductionosdc.hanyang.ac.kr/sitedata/2017_Under_OS/2017_04_OS_CFS.pdf · 2017-03-29 · Version CPU Scheduler ~Linux 2.4 • Priority-based scheduling and

22Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr 22Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr

Time Slice Calculation

Sched_slice

▪ 해당 task에대해 time slice값을반환

▪ Struct load_weight *load는 cfs_rq전체의 weight를뜻함.

▪ se->load.weight은현재 task의 weight을뜻함

Page 23: 운영체제 실습 - Introductionosdc.hanyang.ac.kr/sitedata/2017_Under_OS/2017_04_OS_CFS.pdf · 2017-03-29 · Version CPU Scheduler ~Linux 2.4 • Priority-based scheduling and

23Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr 23Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr

Set TIF_NEED_RESCHED Flag

resched_curr

▪ 해당 task가 rescheduling되어야함을mark하는함수

▪ set_tsk_need_resched를호출하여 TIF_NEED_RESCHED를 set 시킴

Page 24: 운영체제 실습 - Introductionosdc.hanyang.ac.kr/sitedata/2017_Under_OS/2017_04_OS_CFS.pdf · 2017-03-29 · Version CPU Scheduler ~Linux 2.4 • Priority-based scheduling and

24Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr 24Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr

Scheduling

__schedule

preempt_disable

put_prev_task put_prev_task_fair put_prev_entity __enqueue_entity

pick_next_task pick_next_task_fair

pick_next_entity

set_next_entity __dequeue_entity

TIF_NEED_RESCHED = true?

false

true

Page 25: 운영체제 실습 - Introductionosdc.hanyang.ac.kr/sitedata/2017_Under_OS/2017_04_OS_CFS.pdf · 2017-03-29 · Version CPU Scheduler ~Linux 2.4 • Priority-based scheduling and

25Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr 25Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr

Calling Scheduler

TIF_NEED_RESCHED is set

▪ arch/x86/entry_64.S file에서 __schedule 호출

__schedule

▪ Kernel/sched/core.c

▪ 현재 task의정보를 prev에저장

Page 26: 운영체제 실습 - Introductionosdc.hanyang.ac.kr/sitedata/2017_Under_OS/2017_04_OS_CFS.pdf · 2017-03-29 · Version CPU Scheduler ~Linux 2.4 • Priority-based scheduling and

26Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr 26Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr

__schedule()

__schedule

▪ pick_next_task를호출하여 run queue에서가장 priority가높은 task를받음.

(Red-black tree leftmost node)

▪ pick_next_task내부에 put_prev_task가있고, 현재 task를 runqueue에넣는다

Page 27: 운영체제 실습 - Introductionosdc.hanyang.ac.kr/sitedata/2017_Under_OS/2017_04_OS_CFS.pdf · 2017-03-29 · Version CPU Scheduler ~Linux 2.4 • Priority-based scheduling and

27Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr 27Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr

__schedule()

Put_prev_task와 pick_next_task의경우 kernel/sched/fair.c에서각각put_prev_task_fair, pick_next_task_fair를가리킴.

Page 28: 운영체제 실습 - Introductionosdc.hanyang.ac.kr/sitedata/2017_Under_OS/2017_04_OS_CFS.pdf · 2017-03-29 · Version CPU Scheduler ~Linux 2.4 • Priority-based scheduling and

28Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr 28Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr

Putting Prev Task(CFS)

put_prev_task_fair

▪ CFS run queue에 prev task의 sched_entity를넣는 put_prev_entity호출

Page 29: 운영체제 실습 - Introductionosdc.hanyang.ac.kr/sitedata/2017_Under_OS/2017_04_OS_CFS.pdf · 2017-03-29 · Version CPU Scheduler ~Linux 2.4 • Priority-based scheduling and

29Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr 29Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr

Putting Prev Task (CFS)

put_prev_entity

▪ __enqueue_entity를호출하여 prev task를 CFS run queue에넣음

Page 30: 운영체제 실습 - Introductionosdc.hanyang.ac.kr/sitedata/2017_Under_OS/2017_04_OS_CFS.pdf · 2017-03-29 · Version CPU Scheduler ~Linux 2.4 • Priority-based scheduling and

30Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr 30Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr

Picking Next Task (CFS)

pick_next_task_fair

▪ pick_next_entity를호출하여 CFS run queue의 left-most node를받음

▪ set_next_entity를호출하여 CFS run queue에서해당 entity를 dequeue함

Page 31: 운영체제 실습 - Introductionosdc.hanyang.ac.kr/sitedata/2017_Under_OS/2017_04_OS_CFS.pdf · 2017-03-29 · Version CPU Scheduler ~Linux 2.4 • Priority-based scheduling and

31Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr 31Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr

Picking Next Task (CFS)

pick_next_entity

▪ __pick_first_entity를호출하여 CFS run queue의 left-most node를받음

Page 32: 운영체제 실습 - Introductionosdc.hanyang.ac.kr/sitedata/2017_Under_OS/2017_04_OS_CFS.pdf · 2017-03-29 · Version CPU Scheduler ~Linux 2.4 • Priority-based scheduling and

32Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr 32Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr

Picking Next Task (CFS)

set_next_entity

▪ __dequeue_entity를호출하여해당 sched_entity를 CFS run queue에서제거

Page 33: 운영체제 실습 - Introductionosdc.hanyang.ac.kr/sitedata/2017_Under_OS/2017_04_OS_CFS.pdf · 2017-03-29 · Version CPU Scheduler ~Linux 2.4 • Priority-based scheduling and

33Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr 33Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr

“top” command

Linux 에서시스템사용량을확인

Usage : $ top [options]

Page 34: 운영체제 실습 - Introductionosdc.hanyang.ac.kr/sitedata/2017_Under_OS/2017_04_OS_CFS.pdf · 2017-03-29 · Version CPU Scheduler ~Linux 2.4 • Priority-based scheduling and

34Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr 34Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr

“top” command

Table 필드정보▪ PID : 프로세스 ID (PID)

▪ USER : 프로세스를실행시킨사용자 ID

▪ PRI : 프로세스우선순위 (nice value + 20)

▪ NI : task의 Nice value

▪ VIRT: 가상메모리사용량

▪ RES : 현재 Page가상주하고있는크기 (Resident Size)

▪ S : 프로세스상태 (S : sleeping, R : running, W : swapped out process, Z : zombies)

▪ %CPU : 프로세스가사용하는 CPU 사용률

▪ %MEM : 프로세스가사용하는메모리사용률

▪ COMMAND : 실행된명령어

Page 35: 운영체제 실습 - Introductionosdc.hanyang.ac.kr/sitedata/2017_Under_OS/2017_04_OS_CFS.pdf · 2017-03-29 · Version CPU Scheduler ~Linux 2.4 • Priority-based scheduling and

35Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr 35Real-Time Computing and Communications Lab., Hanyang University

http://rtcc.hanyang.ac.kr

과제 (Kernel Build)

문의사항▪ 이름 : 임정택

▪ Tel : 010 - 4780 - 9294

▪ E-Mail : [email protected]

▪ 이름 : 최대호

▪ Tel : 010 – 9872 - 9353

▪ E-Mail : [email protected]

▪ 이름 : 박준형

▪ Tel : 010 – 2859 - 6858

▪ E-Mail : [email protected]

▪ 실습관련질문시제목을아래의양식에맞춰서메일을보내주세요

• ex> [운영체제] 학번_이름

지연제출시감점이있을수있음