WSP16

LJM·2023년 7월 28일
0

컴퓨터지식

목록 보기
17/41

커널 오브젝트에 할당되는 숫자! 핸들(Handle)

우선순위 정보는 프로세스 커널 오브젝트에 존재한다
SetPriorityClass 함수를 통해서 할 수 있다
그리고 특정 커널 오브젝트를 가리키려면 핸들이 필요하다

"커널 오브젝트 핸들", "오브젝트 핸들" 이라고도 불린다

핸들 정보는 어디서?

핸들 정보를 얻는 방법은 커널 오브젝트의 종류에 따라서 다양하다
GetCurrentProcess 함수는 현재 실행되고 있는 프로세스의 핸들을 얻을 때 사용되는 함수 이다.

SetPriorityClass(GetCurrentProcess(), HIGH_PRIORITY_CLASS)

위의 코드를 보면 자기자신의 핸들을 가져와서 우선순위를 높이고 있음을 알 수 있다

Operation1 프로그램
Operation2 프로그램

Operation1 프로그램은 Operation2 프로세스를 실행함
그리고 Operation1.exe 문자를 일정간격으로 출력
실행된 Operation2 프로세스에서도 Operation2.exe 문자를 일정간격으로 출력

다음은 출력 결과

Operation2.exe
Operation2.exe
Operation2.exe
OpeOperation2.exe
Operation2.exe
Oraperation2.exe
Operation2.exe
Otion1.eperation2.exe
Operation2.exe
Operation2.exe
Operation2.exe

글자 출력상태를 보면 Operation1.exe 가 출력되는동안 Operation2.exe 가 중간중간에 출력되는것을 볼 수 있다.
Operation1.exe 가 한꺼번에 출력되지 않고 부분적으로 이어서 출력되고 있음을 알 수 있다.

그것은 글자출력 함수호출이 완료 되기도 전에 다른 프로세스에세 CPU할당 시간을 넘겨주기 때문에 발생한것이다.(_fputts)

"함수가 호출되어 실행되는 중간에는 절대로 CPU의 할당 시간을 다른 프로세스에게 넘겨주지 않을것이다( 아주 큰 오해!!)"

profile
게임개발자 백엔드개발자

0개의 댓글