Windows OS - 스레드(Thread) 2편
Windows OS - 스레드(Thread) 2편
2022.02.01스레드가 마지막으로 사용했던 레지스터 정보인 Context를 로드한다. 할당받은 시간을 모두 사용하고 다시 메모리에 Context를 저장시킨다. (상술 했듯이 커널메모리 안의 스레드 커널 오브젝트 안에 Context가 저장된다.) 이게 반복되면 시스템에 돌고있는 스레드들이 모두 실행되는 것이다. 윈도우즈 OS는 실시간 OS가 아닌 선점형 멀티스레드 기반 OS이다. OS에 의해 물흐르듯 일어나는 스케쥴링 작업을 App을 작성하는 프로그래머의 마음대로 변경하거나 교체 하는 것에는 한계가 있다. App에서의 스레드 통제는 어디까지나 OS의 판단하에서 적합한 기준내에서 실행된다. 스레드의 정지와 재개 스레드의 정지란 해당 스레드가 CPU시간을 할당받지 않도록 설정하는 것이다. 스레드 커널 오브젝트 내에는 정지카..
Windows OS - 스레드(Thread) 1편
Windows OS - 스레드(Thread) 1편
2022.01.12아주 기본적인 스레드의 개념. '프로세스는 왜 존재하는가' 를 생각해본다.왜 존재하는가? 간단하다. 프로세스는 프로그램 실행을 위해 존재한다. 프로그램 실행은 어떻게 이루어지는가? 프로그램은 명령어의 집합이다. 기계어 명령어를 파일로 만들면 그게 우리가 실행파일이라고 부르는것이 된다. 기계어 명령어가 CPU로 전달되면 CPU는 그것을 이해하고 실행한다. 이게 프로그램의 실행이다. 아무튼, 프로세스는 프로그램 실행을 위해 존재한다고 했다. 여기서 스레드라는 개념이 등장한다. 스레드라는 개념은 프로세스의 개념보다는 비교적 늦게 등장했다. 프로세스가 가지는 프로그램 실행의 개념을 스레드에게 100% 이식했다. 간단한 비유를 하자면 부서가 분리된 것이다. 이 스레드라는 것이 프로그램을 실행한다. 프로세스와 스레..