일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- 넥스트에디션 2호점
- 넥스트에디션
- PC VR
- C++ 자료구조
- 방탈출 추천
- 2021 방탈출 추천
- 이스케이퍼스
- 홍대 방탈출 추천
- C#
- 후기
- 방탈출
- 홍대 방탈출
- 홍대 덤앤더머
- 개발
- 방탈출 후기
- 추천
- 공포 방탈출
- 강남 방탈출
- 필활
- 홍대
- 꽃길
- Android
- 시스템 프로그래밍
- 윈도우 프로그래밍
- 유니티
- Unity
- 방탈출 리뷰
- 정렬 알고리즘
- C 자료구조
- 이스케이퍼스 2호점
- Today
- Total
목록윈도우 프로그래밍 (14)
행복한 연어의 이야기
1. 프로세스의 스케줄링 OS 와 RTOS(RealTime) RTOS가 OS 보다 응답속도(응답성)가 빠르다. RTOS 는 사용하는 영역이 제한적이라 일반적인 OS 보다 하는일이 적다. 일반적으로 응답성이 좋으면 좋을 수록 멀티프로세스의 성격이 약하다. 선점형 OS와 비선점형 OS 프로세스의 실행을 다른 프로세스에게 넘기는 방식에 따라서 구분한다. 비선점형의 경우 우선순위가 높은 프로세스가 대기중이라고 해서 바로 그 프로세스를 실핼하지 않는다. 선점형의 경우 우선순위가 높은 프로세스가 대기중이면 스케줄러에 의해서 높은 우선순위의 프로세스를 실행한다. 정확히 말하면 프로세스가 아닌 쓰레드 스케줄링 이지만 쓰레드 배우지 않았기에 프로세스라고 서술한다. 그래도 이해하는데는 문제가 없다. (자세한 내용은 여기(..
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. 컴퓨터 구조의 접근방법 컴퓨터를 디자인 해보자 정확히는 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 과 포인터의 크기가 달라지는 것을 확인 할수 있다. 그래서 다음과 같은..