process scheduling 게 두가로 나뉜다.
1. real-time process - 1.hard real-time(), 2.soft real-time(vedio decoder )
2. time-sharing process
1. real-time process - 1.hard real-time(), 2.soft real-time(vedio decoder )
2. time-sharing process
기 time-sharing 명다.
Linux는 게 두가 thread를 다.
1. Kernel - 1. Kernel Thread, 2. LWT(Lightweight Thread)
2. User Thread
Linux는 게 두가 thread를 다.
1. Kernel - 1. Kernel Thread, 2. LWT(Lightweight Thread)
2. User Thread
thread를 때 것 동기데, context switch를 때 데가 된 다른 thread로 가 가면 명 류가 나게된다.
Linux 멀 로 개념 fork()는 내부로 do_fork()란 Kernel 를 며, do_fork()는 내부로 user thread POSIX기반 Mutex를 다.
Linux 멀 로 개념 fork()는 내부로 do_fork()란 Kernel 를 며, do_fork()는 내부로 user thread POSIX기반 Mutex를 다.
... 그리고... 가... POSIX thread를 많 thread를 면 동기를 목다.
가 관다. 를 다. 라 면 끝다.
... mutex 동기... 미겠군... 데를 때는 lock 는데 변 기때 context switch가 나면 는냐.
가 관다. 를 다. 라 면 끝다.
... mutex 동기... 미겠군... 데를 때는 lock 는데 변 기때 context switch가 나면 는냐.
담로... context switch PCB(Process Control Block) 보가 된다.
것 Assembly로 며 그 는 때문다.
PCB 된 process 빠르다.
-> 만 Zombie Process가 되면 먹는 만 PCB가 로 리 값로 늘나 반로 느려다.
것 Assembly로 며 그 는 때문다.
PCB 된 process 빠르다.
-> 만 Zombie Process가 되면 먹는 만 PCB가 로 리 값로 늘나 반로 느려다.
~cpp void *thread(void *arg) { int num = *(int *)arg; int i; for(i=1; i<=20; i++){ pthread_mutex_lock(&mutex); printf("%d: sum+=%d\n", num, i); sum += i; sleep(1); pthread_mutex_unlock(&mutex); } } thread를 10개 고 면, 가 되고 context switch가 나고 arg가 대로 바뀌는 것 같다. arg는 0~9까가 닌 몇몇 복되는 로 나나게 된다. pthread_mutex_lock 변 면 arg는 0로 게된다. 까 각 만 pthread 내부 문것 같다. 명 기까 arg 값 믿 다. .
Critical Section 닌데 데가 대로 바뀌 는다.
다. 는 문 만 많 드가 동 되고 데 리 많 때는
argument가 대로 겨 는 것 같다.
function argument를 기는 것 stack 관된 것고, 개개 드는 각각 stack 가고 데. 각다.
다. 는 문 만 많 드가 동 되고 데 리 많 때는
argument가 대로 겨 는 것 같다.
function argument를 기는 것 stack 관된 것고, 개개 드는 각각 stack 가고 데. 각다.