ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Windows
    Platform/프로세스 2009. 2. 10. 21:10
    작업 객체
    CreateJobObject()
    OpenJobObject()
    AssignProcessToJobObject()
    SetInformationJobObject()
    QueryJobInformationObject()

    커널 오브젝트
    Usage Counting
    Security

    프로세스
    커널 오브젝트 핸들 테이블
    액세스 마스크
    Flags
    HANDLE_FLAG_INHERIT
    CreateProcess()
    ExitProcess()
    TerminateProcess()
    WaitForSingleObject()
    WaitForInputIdle()
    GetExitCodeProcess()
    GetProcessHandleCount()
    GetCurrentProcess()
    GetModuleFileName()
    GetModuleFileNameEx()
    SetHandleInformation()
    GetHandleInformation()
    DuplicateHandle()
    DUPLICATE_SAME_ACCESS
    GetEnvironmentVariable()
    SetEnvironmentVariable()
    GetProcessTimes()
    SetPriorityClass()
    GetPriorityClass()
    SetThreadPriorityBoost()
    ShellExecute()
    GetProcessMemoryInfo()
    EnumProcesses()
    OpenProcess()
    CloseHandle()
    EnumProcessModules()
    GetModuleFileNameEx()
    GetModuleBaseName()

    스레드
    프로그램의 설계와 구현을 단순화한다.
    신뢰성, 가독성, 유지보수성

    C 런타임 라이브러리를 쓰는 경우
    코드 생성시 멀티스레드 라이브러리를 사용하도록 한다.
    프로젝트에 _MT(/MT or /MD) 매크로가 정의된다.
    디폴트 라이브러리 대신 LIBCMT.LIB(or MSVCRT.LIB)와 링크한다.
    스레드 생성시 다음 함수를 사용한다.
    _beginthreadex() // LIBCMT.LIB(MSVCRT.LIB)
    //_beginthead()
    _endthreadex()
    //_endthread()

    CreateThread()
    CREATE_SUSPENDED
    CreateRemoteThread()
    OpenThread()
    ExitThread()
    TerminateThread()
    CloseHandle()
    GetExitCodeThread()
    GetCurrentThread()
    GetCurrentTheadId()
    DuplicateHandle()
    //GetThreadId() // ???
    GetProcessIdOfThread()
    GetThreadIOPendingFlag()
    SuspendThread()
    ResumeThread()
    SetThreadPriority()
    GetThreadPriority()
    Sleep()
    SwitchToThread()
    _kbhit()    // #include <conio.h>

    파이버(co-routine?)
    스레드 안에서 태스크들을 분리
    커널 지원 쓰레딩(kernel-supported threading)을 사용하지 않는 UNIX 응용들을 포팅하는데 도움이 된다.

    ConvertThreadToFiber()
    ConvertFiberToThread()
    CreateFiber()
    DeleteFiber()
    GetFiberData()
    GetCurrentFiber(()
    SwitchToFiber()
    파이버 로컬 저장소


    참조 사이트:
Designed by Tistory.