본문 바로가기

분류 전체보기

(72)
[WINDOWS VIA C/C++] 09. 커널 오브젝트를 이용한 스레드 동기화 https://www.hanbit.co.kr/store/books/look.php?p_code=B2974835990 제프리 리처의 Windows via C/C++(복간판)이 책은 윈도우 XP, 윈도우 비스타, 윈도우 서버 2008까지 내용을 포괄한다. 이미 윈도우 10이 출시된 지 오래지만 윈도우의 기본 구조는 변하지 않아 아직까지도 이 책은 윈도우 시스템 프로그래www.hanbit.co.kr해당 책을 읽고 학습 목적으로 간단하게 정리한 글입니다.개요이전 챕터에서는 유저오브젝트 기반의 스레드 동기화 방법에 대해 알아보았고이번 챕터에서는 커널오브젝트 기반의 동기화 방법을 알아보자 커널 오브젝트를 사용하기 때문에 커널 모드 전환이 필요하고 이는 CPU 사이클을 많이 소요하는 무거운 작업이다. 대부분의 커널 ..
[WINDOWS VIA C/C++] 08. 유저 모드에서의 스레드 동기화 https://www.hanbit.co.kr/store/books/look.php?p_code=B2974835990 제프리 리처의 Windows via C/C++(복간판)이 책은 윈도우 XP, 윈도우 비스타, 윈도우 서버 2008까지 내용을 포괄한다. 이미 윈도우 10이 출시된 지 오래지만 윈도우의 기본 구조는 변하지 않아 아직까지도 이 책은 윈도우 시스템 프로그래www.hanbit.co.kr해당 책을 읽고 학습 목적으로 간단하게 정리한 글입니다.개요스레드는 통신 없이 자신만의 작업을 할 때 성능이 좋지만, 스레드는 대부분 독립적으로 실행되지 않는다. 스레드는 아래의 상황에서 스레드 간 통신이 필요하다.스레드들이 공유 리소스에 동시에 접근하며 일관성 유지가 필요할 때스레드가 다른 스레드에게 작업이 완료되..
[WINDOWS VIA C/C++] 07. 스레드 스케줄링, 우선순위, 선호도 https://www.hanbit.co.kr/store/books/look.php?p_code=B2974835990 제프리 리처의 Windows via C/C++(복간판)이 책은 윈도우 XP, 윈도우 비스타, 윈도우 서버 2008까지 내용을 포괄한다. 이미 윈도우 10이 출시된 지 오래지만 윈도우의 기본 구조는 변하지 않아 아직까지도 이 책은 윈도우 시스템 프로그래www.hanbit.co.kr해당 책을 읽고 학습 목적으로 간단하게 정리한 글입니다.개요Windows OS는 preemptive OS이기 때문에 이를 이해하기 위해 스케줄링에 대한 이해도 필요하다.일반적으로 Windows는 20ms정도 마다 thread를 선택하여 context switch한다. Windows는 언제나 특정 Thread를 정지..
[WINDOWS VIA C/C++] 06.스레드의 기본 https://www.hanbit.co.kr/store/books/look.php?p_code=B2974835990 제프리 리처의 Windows via C/C++(복간판)이 책은 윈도우 XP, 윈도우 비스타, 윈도우 서버 2008까지 내용을 포괄한다. 이미 윈도우 10이 출시된 지 오래지만 윈도우의 기본 구조는 변하지 않아 아직까지도 이 책은 윈도우 시스템 프로그래www.hanbit.co.kr해당 책을 읽고 학습 목적으로 간단하게 정리한 글입니다.개요이번 챕터에서는 프로세스와 스레드의 차이, 책임, 스레드의 커널 오브젝트 등에 대해 알아본다. 프로세스와 마찬가지로 스레드 또한 2가지 요소로 구성되어있다.1. 스레드 컨텍스트(실행 상태): 스레드를 관리하기 위한 목적으로 OS가 사용하는 커널 오브젝트2...
[WINDOWS VIA C/C++] 05.잡 https://www.hanbit.co.kr/store/books/look.php?p_code=B2974835990 제프리 리처의 Windows via C/C++(복간판)이 책은 윈도우 XP, 윈도우 비스타, 윈도우 서버 2008까지 내용을 포괄한다. 이미 윈도우 10이 출시된 지 오래지만 윈도우의 기본 구조는 변하지 않아 아직까지도 이 책은 윈도우 시스템 프로그래www.hanbit.co.kr해당 책을 읽고 학습 목적으로 간단하게 정리한 글입니다.개요잡 오브젝트를 사용하면 프로세스를 묶어 다루거나, 샌드박스를 통해 프로세스에 제약을 걸 수 있다.https://learn.microsoft.com/ko-kr/windows/win32/api/jobapi/nf-jobapi-isprocessinjob IsProc..
[뇌를 자극하는 윈도우즈 시스템 프로그래밍] 20장 메모리 관리 가상 메모리 컨트롤Reserve, Commit, FreeReserve는 예약 Commit은 할당, Free는 메모리가 할당되지 않은 상태이다. 페이지의 총 개수는 가상 메모리의 전체 크기 / 페이지 하나의 크기 이다. Commit 상태는 실제로 물리 메모리에 할당이 이루어진 메모리이다. Free 상태는 메모리 할당이 이루어지지 않은 상태이다. 그리고 Reserve는 가상 메모리 상에서 미리 메모리를 확보해놓는 상태이다.이 시점에서 해당 페이지는 실제로 메모리가 물리메모리와 매핑되지는 않았지만 다른 용도로 사용되지 않도록 확보해놓는다.메모리 할당의 시작점과 단위메모리를 할당할 때는 기본적으로 메모리 할당을 시작할 주소와 할당할 메모리 크기가 필요하다.일반적으로 페이지는 4KB이기 때문에 메모리 할당시점은..
[WINDOWS VIA C/C++] 04.프로세스 https://www.hanbit.co.kr/store/books/look.php?p_code=B2974835990 제프리 리처의 Windows via C/C++(복간판)이 책은 윈도우 XP, 윈도우 비스타, 윈도우 서버 2008까지 내용을 포괄한다. 이미 윈도우 10이 출시된 지 오래지만 윈도우의 기본 구조는 변하지 않아 아직까지도 이 책은 윈도우 시스템 프로그래www.hanbit.co.kr해당 책을 읽고 학습 목적으로 간단하게 정리한 글입니다.Chapter 04: 프로세스개요이번 챕터에서는 시스템이 수행 중인 애플리케이션(프로세스)을 관리하는 방법에 대해 알아본다. 프로세스는 두 개의 컴포넌트로 구성된다.1. 프로세스 컨텍스트(실행 상태): 프로세스를 관리하기 위한 목적으로 OS가 사용하는 커널 오브..
[WINDOWS VIA C/C++] 03.커널 오브젝트 https://www.hanbit.co.kr/store/books/look.php?p_code=B2974835990 제프리 리처의 Windows via C/C++(복간판)이 책은 윈도우 XP, 윈도우 비스타, 윈도우 서버 2008까지 내용을 포괄한다. 이미 윈도우 10이 출시된 지 오래지만 윈도우의 기본 구조는 변하지 않아 아직까지도 이 책은 윈도우 시스템 프로그래www.hanbit.co.kr해당 책을 읽고 학습 목적으로 간단하게 정리한 글입니다.Chapter 03: 커널 오브젝트 개요이번 챕터에서는 커널 오브젝트, 핸들, 이를 다루는 API에 대해서 알아본다.커널 오브젝트란?윈도우 개발자는 파일 오브젝트, 뮤텍스 오브젝트, 파이프 오브젝트, 스레드 오브젝트 등 여러 커널 오브젝트를 생성하고 다룬다.커널..