본문 바로가기

thread2

운영체제 7 || thread (2 현대의 컴퓨터들은 코어의 개수가 올라강메 따라서 멀티스레딩을 좀 쉽게 할 수 있는 여러 방법이 고안됨 1. Implicit Threading 스레드를 만들고 관리하는걸 개발자가 직접 하는게 아닌 컴파일러와 런타임 라이브러리를 통해 OS의 도움을 받아서 관리하는것. 즉 개발자는 멀티스레딩을 고려하지 않아도 백그라운드에서 멀티 스레딩으로 변환됨 1-1. Thread Pools > 개발자가 스레드를 직접 만들긴 함, 하지만 라이브러리나 OS가 공간을 할당받고, 미리 정해진 개수의 스레드를 만듦 이러한 공간을 스레드 풀이라고 함. > 스레드 풀에서 만들어진 스레드들은 Sleep상태로 대기함 1-2. Fork Join > 멀티 스레딩은 결국 연산속도를 빠르게 하기 위함. > 분할 정복과 비슷한 매커니즘 > 메인 .. 2021. 4. 17.
운영체제 6 || 스레드(threads) 멀티프로세서 구조는 기본적으로 cost가 높음 -개발이 어렵다. -속도에 있어서 오버헤드가 있다. 위와 같은 문제들을 스레드가 해결해 줌 1. What is Thread? - 스레드는 CPU이용의 기본 단위 - 스레드는 프로그램에서 일련의 명령들을 실행함. 이 스레드는 두 가지 형태로 나뉘는데 a. 싱글 스레드 프로세스 - 스레드가 단일이라서 thread state가 하나만 존재함. - 이 싱글 스레드가 하나에 코어에만 매핑이 됨 b. 멀티 스레드 프로세스 - 스레드 여러개가 별도의 실행 흐름을 가짐 1-1. 스레드끼리 공유하는 것 - Code - Global variable - Opened files - Heap 1-2. 스레드 각자 가지고 있는 것 - Set of registers (Program C.. 2021. 4. 17.