목록윈도우즈 시스템 프로그래밍 (6)
LISTORY
뇌를 자극하는 윈도우즈 시스템 프로그래밍 책 관련 유투브 강의 정리이다. 이번 내용은 가상메모리이다. YouTube 주소 : 가상 메모리(1) 가상 메모리 가상메모리를 설명하기 전에 식당을 예로 들어보겠다. 식당에 총 10개의 테이블이 있다. 그럼 손님은 하루에 최대 몇개의 예약을 받을 수 있을까? 확실한건 10개의 팀은 아닐 것이다. 왜냐하면 테이블은 손님이 왔다가 다시 가고, 그 자리에 새로운 손님을 채울 수 있기 때문이다. 메모리에 비유하자면 실제 메모리는 10번지까지만 존재하지만 필요한 메모리는 20이다. 이럴 경우, 비어 있는 메모리를 다시 사용하는 것을 가상메모리라고 한다. 다시 설명해보겠다. 메인메모리가 있다. 이 메인메모리의 크기는 256MB이다. 하지만 실제로 CPU에서 하나의 프로그램을..
뇌를 자극하는 윈도우즈 시스템 프로그래밍 책의 유투브 강의 내용 정리이다. 이번 시간엔 저번 시간에 이어 쓰레드 풀 부분을 계속해보겠다. YouTube 주소 : 쓰레드 풀의 구현 쓰레드 풀의 구현 ⊙ 쓰레드 풀의 구현 원리 ㅆ 위를 보고 우리가 궁금할 것은 두가지이다. 1. WORK가 뭐고 할당은 어떻게?2. 쓰레드를 어떻게 저장했다가 가져올 것인가 (쓰레드의 관리) 이 두가지만 안다면 실제로 쓰레드 풀을 구현 가능하다. 이 두가지를 하나의 모델로 보여주길 위해 위의 코드를 제시하였지만, 이는 하나의 모델에 지나지 않다. 더 좋은 모델도 존재하지만 이번 강의 설명을 위해 간략화한 것이다. 일단 코드를 보자 여기서 WORK는 함수 포인터이다. 즉, 일은 함수로 구현해야 한다. 우리가 할 것은 쓰레드 풀을 ..
뇌를 자극하는 윈도우즈 시스템 프로그래밍 YouTube 강의 정리이다. 이번에는 저번 강의에 이어 7장 내용을 계속 정리하겠다. 이번 강의 주제는 Signaled vs Non-Signaled 이다. ⊙ YouTube 강의 주소 ⊙ ☞ Signaled vs Non-Signaled Signaled vs Non-Signaled ⊙ 커널 오브젝트의 상태 * 커널 오브젝트? - 커널의 리소스의 정보를 담고있는 데이터 블록 예전에 설명했던 커널 오브젝트안에 멤버 중엔, 커널 오브젝트의 상태를 반영하기 위한 boolean 형 멤버가 존재한다. 이 멤버의 값에 따른 상태는 다음과 같다. TRUE : SIGNALED 상태 FALSE : NON-SIGNALED 상태 그렇다면 이 값은 왜 존재하며, 이 상태가 변경되는 시점..
간만에 하려니까 의욕이 떨어진다... 뇌를 자극하는 윈도우 시스템즈 프로그래밍 책의 유투브 강의 정리이다. 이번에 정리할 내용은 프로세스의 생성과 소멸 부분이다. ⊙ YouTube 주소 ⊙ ☞ 프로세스와 스케줄러의 이해 프로세스와 스케줄러의 이해 이번장에서 다룰 내용은 프로세스와, 이 프로세스를 관리해주는 스케줄러에 대해서이다. ⊙ 프로세스란 무엇이냐 일반적으론 메인 메모리로 이동하여 실행중인 프로그램을 뜻한다. 하지만 이 정의는 뭔가 막연하다. 예를 들어 벽돌파일 게임을 하고있다 하자. 그럼 벽돌깨기 게임 윈도우가 프로세스인가?? 개발자 입장에서는 다르다. 그렇다면 프로세스를 이루고 있는 것이 무엇일까? 기본적으로 프로세스 생성하면 메모리가 할당된다. 예를 들어 256메가 메모리가 존재한다. 우리는 프..
뇌를 자극하는 윈도우즈 시스템 프로그래밍 책의 YouTube 강의 정리이다. 이번에 정리할 내용은 LOAD & STORE 명령어 디자인 부분이다. ⊙ YouTube 주소 ⊙ ☞ LOAD & STORE 명령어 디자인 LOAD & STORE 명령어 디자인 이번 강의에 들어가기 앞서 저번 강의 부분을 이어 정리하겠다. 사칙연산이외의 명령어를 디자인 해보자 ⊙ 명령어 구조 및 명령어 디자인 앞 강의 내용에 따르자만 CPU에서 연산한 결과는 바로 메모리에 저장하지 않고 레지스터에 저장한다. 왜 메모리에 직접 저장하는 것은 안될까? 모든 CPU의 데이터는 레지스터를 통해서 빠져나간다. 레지스터는 여러 역할이 있지만 데이터의 입출력 관련해서 역할은 데이터를 CPU로 들여보내고 내보내는 역할을 맡는다. 그럼 어차피 항..