E D R , A S I H C RSS

쓰레드에관한잡담

process scheduling 게 두가로 나뉜다.
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


thread를 동기데, context switch를 때 데 다른 thread로 가면 류가 나게된다.
Linux 개념 fork()는 내부로 do_fork()란 Kernel 며, do_fork()는 내부로 user thread POSIX기반 Mutex를 다.


... 그리고... ... POSIX thread를 thread를 면 동기다.
가 관다. 다. 면 끝다.
... mutex 동기... 미겠군... 데때는 lock 는데 변 때 context switch가 나면 냐.



로... context switch PCB(Process Control Block) 보가 된다.
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데. 다.
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:30:19
Processing time 0.0110 sec