Microsoft PowerPoint os5.ppt [호환 모드]

Size: px
Start display at page:

Download "Microsoft PowerPoint os5.ppt [호환 모드]"

Transcription

1 CPU스케줄링 (CPU Scheduling) 프로세스스케줄링» 장기 job scheduling» 단기 CPU scheduling» 중기 swapping 기본개념 (Basic Concepts) CPU-I/O 버스트주기 (burst cycle)» cycle : CPU 실행 (CPU burst) <--> I/O 대기 (I/O burst)» CPU burst 유형 I/O bound program : 많은짧은 CPU burst 가짐 CPU bound program : 적은아주긴 CPU burst 가짐 CPU 스케줄러» 단기스케줄러 (short-term scheduler) : ready queue 에서선택 FIFO(First-In First-Out) 큐우선순위큐트리 연결리스트 5.1

2 Alternating Sequence of CPU And I/O Bursts 5.2

3 Histogram of CPU-burst Times 5.3

4 CPU 스케줄링 (CPU Scheduling) 선점 / 비선점스케줄링 (Preemptive/Non-Preemptive Scheduling)» 선점 (preemptive) 스케줄링 특수하드웨어 (timer) 필요 공유데이터에대한프로세스동기화필요 Windows95~, MacxOS8(Power PC)~» 비선점 (non preemptive) 또는협조적 (cooperative) 스케줄링 MS-Windows, 특수하드웨어 (timer) 없음 종료또는 I/O까지계속 CPU점유 ~Windows 3.x, ~MacOS8 이전버전 Kernel 의선점처리» case 1( 초기 Unix) : system call 완료또는 I/O 완료할때까지기다렸다가문맥교환 실시간컴퓨팅이나멀티프로세싱에나쁨» case 2( 대부분의 Unix) : interrupt 중다른 interrupt enable( 우선순위에따라 ) 선점처리 critical section( 공유데이터수정하는코드부분 ) 에있는동안 interrupt disable 해야함 CPU scheduling decision time 1. running -> waiting : non preemptive 2. running -> ready (interrupt) : preemptive 3. waiting -> ready (I/O 완료 ) : preemptive 4. halt : non preemptive 5.4

5 CPU 스케줄링 (CPU Scheduling) 분배기 (Dispatcher)» 문맥교환» 사용자모드로전환» 프로그램의적절한위치로점프하여프로그램재시작 (dispatch latency 가짧아야함 ) 스케줄링기준 (Scheduling Criteria) 이용률 (CPU utilization) : 40% ~ 90% 처리율 (throughput) : 처리된프로세스개수 / 시간단위 반환시간 (turnaround time) : system in -> system out 걸린시간 대기시간 (waiting time) : ready queue 에서기다린시간 응답시간 (response time) : 대화형시스템에서첫응답까지의시간 5.5

6 스케줄링알고리즘 (Scheduling Algorithm) 척도 : 평균대기시간 (average waiting time) 단일프로세서알고리즘 1. 선입선처리 (First-Come, First-Served) 스케줄링 2. 최소작업우선 (Shortest-Job-First) 스케줄링 3. 우선순위 (Priority) 스케줄링 4. 순환할당 (Round-Robin) 스케줄링 5. 다단계큐 (Multilevel Queue) 스케줄링 6. 다단계귀환큐 (Multilevel Feedback Queue) 스케줄링 스레드스케줄링 (Thread scheduling) 다중프로세서스케줄링 (Multiple-Processor Scheduling) 실례» Solaris 2 Scheduling» Windows XP Scheduling» Linux Scheduling 실시간스케줄링» EDF (Earliest Deadline First)» Rate Monotonic» Rate Monotonic vs. EDF 5.6

7 스케줄링알고리즘 (Scheduling Algorithm) 1. 선입선처리 (First-Come, First-Served) 스케줄링» 들어온순서대로» FIFO queue : First-in<- tail, First-out<- head» 호위효과 (convoy effect) : 큰 job 하나가끝나기를모두기다림 (CPU-bound process가끝나기를 I/O bounded process들이기다림 )» non-preemptive 임 (time-sharing 에서는곤란 ) 5.7

8 First-Come, First-Served (FCFS) Scheduling Example: Process Burst Time P 1 24 P 2 3 P 3 3 Suppose that the processes arrive in the order: P 1, P 2, P 3 The Gantt Chart for the schedule is: P 1 P 2 P Waiting time for P 1 = 0; P 2 = 24; P 3 = 27 Average waiting time: ( )/3 =

9 FCFS Scheduling g( (Cont.) Suppose that the processes arrive in the order P 2, P 3, P 1. The Gantt chart for the schedule is: P 2 P 3 P Waiting time for P1 P = 6; P 2 = 0 ; P 3 = 3 Average waiting time: ( )/3 = 3 Much better than previous case. Convoy effect short process behind long process 5.9

10 스케줄링알고리즘 (Scheduling Algorithm) 2. 최소작업우선 (Shortest-Job-First) 스케줄링» Shortest Next CPU Burst Scheduling» 다음 CPU burst 시간이가장짧은프로세스에게» 두가지스케줄링기법 non-preemptive SJF preemptive SJF = Shortest Remaining Time First Scheduling» 최적 (Optimal)» 단점 : 기아상태 (starvation)» long-term scheduling 에좋음 ( 프로세스시간의사용자예측치이용 )» short-term scheduling 에는나쁨 : 차기 CPU burst 시간파악이어려워서» 차기 CPU 버스트시간예측모델» HRN(Highest-Response-ratio Response Next) 스케줄링 1971 Brinch Hansen SJF의단점보완 dynamic priority = (time waiting + service time) / (service time) 오래기다린프로세스는 time waiting이증가하므로 priority 커지고 short process일수록 priority 커짐 non-preemptive 였음 5.10

11 Example of Non-Preemptive SJF Process Arrival Time Burst Time P P P P SJF (non-preemptive) P 1 P 3 P 2 P Average waiting time = ( )/4 =

12 Example of Preemptive SJF Process Arrival Time Burst Time P P P P SJF (preemptive) P 1 P 2 P 3 P 2 P 4 P Average waiting time = ( )/4 =

13 Determining Length of Next CPU Burst CPU 버스트시간정확히알수는없지만예측가능 이전 CPU 버스트시간들의지수적평균 (exponential averaging) 으로예측 th 1. t n actual lenght of n CPU burst 2. predicted value for the next CPU burst (Greek T : tau 4. n 1 3., 0 1 Define : 1. n t 1 n n 미( 터) 영( 타우 ) 5.13

14 Examples of Exponential Averaging g =0» 1 =» n+1 = n» 최근의실제 CPU 버스트시간은고려않음 =1» n+1 = t n» 마지막실제 CPU 버스트시간만고려 식을확장하면 : n+1 = t n + (1 - ) n = t n + (1 - ) ( t n-1 + (1 - ) n-1 ) = t + (1 - ) t n-1 + (1 - ) 2 n n-1 = t n + (1 - ) t n-1 + (1 - ) 2 ( t n-2 + (1 - ) n-2 ) = t n + (1 - ) t n-1 + (1 - ) 2 t n-2 + (1 - ) 3 n-3 = t n + (1 - ) t n-1 + (1 - ) 2 t n-2 + (1 - ) 3 t n-3 n ( ) n 1 ( ) n 2 ( ) n 3 +(1 - ) j t n-j + +(1 - ) n+1 0 와 (1 - ) 이 1 보다작으므로, 후속되는각항목은이전항목보다가중값 (weight) 이더작아짐 5.14

15 Prediction of the Length of the Next CPU Burst 5.15

16 스케줄링알고리즘 (Scheduling Algorithm) 3. 우선순위 (Priority) 스케줄링» 높은우선순위의프로세스에게» ready queue = priority queue -> heap구조가좋음» FCFS : equal-priority» SJF : p =1/T (T = 차기 CPU 버스트시간예측값 )» p184 예해보세요» priority요인 (OS내부) 시간제한 (time limits) 메모리요구량 오픈화일수 (average I/O burst)/(average CPU burst) 비율등» priority요인 (OS외부) 프로세스중요도 컴퓨터사용료형태와금액 작업부서 정치적요인등» preemptive 일수도 non-preemptive 일수도» 문제점 = 무한정지 (blocking) 또는기아상태 (starvation) CPU를영원히기다림 : 결국실행되거나 system crash 때사라지거나» ( 예 ) IBM 7094 at MIT 1973, 1967 job 해결 -> aging : wait 시간길어지면 priority 높여줌 5.16

17 스케줄링알고리즘 (Scheduling Algorithm) 4. 순환할당 (Round-Robin) 스케줄링» FCFS + preemption (time slice 마다 )» ready queue = 원형 FIFO queue» preemptive p 임» time sharing에서time quantum의크기가중요 1 time quantum > context switching time 80% CPU burst < 1 time quantum 5.17

18 Example of RR with Time Quantum = 4 Process Burst Time P 1 24 P P 3 3 The Gantt chart is: P 1 P 2 P 3 P 1 P 1 P 1 P 1 P Average waiting time = (? +? +?)/3 =? Typically, higher average turnaround than SJF, but better response 5.18

19 Example: RR with Time Quantum = 20 Process Burst Time P 1 53 P 2 17 P 3 68 P 4 24 The Gantt chart is: P 1 P 2 P 3 P 4 P 1 P 3 P 4 P 1 P 3 P Average waiting time = (? +? +?)/? =? Typically, higher average turnaround than SJF, but better response. 5.19

20 How a Smaller Time Quantum Increases Context Switches 5.20

21 Turnaround Time Varies With The Time Quantum 5.21

22 스케줄링알고리즘 (Scheduling Algorithm) 5. 다단계큐 (Multilevel Queue) 스케줄링» 각프로세스는우선순위가다른여러개의큐중하나에영원히할당 : 그림 5.6» 각 queue는자신의고유한 scheduling algorithm 가짐 foreground (interactive) queue : RR알고리즘 background (batch) queue : FCFS알고리즘» queue 들사이의 scheduling : 고정우선순위선점스케줄링 (fixed priority preemptive scheduling)» 큐사이의 CPU time slice 할당예 80% for RR 20% for FCFS» 스케줄링부담적으나융통성이적음 5.22

23 다단계큐스케줄링 (Multilevel Queue Scheduling) 5.23

24 스케줄링알고리즘 (Scheduling Algorithm) 6. 다단계피드백큐 (Multilevel Feedback Queue) 스케줄링» 프로세스가여러큐사이를이동 : 그림 5.7» 짧은프로세스 (I/O bound, interactive processes) 가우선» 긴프로세스는자꾸낮은큐로이동» aging( 오래기다리면우선순위높여기아상태예방 )» preemptive 임 ( 큐사이 )» the most sophisticated, the most complex» 가장일반적 -> 해당시스템에맞게설정해야 (configure) 큐의개수 각큐의스케줄링알고리즘 높은우선순위로올려주는시기 낮은우선순위로내려주는시기 어느큐에들어갈것인가 5.24

25 다단계피드백큐 (Multilevel Feedback Queues) Three queues:» Q 0 time quantum 8 milliseconds» Q 1 time quantum 16 milliseconds» Q 2 FCFS Scheduling» FCFS queue Q 0 에새로들어온작업이 8 milliseconds 동안 CPU를받고도작업이끝나지않으면선점되어 queue Q 1 으로이동» Q 1 의작업은 FCFS 로 16 additional milliseconds 을받고그래도끝나지않으면선점되어 queue Q 2 로이동 5.25

26 스레드스케줄링 (Thread Scheduling) 2 스레드지원수준» User level: process local scheduling threads library가사용가능한 LWP에 thread를할당 ( 실제로 CPU 차지했다는뜻아님 )» Kernel level: system global scheduling kernel이다음실행할 kernel thread를결정 (CPU 차지 ) pthread scheduling» 프로세스-경쟁-범위 (process-contention scope; PCS): pthread library가사용가능한 LWP에 user-level thread 할당, CPU 차지위한투쟁이한프로세스내에서일어남 PTHREAD_SCOPE_PROCESS _ many-to-many mapping» 시스템-경쟁-범위 (system-contention scope; SCS): kernel이 CPU 차지할 kernel thread 결정, CPU 차지위한투쟁이전체시스템에서일어남 (Linux, Mac OS는시스템-경쟁- 범위만지원 ) PTHREAD_SCOPE_SYSTEM one-to-one mapping pthread IPC» pthread_attr_setscope(pthread_attr-t *attr, int scope)» pthread_attr_getscope(pthread_attr-t *attr, int *scope) 스레드매핑모델별적용» many-to-many 또는 many-to-one: PCS & SCS» one-to-one: SCS만사용 (Linux, Windows XP, Solaris 9) 5.26

27 Pthread 스케줄링 POSIX.1b scheduling: 실시간스케줄링을위한확장» (Unix) $ man sched.h dh» (Linux) $ man sched_setscheduler» RT (real-time) scheduling SCHED_FIFO: a first-in, first-out policy» 스레드는 FIFO 큐를이용하는 FCFS 정책으로스케줄» 우선순위높은작업또는신호에의해선점 (pre-emption) 되지않는한종료까지수행» 같은우선순위스레드들의 time-slicing 없음 SCHE_RR: a round-robin policy» 같은우선순위스레드들의 time-slicing 있는것제외하고 SCHED_FIFO와유사» Normal (non-real-time) scheduling SCHED_OTHER: the standard round-robin robin time-sharing policy SCHED_BATCH: for batch style execution of processes SCHE_IDLE: for runnung very low priority background jobs 5.27

28 Pthread Scheduling API #include <pthread.h> #include <stdio.h> #define NUM_THREADS 5 void *runner(void *param); int main(int argc, char* argv[]) { int i, scope; pthread _ t tid[num _ THREADS]; pthread_attr_t attr; /* get the default attributes */ pthread_attr_init(&attr); /* first inquire on the current scope */ if(pthread_attr_getscope(&attr, attr &scope)!= 0) fprintf(stderr, "Unable to get scheduling scope\n"); else { if(scope == PTHREAD_SCOPE_PROCESS) PROCESS) printf("pthread_scope_process\n"); else if(scope == PTHREAD_SCOPE_SYSTEM) printf("pthread_scope_system\n"); else fprintf(stderr, "Illegal scope value.\n"); } /* set the scheduling algorithm to PCS or SCS */ pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM if(scope == PTHREAD_SCOPE_PROCESS) printf("pthread_scope_process\n"); else if(scope == PTHREAD_SCOPE_SYSTEM) printf("pthread_scope_system\n"); else fprintf(stderr, "Illegal scope value.\n"); /* create the threads */ for(i = 0; i < NUM_THREADS; i++) pthread_create(&tid[i], &attr, runner, NULL); /* now join on each thread */ for(i = 0; i < NUM_THREADS; i++) pthread_join(tid[i], NULL); } /* Each thread will begin control in this function */ void *runner(void *param) { /* do some work... */ printf("i am the thread %d\n", *(int*)param); pthread_exit(0); } 5.28

29 Pthread Scheduling API ( 그림 19.11) #include <pthread.h> #include <stdio.h> #define NUM_THREADS 5 /* the thread runs in this function */ void *runner(void *param); main(int argc, char *argv[]) { int i, policy; pthread_t tid[num_threads]; /* the thread identifier */ pthread_attr_t attr; /* set of attributes for the thread */ /* get the default attributes */ pthread_attr_init(&attr); /* get the current scheduling policy */ if (pthread_attr_getschedpolicy(&attr,&policy)!= 0) fprintf(stderr, "Unable to get policy.\n \n"); else { if (policy == SCHED_OTHER) printf("sched_other\n"); else if (policy == SCHED_RR) printf("sched _O OTHER\n"); else if (policy == SCHED_FIFO) printf("sched_fifo\n"); } /* set the scheduling policy - FIFO, RR, or OTHER */ if (pthread_attr_setschedpolicy(&attr, SCHED_FIFO)!= 0) printf("unable to set scheduling policy to SCHED_OTHER \n"); if (pthread_attr_getschedpolicy(&attr,&policy) tt t h d (& tt & )!= 0) fprintf(stderr, "Unable to get policy.\n"); else { if (policy == SCHED_OTHER) printf("sched_other\n"); else if (policy == SCHED_RR) printf("sched_other\n"); else if (policy == SCHED_FIFO) printf("sched_fifo\n"); } /* create the threads */ for (i = 0; i < NUM_THREADS; i++) pthread_create(&tid[i],&attr,runner,null); /** * Now join on each thread */ for (i = 0; i < NUM_THREADS; i++) pthread_join(tid[i], NULL); } /** * The thread will begin control in this function. */ void *runner(void *param) { /* do some work... */ } pthread _ exit(0); 5.29

30 다중프로세서스케줄링 (Multiple-Processor Scheduling) 동종다중프로세서 (homogeneous multiprocessor)» 프로세서는큐에있는어떤프로세스 (any processes) 든실행 : 부하공유 (load sharing) 별도준비큐 (separate ready queue): unfair -> SMP 경우 load balancing 필요할까? 공동준비큐 (common ready queue): fair -> SMP 경우 load balancing 필요할까?» AMP(Asymmetric Multiprocessing): 비대칭적스케줄링 (asymmetric scheduling) 한프로세서 (master) 가다른프로세서 (slaves) 스케줄링» master server : all system activity, it client processors: user code only master만 kernel system data structure에접근가능» 공유자료구조접근동기화필요없어처리가간단» SMP(Symmetric Multiprocessing): 대칭적스케줄링 (symmetric scheduling) 각프로세서가스스로스케줄링 (self-scheduling) scheduling) 공유자료구조접근에대한세심한처리필요 대부분의현대 OS가지원 : Windows XP, Windows 2000, Solaris, Linux, Max OS X 처리기친근성 (processor affinity): 한프로세서에서작업하면 cash hit-ratio 높아져효율적» 약한친화성 (soft affinity): 친근노력하나프로세스이주 (process migration) 발생가능» 강한친화성 (hard affinity): 절대친근보장 ( 예, Linux에서시스템호출로요청 ) 부하균형 (load balancing): 별도준비큐경우일부담의균등분배» push migration: 과부하프로세서가자신의프로세스를노는프로세서로이주시킴» pull migration: 노는프로세서가바쁜프로세서에서대기중인프로세스를끌어옴 Linux scheduler는 push & pull 모두지원 이종다중프로세서 (heterogeneous multiprocessor) = 분산시스템» 컴파일된프로세스들의기계어가실행하고자하는프로세서의기계어와동일한경우만실행가능 5.30

31 전형적인 SMT 구조 5.31

32 NUMA (Non-Uniform Memory Access and CPU Scheduling 같은보드에있는 CPU 의메모리접근시간이더적은경우강한친화성 (affinity) 5.32

33 멀티코어프로세서 (Multicore Processors) 최근추세는하나의칩에다수의프로세서를위치시킴 빠르고파워소모적음 각코어가독자적으로다중스레드처리하는추세 멀티스레디드프로세서코어 (multithreaded processor cores)» 메모리의데이터가사용가능할때까지상당한메모리지연 (memory stall) 시간이있음을발견하나의코어에 2개이상의하드웨어스레드를할당하여메모리지연시간을최대한활용» Intel Itanium: dual-threaded dual-core system = 4 logical processors, urgency(0~7) hardware thread scheduling» UltraSPARC T1 CPU: 8 cores * 4 hardware threads per core = 32 logical processors, simple RR hardware thread scheduling 5.33

34 A Dual-Core Design one chip 5.34

35 Solaris 2 Scheduling Solaris 2 Scheduling» 우선순위기반스레드스케줄링 (priority-based process scheduling» 6 classes ( 그림 5.10 참조 ) (TS) 시분할 (time sharing)» default class, multi-level feedback queue scheduling» 우선순위가높을수록, time slice(20ms) 작고, 우선순위가낮을수록 time slice(200ms) 큼» CPU-bound processes 우선순위낮아짐» sleep에서복귀한스레드는높은우선순위 (IA) 대화형 (interactive)» multi-level feedback queue scheduling» windowing application에높은우선순위 (RT) 실시간 (real time): 최상위우선순위 (SYS) 시스템 (system): 우선순위결정된후불변 (FSS) 고정우선순위 (fixed priority): 시분할스레드와같은우선순위이나고정 (FP) 공평공유 (fair share): CPU 공유량을기준으로스케줄» Scheduler가 class-specific priorities를 global priorities로변환» 우선순위같을때는 round-robinrobin» 수행중인 thread가멈추는경우 blocks time slice 완료 더높은우선순위의 thread 가선점 (preempt) 5.35

36 Solaris 2 Scheduling 5.36

37 대화형과시분할스레드를위한 Solaris 디스패치테이블 우선순위낮음 우선순위높음 Solaris & Windows XP: 높은우선순위프로세스에짧은 time quantum 할당 5.37

38 Windows XP Priorities priority class 불변가변가변가변가변가변 relative priority base priority=normal 32-level priority scheme» 0: memory management» 1~15: variable class» 16~31: real-time class 각우선순위마다하나의큐가짐 (a queue for each scheduling priority) idle thread: ready thread 없을때 dispatcher 가실행 보통 NORMAL_PRIORITY_CLASS, base priority=normal 1 time quantum 받은후우선순위낮아짐 대화형스레드 (interactive threads ) 에좋은응답시간 (response times) 제공» priority boost( 인상 ): keybord I/O boost > disk I/O boost» 스크린에서활성화된전위프로세스 (foreground process) 에게활성화되지않은후위프로세스 (background process) 보다 3배많은 time quantum 부여 5.38

39 Linux Scheduling g( (Linux kernel 2.5) Linux kernel version 2.5 이후» SMP 지원향상 : processor affinity, load balancing» 공평몫스케줄링 (fair-share scheduling) 지원» interactive task 지원 Linux scheduler: preemptive, priority-based algorithm 2 priority it ranges: 낮은값이높은우선순위» real-time tasks: 0~99» other tasks (nice): 100~140 긴 sleep time (interactive): nice value -5 짧은 sleep time (CPU-bound): nice value +5 높은우선순위프로세스에긴 time-quantum 할당 (Solaris, Windows XP 등대부분 OS와다름 ) 각프로세서는자신의 runqueue (active array, expired array) 유지» active: time quantum 남은프로세스» expired: time quantum 소진한프로세스 한번 time quantum 받은프로세스는 expired ed queue 로이동 active array의모든프로세스들이 time quantum 소진하면, 두 array 교환 5.39

40 Linux Scheduling g( (Linux kernel 2.5) 2개알고리즘 : time-sharing and real-time» 시분할 (Time-sharing) 우선순위신뢰값 (prioritized credit) 기반 : 신뢰값이큰프로세스를다음작업으로선택 신뢰값은매타이머인터럽트마다감소 신뢰값이 0이되면다른프로세스선택 신뢰값이 0 이된후우선순위와이력에따라서신뢰값재배정» 실시간 (Real-time) soft real-time 고정우선순위 (static priority) Posix.1b 호환 (compliant) two classes» FCFS 와 RR» 높은우선순위프로세스가항상먼저실행됨 POSIX scheduling» (Linux) $ man sched_setscheduler» (Unix) $ man sched.h» Normal (non-real-time) scheduling SCHED_OTHER: the standard d round-robin time-sharing i policy SCHED_BATCH: for batch style execution of processes SCHE_IDLE: for runiung very low priority background jobs» RT (real-time) scheduling SCHED_FIFO: a first-in, in first-out policy SCHE_RR: a round-robin policy 5.40

41 우선순위와시간조각 (Time-slice) 길이와의관계 5.41

42 List of Tasks Indexed According to Priorities 5.42

43 초기 Unix 의프로세스스케줄링예 CPU=decay(CPU)=CPU/2 우선순위 = ( 최근의 CPU 사용량 )/2 + ( 기본수준사용자우선순위 60) 0» Unix 시스템의최고우선순위는 0 ( 우선순위값이작을수록우선순위높음 )» 60 clock interrupts per second 시간 프로세스A 프로세스B 프로세스C 우선순위 CPU계수우선순위 CPU계수우선순위 CPU계수

44 알고리즘평가 (Algorithm Evaluation) 결정성모형화 (Deterministic Modeling)» 작업부하 (workload) 에따른성능비교 : 5.7.1절예제 (p ) 예제꼭보세요 반환시간 대기시간등» CPU 버스트시간등많은정확한정보요구 큐잉모형 (Queueing Models)» CPU-I/O 버스트뿐아니라프로세스도착시간의분포도평가에고려해야» 도착율과서비스율알면이용율, 평균큐길이, 평균대기시간알수있음» Little의공식 : n = xw ( 평균큐길이 ) = ( 도착율 ) x ( 평균대기시간 )» 모든경우에적용가능하나근사치일뿐 모의실험 (Simulations)» 소프트웨어자료구조로 clock variable, system state variables등표현하고통계» 사건분포는수학적 ( 균일, 지수, 포아송 ), 또는경험적으로정의» 사건생성순서정보제공위해trace tapes 이용» 정확하나비용이많이듬 구현 (Implementation)» 가장정확하나비용많고사용자적응이문제» 가장융통성있는스케줄링알고리즘 (flexible scheduling algorithm) tunable scheduling 시스템관리자가응용영역에따라스케줄러변수들을변경할수있음 몇몇 Unix 버전에서세밀한 tuning 가능 Yield() 나 setpriority() API 이용하여응용의동작예측가능하게함 5.44

45 Evaluation of CPU Schedulers by Simulation 5.45

46 In

47 In

48 In

49 실시간스케줄링 (Real-Time Scheduling) hard real-time system» 보조기억장치나가상기억장치사용시스템에서는불가능» 특수 H/W 상에서수행되는특수 S/W 로구성됨 soft real-time system» 중요프로세스가우선 (general-purpose computer system에서도가능 )» multimedia, high-speed interactive graphics 등 (soft real-time computing 이필요 ) soft real-time OS 기능의요구사항 1. 우선순위스케줄링을해야함 (must have priority scheduling) 실시간프로세스는최상위우선순위를유지해야함 2. 디스패치의지연시간이최소여야함 (the dispatch latency must be small) 대부분의 OS: context switching 하려면실행중인 system call이완료되거나 I/O를위해 block 되기를기다려야함 -> 해결 1 system call을 preemptible하게» 긴 system call안에 preemption points( 더높은우선순위의프로세스가있나 check, 있으면 interrupt) 2 kernel 전체를 preemptible 하게» Kernel data보호를위한 synchronization 필요» ( 예 ) Solaris 2: 우선순위역전 (priority inversion) 즉 kernel data 수정중일때는 control을넘겨주지않음 (cf.) Mach: threads are nonpreemptible, threads are synchronous 5.49

50 디스패치지연 (Dispatch Latency) 5.50

51 실시간스케줄링 (Real-Time Scheduling) 우선순위역전 (priority inversion)» kernel data 수정중인우선순위가낮은프로세스가선점하려는우선순위프로세스에우선하여수행됨 우선순위상속프로토콜 (priority inheritance protocol)» kernel data 수정중인낮은우선순위의프로세스가선점하려는프로세스의높은우선순위를상속받음, 끝나면원래의값으로 갈등단계 (conflict phase) 의내용 : 그림 19.5 (19 장 ) 1. 커널에서실행중인프로세스를선점 2. 자원회수 ( 우선순위낮은프로세스는우선순위높은프로세스가요구하는자원을놓아줌 ) ( 예 ) Solaris 2 dispatch latency nonpreemptible p = 100 ms dispatch latency preemptible = 2 ms 5.51

52 레이트모노토닉 (Rate Monotonic) vs. EDF 5.52

53 ( 참고 ) Java Thread Scheduling JVM은스케줄링할때» Preemptive, Priority-Based Scheduling Algorithm 이용» 우선순위같으면 FIFO Queue 이용 (RR algorithm) Time slicing» time-sliced: a thread runs until time quantum exit the Runnable state preempted» not time-sliced: a thread runs until exit the Runnable state preempted yield() method로공평한수행 (time slicing 효과 )» cooperative multitasking 5.53

54 ( 참고 ) Time-Slicing JVM 스레드가 Time-Slicing을지원하는지하지않는지에대해명시하지않음 ( 시스템마다다름 )» time-slicing 지원않는시스템에서는 the yield() Method로 time-sharing while (true) { // perform CPU-intensive task... Thread.yield(); } This Yields Control to Another Thread of Equal Priority. 5.54

55 ( 참고 ) Java Thread Scheduling Thread priority» 최상위우선순위 thread 가 Runnable thread 로선택됨» Thread 생성시 defalut priority( 부모와같음 ) -> setpriority() 로수정 Thread.MIN_PRIORITY : 1 Thread.MAX_PRIORITY : 10 Thread.NORM_PRIORITY: 5 (default priority) setpriority(thread.norm_priority + 2); Java-Based Round-Robin Scheduler: thread with priority 6» scheduler s queue에 addthread(): priority 2» 실행위해선택되면 : priority 4» 스케줄러는 1 time quantum 동안잠들고 CPU는 priority 4인 thread로» 1 time quantum 후잠에서깨어난스케줄러가 priority it 4 인 thread 를선점 (preempt)» CircularList class에 queue가비었는지알아내는 isempty() 추가하고큐가비었을때는잠들었다가다시 queue 조사하게하여 busy-wait 방지 JVM이다음실행할 thread를스케줄하는시점 :» 현재수행중이던 thread가 Runnable State를빠져나갈때» 높은우선순위의 thread가 Runnable State로들어왔을때 * Note the JVM Does Not Specify Whether Threads are Time-Sliced or Not. 5.55

56 ( 참고 ) Round-Robin Scheduler public class Scheduler extends Thread { public Scheduler() { timeslice = DEFAULT_TIME_SLICE; queue = new CircilarList(); } public Scheduler(int quantum) { timeslice = quantum; queue = new CircilarList(); } public void addthread(thread t) { t.setpriority(2); queue.additem(t); } private void scheculersleep() { try { thread.sleep(timeslice); } catch (InterruotedException e) { }; } public void run() { Thread current; this.setpriority(6); while (true) { //get the next thread current = (Thread)queue.getNext(); if ((current!= null) && (current.isalive())) { current.setpriority(4); schedulersleep(); current.setpriority(2); } } } private CircularList queue; private int timeslice; private static final int DEFAULT_TIME_SLICE = 1000; } 5.56

57 ( 참고 ) TestThread class TestThread extends Thread { private String name; } public TestThread(String id) { name = id; this.setpriority(thread.norm_priority); } public void run() { /* * The thread does something **/ while (true) { for (int i = 0; i < ; i++) ; System.out.println("I am thread " + name); } } 5.57

58 ( 참고 ) TestScheduler public class TestScheduler { } public static void main(string args[]) { Thread.currentThread().setPriority(Thread.MAX_PRIORITY); Scheduler CPUScheduler = new Scheduler(); CPUScheduler.start(); TestThread t1 = new TestThread("Thread 1"); t1.start(); CPUScheduler.addThread(t1); TestThread t2 = new TestThread("Thread 2"); t2.start(); CPUScheduler.addThread(t2); TestThread t3 = new TestThread("Thread 3"); t3.start(); CPUScheduler.addThread(t3); } 5.58

Alternating Sequence of CPU And I/O Bursts 6.2

Alternating Sequence of CPU And I/O Bursts 6.2 CPU 스케줄링 (CPU Scheduling) ~ 프로세스스케줄링» 장기 job scheduling» 단기 CPU scheduling» 중기 swapping 기본개념 (Basic Concepts) CPU-I/O 버스트주기 (burst cycle)» cycle : CPU 실행 (CPU burst) I/O 대기 (I/O burst)» CPU burst

More information

Module 6: CPU Scheduling

Module 6:  CPU Scheduling Chapter 5: CPU Scheduling Operating System Concepts 8 th Edition, Hanbat National Univ. Computer Eng. Dept. Y.J.Kim 2009 Chapter 5: Process Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms

More information

Microsoft PowerPoint - o5.pptx

Microsoft PowerPoint - o5.pptx 목표 5 장. CPU 스케줄링 multiprogramming 운영체제의기반인 CPU 스케줄링소개 다양한 CPU 스케줄링알고리즘 CPU 스케줄링알고리즘선택을위한평가기준 스케줄링알고리즘사례 1 2 5.1 기본개념 CPU-burst 시간의분포도 multiprogramming 의목적 CPU 이용률최대화 exponential ( e - x ) or hyperexponential

More information

Microsoft PowerPoint - o5.pptx

Microsoft PowerPoint - o5.pptx 5 장. CPU 스케줄링 1 목표 multiprogramming 운영체제의기반인 CPU 스케줄링소개 다양한 CPU 스케줄링알고리즘 CPU 스케줄링알고리즘선택을위한평가기준 스케줄링알고리즘사례 2 5.1 기본개념 multiprogramming 의목적 CPU 이용률최대화 CPU-I/O Burst Cycle 프로세스실행은 CPU 실행과 I/O 대기의사이클로구성됨 CPU

More information

6주차.key

6주차.key 6, Process concept A program in execution Program code PCB (process control block) Program counter, registers, etc. Stack Heap Data section => global variable Process in memory Process state New Running

More information

Figure 5.01

Figure 5.01 Chapter 4: Threads Yoon-Joong Kim Hanbat National University, Computer Engineering Department Chapter 4: Multithreaded Programming Overview Multithreading Models Thread Libraries Threading Issues Operating

More information

untitled

untitled Embedded System Lab. II Embedded System Lab. II 2 RTOS Hard Real-Time vs Soft Real-Time RTOS Real-Time, Real-Time RTOS General purpose system OS H/W RTOS H/W task Hard Real-Time Real-Time System, Hard

More information

<C1A4BAB8C3B3B8AE5FB1E2BBE75FC7CAB1E25F E687770>

<C1A4BAB8C3B3B8AE5FB1E2BBE75FC7CAB1E25F E687770> 2.4 스케줄링 (1) 스케줄링의개요스케줄링은프로세스가생성되어실행될때필요한시스템의여러자원을해당프로세스에할당하는작업을의미 1) 작업스케줄링 (Job Scheduling) 1 어떤프로세스가시스템의자원을차지할수있는지를결정하여준비상태큐로보내는작업을의미 2 작업스케줄러 (Job Scheduler) 에의해수행 2) 프로세서스케줄링 (Processor Scheduling)

More information

<4D F736F F F696E74202D20BBE7BABB202D204F DC7C1B7CEBCBCBDBA20BDBAC4C9C1D9B8B528BAF1BCB1C1A12CBCB1C1A1292E707074>

<4D F736F F F696E74202D20BBE7BABB202D204F DC7C1B7CEBCBCBDBA20BDBAC4C9C1D9B8B528BAF1BCB1C1A12CBCB1C1A1292E707074> . 프로세스스케줄링 (= CPU 스케줄링 ) [ 출제빈도 상 ] - 정의 : 컴퓨터시스템의성능을높이기위해그사용순서를결정하기위한정책 - 목적 ( 성능평가 ) : 처리율증가, CPU 이용률증가, 우선순위제도, 오버헤드 ( 부하 ) 최소화, 응답시간 / 반환시간 / 최소화, 균형있는자원의사용, 무한연기회피. 프로세스스케줄링기법 ) 비선점스케줄링 (Non Preemptive)

More information

제11장 프로세스와 쓰레드

제11장 프로세스와 쓰레드 제9장자바쓰레드 9.1 Thread 기초 (1/5) 프로그램 명령어들의연속 (a sequence of instruction) 프로세스 / Thread 실행중인프로그램 (program in execution) 프로세스생성과실행을위한함수들 자바 Thread 2 9.1 Thread 기초 (2/5) 프로세스단위작업의문제점 프로세스생성시오버헤드 컨텍스트스위치오버헤드

More information

ESP1ºÎ-04

ESP1ºÎ-04 Chapter 04 4.1..,..,.,.,.,. RTOS(Real-Time Operating System)., RTOS.. VxWorks(www.windriver.com), psos(www.windriver.com), VRTX(www.mento. com), QNX(www.qnx.com), OSE(www.ose.com), Nucleus(www.atinudclus.

More information

7 프로시저가활동중인것 8 실행중인프로시저의제어궤적 9 CPU가할당되는실체 운영체제가관리하는최소단위작업 (2) 프로세스상태전이도 (3) 주요프로세스상태 1 준비 (Read) 상태 : 실행하기위해준비하고있는상태 2 실행 (Run) 상태 :

7 프로시저가활동중인것 8 실행중인프로시저의제어궤적 9 CPU가할당되는실체 운영체제가관리하는최소단위작업 (2) 프로세스상태전이도 (3) 주요프로세스상태 1 준비 (Read) 상태 : 실행하기위해준비하고있는상태 2 실행 (Run) 상태 : 3 신뢰도 (Reliability) 작업의결과를얼마나정확하고믿을수있는가의요인 4 이용가능도 (Availability) 시스템의전체운영시간중에서실제가동하여사용중인시간의비율 ( 오류없이작동된시간의비율 ) (2) 다중프로그래밍에서의시간 (Time) 대기시간 기다림 A 작업 B 작업 A 작업 B 작업 A 작업 요청시간응답시간실행시간 반환시간 1 응답시간 (Response

More information

Microsoft PowerPoint os5.ppt

Microsoft PowerPoint os5.ppt 5 장스레드 (Threads) 프로세스 = 자원 + PC 스레드 : 새 PC (a thread of control) 로같은 address space 를실행하는 fork 와유사 스레드 (Threads) 개요 ~ 경량프로세스 (LWP; lightweight process) = 스레드» CPU 를이용하는기본단위» thread ID, PC, 레지스터세트, 스택영역을가짐»

More information

10주차.key

10주차.key 10, Process synchronization (concurrently) ( ) => critical section ( ) / =>, A, B / Race condition int counter; Process A { counter++; } Process B { counter ;.. } counter++ register1 = counter register1

More information

운영체제

운영체제 2017 운영체제 CHAPTER 02 프로세스와스레드관리 SEOKRAE KIM 내용 I. 프로세스와스레드관리... 1 1. 개요... 1 1) 중앙처리장치 (CPU)... 1 2) 중앙처리장치스케줄링... 1 2. 프로세스관리... 1 1) 프로세스의정의... 1 3. 프로세스구성요소... 2 4. 프로세스의상태... 2 1) 실행상태 (running)...

More information

Microsoft PowerPoint os5.ppt [호환 모드]

Microsoft PowerPoint os5.ppt [호환 모드] 5 장스레드 (Threads) 프로세스 = 자원 + PC 스레드 : 새 PC (a thread of control) 로같은 address space 를실행하는 fork 와유사 스레드 (Threads) 개요 경량프로세스 (LWP; lightweight process) = 스레드» CPU 를이용하는기본단위» thread ID, PC, 레지스터세트, 스택영역을가짐»

More information

Microsoft PowerPoint - o4.pptx

Microsoft PowerPoint - o4.pptx 목표 쓰레드 (thread) 개념소개 Thread API Multithreaded 프로그래밍관련이슈 4 장. 쓰레드 2 4.1 개요 쓰레드 쓰레드 (Thread ) CPU 이용의기본실행단위 단일쓰레드 (Single threaded) Processes 전통적인프로세스 한개의실행단위로구성 다중쓰레드 (Multithreaded) Process 여러개의실행쓰레드를갖는프로세스

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Reasons for Poor Performance Programs 60% Design 20% System 2.5% Database 17.5% Source: ORACLE Performance Tuning 1 SMS TOOL DBA Monitoring TOOL Administration TOOL Performance Insight Backup SQL TUNING

More information

학습목표 ü 01_ 소개 ü 02_ 스케줄링수준 ü 03_ 선점형 / 비선점형스케줄링 ü 04_ 우선순위 ü 05_ 스케줄링목적 ü 06_ 스케줄링기준 ü 07_ 스케줄링알고리즘 ü 08_ 데드라인스케줄링 ü 09_ 실시간스케줄링 ü 10_ 자바스레드스케줄링 2/23

학습목표 ü 01_ 소개 ü 02_ 스케줄링수준 ü 03_ 선점형 / 비선점형스케줄링 ü 04_ 우선순위 ü 05_ 스케줄링목적 ü 06_ 스케줄링기준 ü 07_ 스케줄링알고리즘 ü 08_ 데드라인스케줄링 ü 09_ 실시간스케줄링 ü 10_ 자바스레드스케줄링 2/23 Ch08_ 프로세서스케줄링 운영체제론 학습목표 ü 01_ 소개 ü 02_ 스케줄링수준 ü 03_ 선점형 / 비선점형스케줄링 ü 04_ 우선순위 ü 05_ 스케줄링목적 ü 06_ 스케줄링기준 ü 07_ 스케줄링알고리즘 ü 08_ 데드라인스케줄링 ü 09_ 실시간스케줄링 ü 10_ 자바스레드스케줄링 2/23 01_ 소개 o 프로세서스케줄링정책 주어진시간에시스템이실행할프로세스를선택하는작업

More information

untitled

untitled - -, (insert) (delete) - - (insert) (delete) (top ) - - (insert) (rear) (delete) (front) A A B top A B C top push(a) push(b) push(c) A B top pop() top A B D push(d) top #define MAX_STACK_SIZE 100 int

More information

사용자수준의스레드 : 사용자의라이브러리에의해운영, 속도는빠르나, 구현이복잡하다. 커널수준의스레드 : 운영체제커널에의해운영, 속도는느리나, 구현이단순하다. 스케줄링 (Scheduling) 1) 스케줄링의정의 프로세스가생성되어실행될때필요한시스템의여러자원을해당프로세스에게할당

사용자수준의스레드 : 사용자의라이브러리에의해운영, 속도는빠르나, 구현이복잡하다. 커널수준의스레드 : 운영체제커널에의해운영, 속도는느리나, 구현이단순하다. 스케줄링 (Scheduling) 1) 스케줄링의정의 프로세스가생성되어실행될때필요한시스템의여러자원을해당프로세스에게할당 프로세스 (Process) 1) 프로세스의개념 프로세서에의해처리되어지는사용자프로그램및시스템프로그램을의미한다. 현재실행중인프로그램이며 Job(=Task) 이라고도한다. PCB를가지는프로그램으로비동기적인행위를일으키는주체이며실제주기억장치에저장된프로그램이다. 운영체제가관리하는실행단위이며프로시저 ( 프로그램내의하위프로그램 ) 가활동중인것을의미한다. 2) 프로세스의상태전이과정

More information

Microsoft PowerPoint - StallingsOS6e-Chap09.ppt [호환 모드]

Microsoft PowerPoint - StallingsOS6e-Chap09.ppt [호환 모드] 9 장단일처리기스케줄링 9 장의강의목표 처리기스케줄링의유형을이해한다. 단일처리기시스템에서여러단기 - 스케줄링방식들의동작원리를이해한다. 단일처리기시스템에서여러단기 - 스케줄링방식들의장단점을이해한다. 제 9 장단일처리기스케줄링 2 목차 9.1 처리기스케줄링의유형 9.2 스케줄링알고리즘들 9.3 전통적인유닉스시스템에서의스케줄링 제 9 장단일처리기스케줄링 3 9.1

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

02 C h a p t e r Java

02 C h a p t e r Java 02 C h a p t e r Java Bioinformatics in J a va,, 2 1,,,, C++, Python, (Java),,, (http://wwwbiojavaorg),, 13, 3D GUI,,, (Java programming language) (Sun Microsystems) 1995 1990 (green project) TV 22 CHAPTER

More information

<4D F736F F F696E74202D20322DBDC7BDC3B0A320BFEEBFB5C3BCC1A6>

<4D F736F F F696E74202D20322DBDC7BDC3B0A320BFEEBFB5C3BCC1A6> 컴퓨터시스템구성 2. 실시간운영체제 1 2 운영체제의주요기능 프로세스관리 (Process management) 메모리관리 (Memory management) 인터럽트핸들링 (Interrupt handling) 예외처리 (Exception handling) 프로세스동기화 (Process synchronization) 프로세스스케쥴링 (Process scheduling)

More information

Microsoft PowerPoint os4.ppt [호환 모드]

Microsoft PowerPoint os4.ppt [호환 모드] 4 장스레드 (Threads) 프로세스 = 자원 + PC 스레드 : 새 PC (a thread of control) 로같은 address space 를실행하는 fork 와유사 스레드 (Threads) 개요 경량프로세스 (LWP; lightweight process) = 스레드» CPU 를이용하는기본단위» thread ID, PC, 레지스터세트, 스택영역을가짐»

More information

강의10

강의10 Computer Programming gdb and awk 12 th Lecture 김현철컴퓨터공학부서울대학교 순서 C Compiler and Linker 보충 Static vs Shared Libraries ( 계속 ) gdb awk Q&A Shared vs Static Libraries ( 계속 ) Advantage of Using Libraries Reduced

More information

05(533-537) CPLV12-04.hwp

05(533-537) CPLV12-04.hwp 모바일 OS 환경의 사용자 반응성 향상 기법 533 모바일 OS 환경의 사용자 반응성 향상 기법 (Enhancing Interactivity in Mobile Operating Systems) 배선욱 김정한 (Sunwook Bae) 엄영익 (Young Ik Eom) (Junghan Kim) 요 약 사용자 반응성은 컴퓨팅 시스템에서 가장 중요 한 요소 중에 하나이고,

More information

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for 2003 Development of the Software Generation Method using Model Driven Software Engineering Tool,,,,, Hoon-Seon Chang, Jae-Cheon Jung, Jae-Hack Kim Hee-Hwan Han, Do-Yeon Kim, Young-Woo Chang Wang Sik, Moon

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 2... ( ). ( ). @ vs. logic data method variable behavior attribute method field Flow (Type), ( ) member @ () : C program Method A ( ) Method B ( ) Method C () program : Java, C++, C# data @ Program

More information

APOGEE Insight_KR_Base_3P11

APOGEE Insight_KR_Base_3P11 Technical Specification Sheet Document No. 149-332P25 September, 2010 Insight 3.11 Base Workstation 그림 1. Insight Base 메인메뉴 Insight Base Insight Insight Base, Insight Base Insight Base Insight Windows

More information

슬라이드 1

슬라이드 1 프로세스 (Process) (1) Chapter #5 Process 정의 Process 구조 Process Context Process Scheduling 강의목차 Unix System Programming 2 Program( 프로그램 ) Process 정의 (1) 기계어명령어와데이터를모아놓은실행파일 C 언어등프로그램언어로작성된소스파일을컴파일링하여생성 COFF(Common

More information

, ( ) 1) *.. I. (batch). (production planning). (downstream stage) (stockout).... (endangered). (utilization). *

, ( ) 1) *.. I. (batch). (production planning). (downstream stage) (stockout).... (endangered). (utilization). * , 40 12 (2006 6) 1) *.. I. (batch). (production planning). (downstream stage) (stockout).... (endangered). (utilization). * 40, 40 12 (EPQ; economic production quantity). (setup cost) (setup time) Bradley

More information

PCServerMgmt7

PCServerMgmt7 Web Windows NT/2000 Server DP&NM Lab 1 Contents 2 Windows NT Service Provider Management Application Web UI 3 . PC,, Client/Server Network 4 (1),,, PC Mainframe PC Backbone Server TCP/IP DCS PLC Network

More information

Something that can be seen, touched or otherwise sensed

Something that can be seen, touched or otherwise sensed Something that can be seen, touched or otherwise sensed Things about an object Weight Height Material Things an object does Pen writes Book stores words Water have Fresh water Rivers Oceans have

More information

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx Basic Idea of External Sorting run 1 run 2 run 3 run 4 run 5 run 6 750 records 750 records 750 records 750 records 750 records 750 records run 1 run 2 run 3 1500 records 1500 records 1500 records run 1

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 3 if, if else, if else if, switch case for, while, do while break, continue : System.in, args, JOptionPane for (,, ) @ vs. logic data method variable Data Data Flow (Type), ( ) @ Member field

More information

Chap04(Signals and Sessions).PDF

Chap04(Signals and Sessions).PDF Signals and Session Management 2002 2 Hyun-Ju Park (Signal)? Introduction (1) mechanism events : asynchronous events - interrupt signal from users : synchronous events - exceptions (accessing an illegal

More information

thesis

thesis CORBA TMN Surveillance System DPNM Lab, GSIT, POSTECH Email: mnd@postech.ac.kr Contents Motivation & Goal Related Work CORBA TMN Surveillance System Implementation Conclusion & Future Work 2 Motivation

More information

Microsoft PowerPoint - StallingsOS6e-Chap04.pptx

Microsoft PowerPoint - StallingsOS6e-Chap04.pptx 제 4 장. 쓰레드, SMP, 그리고마이크로커널 4 장의강의목표 쓰레드 (thread) 의개념을이해하고, 프로세스와의차이점를구별한다. 쓰레드의장단점을이해한다. 사용자수준쓰레드와커널수준쓰레드의개념을이해한다. 대칭적다중처리 (SMP) 에대해서이해한다. 마이크로커널의개념과장단점을이해한다. Windows, Solaris, Linux 의쓰레드관리및 SMP 관리기법을이해한다.

More information

The Self-Managing Database : Automatic Health Monitoring and Alerting

The Self-Managing Database : Automatic Health Monitoring and Alerting The Self-Managing Database : Automatic Health Monitoring and Alerting Agenda Oracle 10g Enterpirse Manager Oracle 10g 3 rd Party PL/SQL API Summary (Self-Managing Database) ? 6% 6% 12% 55% 6% Source: IOUG

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Verilog: Finite State Machines CSED311 Lab03 Joonsung Kim, joonsung90@postech.ac.kr Finite State Machines Digital system design 시간에배운것과같습니다. Moore / Mealy machines Verilog 를이용해서어떻게구현할까? 2 Finite State

More information

비긴쿡-자바 00앞부속

비긴쿡-자바 00앞부속 IT COOKBOOK 14 Java P r e f a c e Stay HungryStay Foolish 3D 15 C 3 16 Stay HungryStay Foolish CEO 2005 L e c t u r e S c h e d u l e 1 14 PPT API C A b o u t T h i s B o o k IT CookBook for Beginner Chapter

More information

Chap7.PDF

Chap7.PDF Chapter 7 The SUN Intranet Data Warehouse: Architecture and Tools All rights reserved 1 Intranet Data Warehouse : Distributed Networking Computing Peer-to-peer Peer-to-peer:,. C/S Microsoft ActiveX DCOM(Distributed

More information

Microsoft PowerPoint - o8.pptx

Microsoft PowerPoint - o8.pptx 메모리보호 (Memory Protection) 메모리보호를위해 page table entry에 protection bit와 valid bit 추가 Protection bits read-write / read-only / executable-only 정의 page 단위의 memory protection 제공 Valid bit (or valid-invalid bit)

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 23 장스레드 이번장에서학습할내용 스레드의개요 스레드의생성과실행 스레드상태 스레드의스케줄링 스레드간의조정 스레드는동시에여러개의프로그램을실행하는효과를냅니다. 멀티태스킹 멀티태스킹 (muli-tasking) 는여러개의애플리케이션을동시에실행하여서컴퓨터시스템의성능을높이기위한기법 스레드란? 다중스레딩 (multi-threading) 은하나의프로그램이동시에여러가지작업을할수있도록하는것

More information

rmi_박준용_final.PDF

rmi_박준용_final.PDF (RMI) - JSTORM http://wwwjstormpekr (RMI)- Document title: Document file name: Revision number: Issued by: Document Information (RMI)- rmi finaldoc Issue Date: Status:

More information

1217 WebTrafMon II

1217 WebTrafMon II (1/28) (2/28) (10 Mbps ) Video, Audio. (3/28) 10 ~ 15 ( : telnet, ftp ),, (4/28) UDP/TCP (5/28) centralized environment packet header information analysis network traffic data, capture presentation network

More information

Microsoft PowerPoint OS-Thread

Microsoft PowerPoint OS-Thread 4 장. 스레드 (Thread) 순천향대학교컴퓨터공학과이상정 순천향대학교컴퓨터공학과 1 강의목표및내용 목표 다중스레드컴퓨터시스템의기초를이루는 CPU 이용의기본단위인스레드를소개 Pthreads API 및 Win32 와 Java 스레드라이브러리소개 내용 개요 다중코어프로그래밍 다중스레드모델 스레드라이브러리 암묵적스레드 스레드관련문제들 사례 순천향대학교컴퓨터공학과

More information

chap7.key

chap7.key 1 7 C 2 7.1 C (System Calls) Unix UNIX man Section 2 C. C (Library Functions) C 1975 Dennis Ritchie ANSI C Standard Library 3 (system call). 4 C?... 5 C (text file), C. (binary file). 6 C 1. : fopen( )

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 4 (Object) (Class) (Instance) (Method) (Constructor) Memory 1 UML 1 @ & 1 (Real World) (Software World) @ &.. () () @ & 2 (Real World) (Software World) OOA/ Modeling Abstraction Instantiation

More information

김기남_ATDC2016_160620_[키노트].key

김기남_ATDC2016_160620_[키노트].key metatron Enterprise Big Data SKT Metatron/Big Data Big Data Big Data... metatron Ready to Enterprise Big Data Big Data Big Data Big Data?? Data Raw. CRM SCM MES TCO Data & Store & Processing Computational

More information

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074> Chap #2 펌웨어작성을위한 C 언어 I http://www.smartdisplay.co.kr 강의계획 Chap1. 강의계획및디지털논리이론 Chap2. 펌웨어작성을위한 C 언어 I Chap3. 펌웨어작성을위한 C 언어 II Chap4. AT89S52 메모리구조 Chap5. SD-52 보드구성과코드메모리프로그래밍방법 Chap6. 어드레스디코딩 ( 매핑 ) 과어셈블리어코딩방법

More information

PRO1_04E [읽기 전용]

PRO1_04E [읽기 전용] Siemens AG 1999 All rights reserved File: PRO1_04E1 Information and S7-300 2 S7-400 3 EPROM / 4 5 6 HW Config 7 8 9 CPU 10 CPU : 11 CPU : 12 CPU : 13 CPU : / 14 CPU : 15 CPU : / 16 HW 17 HW PG 18 SIMATIC

More information

4 CD Construct Special Model VI 2 nd Order Model VI 2 Note: Hands-on 1, 2 RC 1 RLC mass-spring-damper 2 2 ζ ω n (rad/sec) 2 ( ζ < 1), 1 (ζ = 1), ( ) 1

4 CD Construct Special Model VI 2 nd Order Model VI 2 Note: Hands-on 1, 2 RC 1 RLC mass-spring-damper 2 2 ζ ω n (rad/sec) 2 ( ζ < 1), 1 (ζ = 1), ( ) 1 : LabVIEW Control Design, Simulation, & System Identification LabVIEW Control Design Toolkit, Simulation Module, System Identification Toolkit 2 (RLC Spring-Mass-Damper) Control Design toolkit LabVIEW

More information

<30362E20C6EDC1FD2DB0EDBFB5B4EBB4D420BCF6C1A42E687770>

<30362E20C6EDC1FD2DB0EDBFB5B4EBB4D420BCF6C1A42E687770> 327 Journal of The Korea Institute of Information Security & Cryptology ISSN 1598-3986(Print) VOL.24, NO.2, Apr. 2014 ISSN 2288-2715(Online) http://dx.doi.org/10.13089/jkiisc.2014.24.2.327 개인정보 DB 암호화

More information

OPCTalk for Hitachi Ethernet 1 2. Path. DCOMwindow NT/2000 network server. Winsock update win95. . . 3 Excel CSV. Update Background Thread Client Command Queue Size Client Dynamic Scan Block Block

More information

슬라이드 1

슬라이드 1 마이크로컨트롤러 2 (MicroController2) 2 강 ATmega128 의 external interrupt 이귀형교수님 학습목표 interrupt 란무엇인가? 기본개념을알아본다. interrupt 중에서가장사용하기쉬운 external interrupt 의사용방법을학습한다. 1. Interrupt 는왜필요할까? 함수동작을추가하여실행시키려면? //***

More information

11 템플릿적용 - Java Program Performance Tuning (김명호기술이사)

11 템플릿적용 - Java Program Performance Tuning (김명호기술이사) Java Program Performance Tuning ( ) n (Primes0) static List primes(int n) { List primes = new ArrayList(n); outer: for (int candidate = 2; n > 0; candidate++) { Iterator iter = primes.iterator(); while

More information

<4D F736F F F696E74202D C465F4B6F F6E662DB8AEB4AABDBABFA1BCADC0C7BDC7BDC3B0A3C1F6BFF8>

<4D F736F F F696E74202D C465F4B6F F6E662DB8AEB4AABDBABFA1BCADC0C7BDC7BDC3B0A3C1F6BFF8> Korea Tech Conference 2005 년 5 월 14 일, 서울 2005 년 5 월 14 일 CE Linux Forum Korea Tech Conference 1 리눅스에서의실시간지원 정영준 / 임용관 2005 년 5 월 14 일 CE Linux Forum Korea Tech Conference 2 1. 개요 2. 스케줄러 목차 I. 고정스케줄링시간지원

More information

vm-웨어-앞부속

vm-웨어-앞부속 VMware vsphere 4 This document was created using the official VMware icon and diagram library. Copyright 2009 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright

More information

Interstage5 SOAP서비스 설정 가이드

Interstage5 SOAP서비스 설정 가이드 Interstage 5 Application Server ( Solaris ) SOAP Service Internet Sample Test SOAP Server Application SOAP Client Application CORBA/SOAP Server Gateway CORBA/SOAP Gateway Client INTERSTAGE SOAP Service

More information

KEY 디바이스 드라이버

KEY 디바이스 드라이버 KEY 디바이스드라이버 임베디드시스템소프트웨어 I (http://et.smu.ac.kr et.smu.ac.kr) 차례 GPIO 및 Control Registers KEY 하드웨어구성 KEY Driver 프로그램 key-driver.c 시험응용프로그램 key-app.c KEY 디바이스드라이버 11-2 GPIO(General-Purpose Purpose I/O)

More information

Chapter 4. LISTS

Chapter 4. LISTS C 언어에서리스트구현 리스트의생성 struct node { int data; struct node *link; ; struct node *ptr = NULL; ptr = (struct node *) malloc(sizeof(struct node)); Self-referential structure NULL: defined in stdio.h(k&r C) or

More information

PowerPoint Presentation

PowerPoint Presentation Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음

More information

MS-SQL SERVER 대비 기능

MS-SQL SERVER 대비 기능 Business! ORACLE MS - SQL ORACLE MS - SQL Clustering A-Z A-F G-L M-R S-Z T-Z Microsoft EE : Works for benchmarks only CREATE VIEW Customers AS SELECT * FROM Server1.TableOwner.Customers_33 UNION ALL SELECT

More information

vm-웨어-01장

vm-웨어-01장 Chapter 16 21 (Agenda). (Green),., 2010. IT IT. IT 2007 3.1% 2030 11.1%, IT 2007 1.1.% 2030 4.7%, 2020 4 IT. 1 IT, IT. (Virtualization),. 2009 /IT 2010 10 2. 6 2008. 1970 MIT IBM (Mainframe), x86 1. (http

More information

Manufacturing6

Manufacturing6 σ6 Six Sigma, it makes Better & Competitive - - 200138 : KOREA SiGMA MANAGEMENT C G Page 2 Function Method Measurement ( / Input Input : Man / Machine Man Machine Machine Man / Measurement Man Measurement

More information

Chapter #01 Subject

Chapter #01  Subject Device Driver March 24, 2004 Kim, ki-hyeon 목차 1. 인터럽트처리복습 1. 인터럽트복습 입력검출방법 인터럽트방식, 폴링 (polling) 방식 인터럽트서비스등록함수 ( 커널에등록 ) int request_irq(unsigned int irq, void(*handler)(int,void*,struct pt_regs*), unsigned

More information

1

1 1 1....6 1.1...6 2. Java Architecture...7 2.1 2SDK(Software Development Kit)...8 2.2 JRE(Java Runtime Environment)...9 2.3 (Java Virtual Machine, JVM)...10 2.4 JVM...11 2.5 (runtime)jvm...12 2.5.1 2.5.2

More information

1장. 유닉스 시스템 프로그래밍 개요

1장.  유닉스 시스템 프로그래밍 개요 Unix 프로그래밍및실습 7 장. 시그널 - 과제보충 응용과제 1 부모프로세스는반복해서메뉴를출력하고사용자로부터주문을받아자식프로세스에게주문내용을알린다. (SIGUSR1) ( 일단주문을받으면음식이완료되기전까지 SIGUSR1 을제외한다른시그널은모두무시 ) timer 자식프로세스는주문을받으면조리를시작한다. ( 일단조리를시작하면음식이완성되기전까지 SIGALARM 을제외한다른시그널은모두무시

More information

DE1-SoC Board

DE1-SoC Board 실습 1 개발환경 DE1-SoC Board Design Tools - Installation Download & Install Quartus Prime Lite Edition http://www.altera.com/ Quartus Prime (includes Nios II EDS) Nios II Embedded Design Suite (EDS) is automatically

More information

소프트웨어개발방법론

소프트웨어개발방법론 사용사례 (Use Case) Objectives 2 소개? (story) vs. 3 UC 와 UP 산출물과의관계 Sample UP Artifact Relationships Domain Model Business Modeling date... Sale 1 1..* Sales... LineItem... quantity Use-Case Model objects,

More information

Chapter 4. LISTS

Chapter 4. LISTS 6. 동치관계 (Equivalence Relations) 동치관계 reflexive, symmetric, transitive 성질을만족 "equal to"(=) 관계는동치관계임. x = x x = y 이면 y = x x = y 이고 y = z 이면 x = z 동치관계를이용하여집합 S 를 동치클래스 로분할 동일한클래스내의원소 x, y 에대해서는 x y 관계성립

More information

18차시.ppt

18차시.ppt [ 정보처리기능사필기] 3 과목 - PC운영체제 1 / 13 정보처리기능사 ( 필기 ) 3 과목. PC 운영체제운영체제의개요 1. 운영체제 (OS; Operating System) 의정의 운영체제의정의 - 사용자가하드웨어장치를직접조작하지않아도원하는작업을수행할수있도록도와주는프로그램 - 한정된컴퓨터시스템자원을보다효율적으로관리, 운영함으로써사용자들에게편의를제공하는시스템프로그램

More information

Integ

Integ HP Integrity HP Chipset Itanium 2(Processor 9100) HP Integrity HP, Itanium. HP Integrity Blade BL860c HP Integrity Blade BL870c HP Integrity rx2660 HP Integrity rx3600 HP Integrity rx6600 2 HP Integrity

More information

SK IoT IoT SK IoT onem2m OIC IoT onem2m LG IoT SK IoT KAIST NCSoft Yo Studio tidev kr 5 SK IoT DMB SK IoT A M LG SDS 6 OS API 7 ios API API BaaS Backend as a Service IoT IoT ThingPlug SK IoT SK M2M M2M

More information

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600 균형이진탐색트리 -VL Tree delson, Velskii, Landis에의해 1962년에제안됨 VL trees are balanced n VL Tree is a binary search tree such that for every internal node v of T, the heights of the children of v can differ by at

More information

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Crash Unity SDK... Log & Crash Search. - Unity3D v4.0 ios

More information

인켈(국문)pdf.pdf

인켈(국문)pdf.pdf M F - 2 5 0 Portable Digital Music Player FM PRESET STEREOMONO FM FM FM FM EQ PC Install Disc MP3/FM Program U S B P C Firmware Upgrade General Repeat Mode FM Band Sleep Time Power Off Time Resume Load

More information

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C4C656D70656C2D5A69762E637070>

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C4C656D70656C2D5A69762E637070> /* */ /* LZWIN.C : Lempel-Ziv compression using Sliding Window */ /* */ #include "stdafx.h" #include "Lempel-Ziv.h" 1 /* 큐를초기화 */ void LZ::init_queue(void) front = rear = 0; /* 큐가꽉찼으면 1 을되돌림 */ int LZ::queue_full(void)

More information

C++-¿Ïº®Çؼ³10Àå

C++-¿Ïº®Çؼ³10Àå C C++. (preprocessor directives), C C++ C/C++... C++, C. C++ C. C C++. C,, C++, C++., C++.,.. #define #elif #else #error #if #itdef #ifndef #include #line #pragma #undef #.,.,. #include #include

More information

Chap06(Interprocess Communication).PDF

Chap06(Interprocess Communication).PDF Interprocess Communication 2002 2 Hyun-Ju Park Introduction (interprocess communication; IPC) IPC data transfer sharing data event notification resource sharing process control Interprocess Communication

More information

Sena Technologies, Inc. HelloDevice Super 1.1.0

Sena Technologies, Inc. HelloDevice Super 1.1.0 HelloDevice Super 110 Copyright 1998-2005, All rights reserved HelloDevice 210 ()137-130 Tel: (02) 573-5422 Fax: (02) 573-7710 E-Mail: support@senacom Website: http://wwwsenacom Revision history Revision

More information

NoSQL

NoSQL MongoDB Daum Communications NoSQL Using Java Java VM, GC Low Scalability Using C Write speed Auto Sharding High Scalability Using Erlang Read/Update MapReduce R/U MR Cassandra Good Very Good MongoDB Good

More information

슬라이드 1

슬라이드 1 CHAP 6: 큐 yicho@gachon.ac.kr 1 큐 (QUEUE) 큐 : 먼저들어온데이터가먼저나가는자료구조 선입선출 (FIFO: First-In First-Out) ( 예 ) 매표소의대기열 Ticket Box 전단 () 후단 () 2 큐 ADT 삽입과삭제는 FIFO 순서를따른다. 삽입은큐의후단에서, 삭제는전단에서이루어진다. 객체 : n 개의 element

More information

SMB_ICMP_UDP(huichang).PDF

SMB_ICMP_UDP(huichang).PDF SMB(Server Message Block) UDP(User Datagram Protocol) ICMP(Internet Control Message Protocol) SMB (Server Message Block) SMB? : Microsoft IBM, Intel,. Unix NFS. SMB client/server. Client server request

More information

solution map_....

solution map_.... SOLUTION BROCHURE RELIABLE STORAGE SOLUTIONS ETERNUS FOR RELIABILITY AND AVAILABILITY PROTECT YOUR DATA AND SUPPORT BUSINESS FLEXIBILITY WITH FUJITSU STORAGE SOLUTIONS kr.fujitsu.com INDEX 1. Storage System

More information

UI TASK & KEY EVENT

UI TASK & KEY EVENT KEY EVENT & STATE 구현 2007. 1. 25 PLATFORM TEAM 정용학 차례 Key Event HS TASK UI TASK LONG KEY STATE 구현 소스코드및실행화면 질의응답및토의 2 KEY EVENT - HS TASK hs_task keypad_scan_keypad hs_init keypad_pass_key_code keypad_init

More information

Microsoft PowerPoint - analogic_kimys_ch10.ppt

Microsoft PowerPoint - analogic_kimys_ch10.ppt Stability and Frequency Compensation (Ch. 10) 김영석충북대학교전자정보대학 2010.3.1 Email: kimys@cbu.ac.kr 전자정보대학김영석 1 Basic Stability 10.1 General Considerations Y X (s) = H(s) 1+ βh(s) May oscillate at ω if βh(jω)

More information

61 62 63 64 234 235 p r i n t f ( % 5 d :, i+1); g e t s ( s t u d e n t _ n a m e [ i ] ) ; if (student_name[i][0] == \ 0 ) i = MAX; p r i n t f (\ n :\ n ); 6 1 for (i = 0; student_name[i][0]!= \ 0&&

More information

TEL:02)861-1175, FAX:02)861-1176 , REAL-TIME,, ( ) CUSTOMER. CUSTOMER REAL TIME CUSTOMER D/B RF HANDY TEMINAL RF, RF (AP-3020) : LAN-S (N-1000) : LAN (TCP/IP) RF (PPT-2740) : RF (,RF ) : (CL-201)

More information

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures 단일연결리스트 (Singly Linked List) 신찬수 연결리스트 (linked list)? tail 서울부산수원용인 null item next 구조체복습 struct name_card { char name[20]; int date; } struct name_card a; // 구조체변수 a 선언 a.name 또는 a.date // 구조체 a의멤버접근 struct

More information

Microsoft PowerPoint APUE(Intro).ppt

Microsoft PowerPoint APUE(Intro).ppt 컴퓨터특강 () [Ch. 1 & Ch. 2] 2006 년봄학기 문양세강원대학교컴퓨터과학과 APUE 강의목적 UNIX 시스템프로그래밍 file, process, signal, network programming UNIX 시스템의체계적이해 시스템프로그래밍능력향상 Page 2 1 APUE 강의동기 UNIX 는인기있는운영체제 서버시스템 ( 웹서버, 데이터베이스서버

More information

untitled

untitled Push... 2 Push... 4 Push... 5 Push... 13 Push... 15 1 FORCS Co., LTD A Leader of Enterprise e-business Solution Push (Daemon ), Push Push Observer. Push., Observer. Session. Thread Thread. Observer ID.

More information

thesis

thesis ( Design and Implementation of a Generalized Management Information Repository Service for Network and System Management ) ssp@nile nile.postech.ac..ac.kr DPE Lab. 1997 12 16 GMIRS GMIRS GMIRS prototype

More information

R50_51_kor_ch1

R50_51_kor_ch1 S/N : 1234567890123 Boot Device Priority NumLock [Off] Enable Keypad [By NumLock] Summary screen [Disabled] Boor-time Diagnostic Screen [Disabled] PXE OPROM [Only with F12]

More information

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - Java7.pptx HPC & OT Lab. 1 HPC & OT Lab. 2 실습 7 주차 Jin-Ho, Jang M.S. Hanyang Univ. HPC&OT Lab. jinhoyo@nate.com HPC & OT Lab. 3 Component Structure 객체 (object) 생성개념을이해한다. 외부클래스에대한접근방법을이해한다. 접근제어자 (public & private)

More information

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070> #include "stdafx.h" #include "Huffman.h" 1 /* 비트의부분을뽑아내는함수 */ unsigned HF::bits(unsigned x, int k, int j) return (x >> k) & ~(~0

More information

5.스택(강의자료).key

5.스택(강의자료).key CHP 5: https://www.youtube.com/watch?v=ns-r91557ds ? (stack): (LIFO:Last-In First-Out):. D C B C B C B C B (element) C (top) B (bottom) (DT) : n element : create() ::=. is_empty(s) ::=. is_full(s) ::=.

More information