Operating System : 운영체제

본 토픽은 현재 준비중입니다. 공동공부에 참여하시면 완성 되었을 때 알려드립니다.

(3) Thread Life Cycle

@ Process와 Thread는 굉장히 중요한 시스템입니다.

 

@ MultiThreading을 배웠는데

    > 기존의 문제를 어떻게 해결하고

    > 내부에 어떻게 구현하는지를 배웠습니다.

    

@ MultiThreading을 구현하는 방법은 크게 3가지였습니다.

    > User

        .. Massively Palarell system에서는 효과적이었습니다.

        .. reactive system에서는 사용하기 힘들었습니다.

    > Kernel System Call

        .. OS가 Kernel System으로 Thread를 생성합니다.

    > Combined

        .. 위 두 방식의 장단점을 보완하는 방식입니다.

        

@ Combined Thread Approach 중 하나는

    // Sun Micro System은 

        > Kernel Level Thread와 User Level Thread를 Associate시키며

            .. 동일한 것처럼 관리를 합니다.

        > Kernel 과 User Thread는 M to M 관계를 가질 수 있습니다.

            .. User에서는 Thread를 Process처럼 여기고 virtual Thread로 생각합니다.

            

@ Thread의 가장 마지막 이슈는 다른 방식으로 바라봅니다.

    // 응용 프로그래머의 입장에서는 MultiThreading을 어떻게 사용할까요?

        > 기존은 Single Thread를 사용하는 것이 익숙합니다.

            .. main 함수 하나에서 수행

    // MultiThread가 제공하는 API를 이해할 필요가 있습니다.

        > POSIX(UNIX의 API의 표준을 정의)

            .. 여기에서 MultiThread에 관해서 Pthread라는 API가 제공됩니다.

            Pthread

            

@ Thread Life Cycle

    Thread Life Cycle

    // 일단 Process가 수행될 때, UNIX의 Convention을 따릅니다

        > 기존 Process는 하나의 Main Thread를 가지게 됩니다.

            .. 이 Thread가 다른 Thread를 support합니다.

    // Main Thread는 나머지 Thread를 모니터링하는 일을 하게 됩니다.

 

@ Thread Life Cycle implementation

    Thread Life Cycle_code

    // TaskCode는 Argument를 받아서 Argument를 Print하고 Terminate하는 일을 합니다.

    Thread Life Cycle_code

    // Process를 Create합니다.

        > Parameter로 TaskCode Function pointer를 넘깁니다.

            .. 그리고 수행할 수 있게됩니다.

        > Thread Argument는 Sequence number가 됩니다.

    // main Thread는 5번 돌면서 join(wait)을 수행하게 됩니다.

    

@ MultiThreading을 한다는 것은

    // 여러 Process가 interliving하면서 같이 도는 것이기에

        > 상상하기 쉽지 않습니다.

    // User과 Kernel이 어떻게 다른지 알아야 합니다.

        > user는 create할 때 compile 되고 link될 때 하나의 image로 수행이 됩니다.

        > Kernel일 때는 모두 System call 이라는 차이점이 있습니다.

        

@ 이해가 잘 안되시죠? 저도요 ㅎㅎㅎㅎㅎㅎㅎ 추후 다시 정리하도록 하겠습니다.

댓글

댓글 본문
graphittie 자세히 보기