반응형

스레드 3

OS : Thread - API

학부 수업 내용을 필기한 내용입니다. 필자가 이해를 제대로 못하고 정리한 경우 틀린 내용이 있을 수 있습니다. 그러한 부분이 있다면 댓글로 이야기하여 수정하게 해 주시면 감사하겠습니다. pthread_create 함수에 대해 아까 알아봤었다. 다만 아까와는 조금 다른 점이, 실행할 함수에 넘겨주는 인자인데 하나밖에 못 넘겨주므로 구조체를 생성해서 넘겨주었다. main함수에서 구조체 args를 만들고 그 안에는 int a, b의 값이 저장되어있다. 이후 pthread_create로 쓰레드가 생성되고 T1의 Stack에는 args의 주소가 넘겨왔으므로 T1은 main함수의 Stack을 참조해서 값을 받아온다. 그렇다면 T1이 사용하는 것은 자신의 것이 아닌 타인의 스택 이 프로세스는 외부와는 격리되어있지만,..

OS : Concurrency : 병행성 - Intro(2)

학부 수업 내용을 필기한 내용입니다. 필자가 이해를 제대로 못하고 정리한 경우 틀린 내용이 있을 수 있습니다. 그러한 부분이 있다면 댓글로 이야기하여 수정하게 해 주시면 감사하겠습니다. p3.c 파일이 실행되었을 때 흐름에 대해 한 번 보자. Main 쓰레드가 실행되고, 이후 T1, T2가 생성되는데 join을 사용하였으므로 Main은 T1을 waits 한다. 이 과정에서 Main은 Block에 빠진다. T1은 creates Thread1에서 생성되는 시점에서는 READY runs 되면서 Running 이 동안에는 Main은 Blocked 되어있다가 T1이 끝나면서 Ready -> Running 하면서 T2를 실행시켜주고 다시 마찬가지로 Blocked에 빠진다 T2는 만들어진 시점부터 Ready였다가 R..

OS : Concurrency : 병행성 - Intro(1) + Thread

학부 수업 내용을 필기한 내용입니다. 필자가 이해를 제대로 못하고 정리한 경우 틀린 내용이 있을 수 있습니다. 그러한 부분이 있다면 댓글로 이야기하여 수정하게 해 주시면 감사하겠습니다. 실행 흐름이 여러 개 있는데 CPU는 하나 있을 때 왼쪽 Process(t0.c) 실행 흐름이 여러 개 있는 것을 볼 수 있다 메인 스레드가 있고 생성된 T1, T2 쓰레드가 있는데 이렇게 생성된 이유는 Program Code에서 라이브러리 함수를 사용하여 스레드를 생성하였기 때문이다. 결과적으로는 이렇게 하여 여러 개의 실행 흐름을 갖게 되었다. 오른쪽 실행 흐름이 하나 있는 프로세스 둘 다 Address Space 존재 Open File Descriptor 존재 PCB 존재 Program Code에서 main() 실행..

반응형