일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 정렬 알고리즘
- 시스템 프로그래밍
- 개발
- Unity
- 방탈출
- 꽃길
- 홍대 방탈출 추천
- 홍대
- 이스케이퍼스 2호점
- 넥스트에디션
- 홍대 덤앤더머
- PC VR
- 공포 방탈출
- 강남 방탈출
- C++ 자료구조
- 방탈출 리뷰
- 유니티
- 넥스트에디션 2호점
- 홍대 방탈출
- C#
- 2021 방탈출 추천
- C 자료구조
- 방탈출 후기
- 이스케이퍼스
- Android
- 후기
- 윈도우 프로그래밍
- 방탈출 추천
- 필활
- 추천
- Today
- Total
목록전체 글 (111)
행복한 연어의 이야기
1. 핸들 테이블과 오브젝트 핸들의 상속 IPC 통신 중 대표적인 방법으로는 메일슬롯과 파이프가 있다고 설명했다. 그 중 파이프 기반 IPC 를 소개하기전 이해하고 넘어가야할 핸들테이블에 대해 설명하고자 한다. 마이크로 소프트에서는 WIndows 운영체제를 공개하고 있지 않아 세밀한 부분까지 알 수 있는 방법은 없다. 그래서 가장 일반적인 형태로 프로세스 핸들 테이블을 관리하는 방법을 서술하며 실제로 WIndows 운영체제가 핸들 테이블을 관리하는 방법과 조금 차이가 있다. 프로세스의 커널 오브젝트 핸들 테이블 저번 7. 프로세스간 통신(IPC) 1에서 소개한 CreateMailslot 을 호출한다고 가정했을때 (CreateMailslot 함수의 반환값은 HANDLE 이다.) CreateMailslot ..
1. 프로세스간 통신 프로세스 통신 프로세스들은 자신에게 할당된 메모리 공간 이외에는 접근이 불가능 하다. A 프로세스에서 B 프로세스의 메모리 공간을 참조하지 못하니 데이터를 전달할 다른 방법을 고려해야한다. 2. 메일슬롯 방식의 IPC (Inter Process Communication) 메일슬롯(Mail Slot)의 원리 메일슬롯은 파이프와 더불어 대표적인 IPC 기법이다. 데이터를 발송하는 프로세스를 Sender 데이터를 받는 프로세스를 Receiver 라 했을때 Receiver는 데이터를 받을 메일슬롯을 생성한다. Sender는 메일슬롯을 향해 데이터를 주고 Receiver는 그 메일슬롯을 통해 데이터를 수신한다. 1. Receciver 에서 메일슬롯을 생성한다. HANDLE CreateMail..
1. 커널 오브젝트에 대한 이해 커널오브젝트란 커널에서 관리하는 중요한 정보를 담아둔 데이터 블록 커널 오브젝트의 이해 프로세스의 생성, 소멸, 상태 변화등 프로세스를 관리하는 일은 Windows 운영체제가 처리한다. A 프로세스 인지 B 프로세스인지 어떤 프로세스의 상태가 Ready 인지 Blocked 인지 등 운영체제는 프로세스에 대한 정보를 알아야 하는데 그 정보들을 모아둔 '프로세스 관리 구조체' 가 있고 이것이 커널 오브젝트 라고 할수 있다. 프로세스 내에서 쓰레드를 생성하거나 프로세스간 통신할때 등 프로세스가 생성될때만 커널 오브젝트가 생성되는 것이 아니며 커널 오브젝트의 종류에 따라서 서로 다른 구조체에 의해 생성된다. 또한 커널 오브젝트는 프로그래머가 직접 생성하거나 조작 할수 없다. 정확..
1. 프로세스(Process)의 이해 프로세스란 무엇인가? 프로세스란 실행중인 프로그램을 말한다. 게임 중에 익스플로어를 실행시킨다면 게임과 익스플로어 두개의 프로세스를 실행시킨 것이 된다. 프로세스의 구성요소? 프로그램을 실행시키면 실행파일에 존재하는 명령어들이 메모리에 올라간다. 그 메모리는 Code 영역, Data 영역, Heap 영역, Stack 영역으로 나뉘게 되는데 이 메모리 영역(Code, Data, Heap, Stack)들은 프로세스 마다 가지고 있다. 즉 위에서 게임과 익스플로어를 실행시키면 게임의 메모리 영역 과 익스플로어의 메모리 영역이 따로 생성되는 것이다. 또한 명령어를 실질적으로 수행하는 레지스터들의 상태까지도 프로세스의 일부라고 말할 수 있다. 2. 프로세스의 스케줄링과 상태변..
1. 컴퓨터 구조의 접근방법 컴퓨터를 디자인 해보자 정확히는 CPU 를 디자인 해보자 CPU 의 기본 구성요소가 ALU, 컨트롤 유닛, 레지스터 임을 리는 알고 있다. ALU와 컨트롤 유닛이 존재한다고 가정 하고 레지스터를 디자인 해보도록 하자 레지스터를 디자인 해보자 레지스터는 다음과 같은 내용으로 디자인한다. 1) 레지스터는 16 비트로 구성한다. 2) 레지스터 갯수는 기본적으로 8개로 구성한다. (r0 ~ r7) 3) 레지스터 8개 중에 4개는 용도를 미리 정해 둔다. r4 = ir (Instruction Register) r5 = sp (stack pointer) r6 = lp (link register) r7 = pc (program counter) 위의 구조는 ARM 코어 구조를 참조한 방식 ..
1. WIN32 vs WIN64 64비트와 32비트 차이 한번에 전송 및 수신 할수 있는 데이터 크기와 한번에 처리 할 수 있는 데이터 크기를 기준으로 32 비트 컴퓨터와 64비트 컴퓨터가 나뉘게 된다. 32비트와 64비트 프로그램 구현 32비트 컴퓨터 기준으로 int long 포인터 모두 4바이트 였다. 하지만 64 비트와는 조금 다르고 어떤 데이터 표현 모델을 따르냐에 따라 조금 더 달라진다. bit 운영체제 int long 포인터 32 bit 4byte 4byte 4byte 64 bit Windows(LLP64) 4byte 4byte 8byte UNIX(LP64) 4byte 8byte 8byte int 의 크기는 같지만 long 과 포인터의 크기가 달라지는 것을 확인 할수 있다. 그래서 다음과 같은..