2004. 5. 31. 18:06
     

안녕하십니까 까마굽니다 (__)흠.. 오늘 멀티 스레드의 구현에 대해서 한번 생각해 봤습니다.꼭 있어야 할꺼 같기는 한데, 구현할려고 하니 약간의 벽을 느끼게 되네요.제가 볼때는 멀티 스레드를 구현하는 방법은 두가지가 있다고 생각합니다.( 순전히 저 혼자 생각이에요. 오해마시길... ㅡ_ㅡ;;; )한가지 방법은 스레드를 커널 레벨에서 생성을해서 Process 처럼 하나의 Task 영역을 먹는 방법이죠.이렇게하면, 커널이 볼때는 스위칭 할때 두개의 process가 떠있는거 처럼 생각되기때문에, 속도면에서 별로 손해도 없고 구현에도 크게 문제가 없는 방법 같습니다.다만, 문제가 되는것이 fork시나 exec시에 프로세스가 만들어놓은 Thread를 잘 관리를 해줘야 한다는 단점이 있습니다. 특히 옴팡지게 많은 스레드를 가진놈을 fork()할때는 거의 자살할 정도의 복잡성을 요하지 않을까 생각됩니다. ㅡ_ㅡ;;;머 역시 그놈의 exit() 역시 자살할정도의 주의가 필요할꺼 같은데...다른 한가지 방법은 Application Level에서 멀티 스레드를 구현하는 방법입니다.이건 머 한 프로세스의 CPU Time을 나누서 내부적으로 잘 스위칭 하는 방법이라커널이 보기에는 몇개의 스레드가 생기던 하나의 Process이기 땜시롱 fork()나exec()할때 그 프로세스만 잘 복사해주면 별 문제 없는 방법인거 같습니다.개인적으로 볼때 두번째 방법이 땡기긴 하는데, 어떻게 나누어 쓸지에 대한 생각이없어서 역시 이것도 빡시군요.당장 구현하기에는 첫번째 방법이 좋고, 조금 앞을 내다본다면 두번째 방법을택해야 할꺼 같은데...제가 듣기로는 linux의 pthread가 Application Level의 thread라는데, 한번 눈여겨볼 필요가 있겠군요.아아... 너무 멀고도 험합니다 그려.. ㅡ_ㅠ...머 좋은 방법 없을까요??그럼 좋은하루 되세요(__)

Android App

Posted by 호기심 많은 kkamagui(까마귀, 한승훈)

댓글을 달아 주세요

  1. Favicon of http://blog.naver.com/sanjuro1 BlogIcon sanjuro1 2004.05.31 18:14  댓글주소  수정/삭제  댓글쓰기

    휴~ 말만들어도 어려워 보이는데요.

  2. Favicon of http://kkamagui.codesum.org BlogIcon kkamagui 2004.06.01 10:24  댓글주소  수정/삭제  댓글쓰기

    안녕하십니까 까마굽니다 (__)

    아, 네 별로 어려운 내용은 아닌데, 제가 말을 너무 어렵게 쓴거 같군요. ^^;;;

    요지는 Thread를 Kernel Level로 만들것이냐, Application Level로 만들것이냐

    하는 것이죠.. ^0^/~

    그럼 좋은하루되세요 (__)