Thread

    [전공생이 설명하는 OS] 쓰레드(Thread)와 동기화 문제

    [전공생이 설명하는 OS] 쓰레드(Thread)와 동기화 문제

    1. 쓰레드의 의미 프로세스의 의미를 두가지 측면에서 설명할 수 있다. (자원 관점) 자원 소유자로서의 최소 단위 (제어 관점) schedule 의 최소 단위 / 실행의 단위 보통 개발할 때 하나의 실행 흐름(single execution sequence)만 생각하기 쉽다.. 하지만 실제로 프로세스에는 실타래와 같이 여러개의 실행흐름(multiple execution sequence)이 존재할 수 있다. 이 때 실행의 단위(the unit of execution sequence)를 thread 라고 정의한다. 따라서 현대 os에서 multithreading은 단일 프로세스 내에서 여러개의 실행 흐름을 지원할 수 있는 능력을 의미한다. 가장 중요한 점은 다수의 thread는 같은 프로세스 내의 자원을 공유..

    [Python 뜯어보기] 3. 파이썬 Thread 와 GIL

    [Python 뜯어보기] 3. 파이썬 Thread 와 GIL

    자료 출처: http://www.dabeaz.com/python/UnderstandingGIL.pdf 1. Thread Execution Model (with GIL) - 파이썬을 실행시키면 => 하나의 프로세스, 하나의 인터프리터 - 파이썬 쓰레드는 real system(os) thread 이다.(unix 계열 posix thread, window 계열 window thread.) 완전히 os 가 관리한다. - GIL(global interpreter lock): 한 프로세스에는 여러 스레드가 존재할 수 있는데, 한 스레드가 인터프리터를 사용할 때 다른 쓰레드는 인터프리터를 사용할 수 없다. (인터프리터를 사용한다는 말은 파이썬 코드를 해석->실행시킨다는 말) - 즉 한 스레드가 cpu bound jo..