일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- directx
- map
- Algorithm
- 수광 소자
- Arduino
- c++
- 아두이노
- queue
- 자료구조
- 아두이노 소스
- 통계학
- C언어
- Deque
- set
- priority_queue
- 아두이노 컴파일러
- WinAPI
- 라인트레이서
- html
- list
- stl
- arduino compiler
- Stack
- 컴퓨터 그래픽스
- Array
- LineTracer
- Visual Micro
- 시스템프로그래밍
- 운영체제
- vector
- Today
- Total
목록Programming (135)
Kim's Programming
앞에서 이용했던 FILETIME 구조체 부터 알아보겠습니다 FILETIME 구조체의 구조는 다음과 같습니다. 1234typedef struct _FILETIME { DWORD dwLowDateTime; DWORD dwHighDateTime;} FILETIME, *PFILETIME, *LPFILETIME;cs위 구조체는 시간 정보를 나타내는 8바이트 자료형으로 UTC 기반의 시간을 표현하는 구조체입니다. UTC란 Coordinated Universal Time의 약자로 세계시간의 기준을 의해 정의된 시간입니다. 간단히 설명하면 현재 시간과 1601년 1월 1일 사이의 시간을 100나노초 단위로 환산한 값이 UTC입니다. 아무튼 이번엔 GetFileTime 함수를 이용한 파일 시간을 UTC값을 얻은 다음 보..
파일의 열기 그리고 닫기 파일을 열떄는 다음의 CreateFile 함수를 이용하게 됩니다. CreateFile 함수는 다음과 같습니다.123456789CreateFile( LPCSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile );Colored by Color Scriptercs 각 파라메터와 그에 들어갈 값 몇개만 알아보겠습니다. lpFileName : 오픈할 파일의 이름을 지정 dwDesiredAccess : 읽기/쓰기 모드를 지정하..
커널 오브젝트(Kernel Object) 이전에 CreateProcess함수를 통해서 프로세스를 생성하였는데, 이를 정확히하면 함수를 이용하여 윈도우즈라는 운영체제에게 프로세스 를 만들어 달라고 요청한 것이고 윈도우즈는 그에 맞게 프로세스를 만들어 준것입니다. 또한 생성된 프로세스의 관리와 소멸, 생성 그리고 상태변화 까지도 모두 하게 됩니다. 이런식으로 여러개의 프로세스를 관리하자면 운영체제 입장에서 항상 기억하거나 갱신해야 할 정보가 생깁니다. 예를 들어 locked , Ready등의 상태정보와 우선순위등은 항상 프로세스 내부에 저장되어야하며 항상 갱신되어야 합니다. 그래야만 스케줄러가 그에 맞게 프로세스를 운용할 수 있습니다. 이러한 정보들을 저장하기 위해 프로세스당 프로세스를 관리하기 위한 구조체..
프로세스의 생성 물론 프로세스 생성은 아무 파일이나 마우스로 집어다가 더블클릭하면 프로세스를 생성할 수 있습니다. 하지만 또 다른 방법으로도 프로세스를 생성할 수 있습니다. 프로그램실행중에 또 하나의 프로세스를 생성하는 것입니다. 윈도우즈에서는 프로세스를 만들기 위해서 CreateProcess함수를 제공합니다. CreateProcess함수를 호출하는 하는 프로세스를 부모프로세스(Parents Process)라고 하고 CreateProcess로 만들어진 프로세스를 자식프로세스(Child Process)라고 합니다. 생성하는 프로세스와 생성되는 프로세스는 부모 자식관계를 가지게 됩니다. CreateProcess은 다음과 같은 파라메터 들을 가지고 있습니다.123456789101112BOOL CreatePro..
우선순위 큐(Priority Queue) - 정의 우선순위 큐란 우선 순위를 가진 항목들을 저장하는 큐 입니다. 즉, 우선 순위가 높은 데이터가 먼저 나갑니다. 우선순위 큐(Priority Queue) - 활용 우선순위 큐의 활용 분야는 다음과 같습니다. 시뮬레이션 시스템 (사건의 시각 입장으로)네트워크 트래픽 제어OS 작업 스케줄링 우선순위 큐(Priority Queue) - 다른 자료구조와의 차이 자료구조 삭제되는 요소 스택(Stack) 가장 최근에 들어온 데이터 큐(Queue) 가장 먼저 들어온 데이터 유선순위 큐(priority Queue) 가장 우선순위가 높은 데이터 우선순위 큐(Priority Queue) - 힙(Heap)으로 구현 우선순위 큐의 구현은 힙(Heap)을 이용합니다. 힙이란 완전..
이진 트리(Binary Tree) 이번부터는 동적할당으로 만든 트리를 가정할 것입니다. C로는 동적할당을 통한 이진트리 구현이 불가능하기 때문에 임의로 연결한 동적 이진 트리를 통해서 확인해야합니다. 이진 트리(Binary Tree) - 순회 이진트리의 순회란 계층적 구조로 저장되어 있는 이진 트리의 모든 노드를 한 번씩 방문하여 노드가 가지고 있는 데이터를 목적에 맞게 처리하는 것을 의미합니다. 순회를 위해 수행할 수 있는 작업은 3가지로 정의 할 수 있습니다. 현재 노드를 방문하여 데이터를 읽는 작업 : D현재 노드의 왼쪽 서브트리로 이동하는 작업 : L현재 노드의 오른쪽 서브트리로 이동하는 작업 : R 이진 트리가 순환적으로 정의되어 구성있기 때문에 순회 작업또한 서브트리에 대해서 순환적으로 반복하..
이진 트리 (Binary Tree) - 정의 이진트리란 트리의 노드 구조를 일정하게 정의하여 트리의 구현과 연산이 쉽도록 정의한 트리입니다. 또한 이진이라는 단어에서 의미처럼 모든 노드가 2개의 서브 트리를 가지고 있는 트리를 의미입니다. (서브트리는 공집합일 수 있습니다.) 이진트리의 모든 노드는 왼쪽 자식노드와 오른쪽 자식 노드를 가집니다. 자식노드는 최소 0개부터 최대 2개 까지 가질 수 있습니다. 이진 트리 (Binary Tree) - 특성 이진트리는 노드의 개수가 n개일때 n-1개의 간선의 개수를 가지게 됩니다. root를 제외한 (n-1)개의 노드가 부모 노드와 연결되는 한개의 간선을 가지기 때문에 이런 결과가 나오게됩니다. 또한 높이가 h인 이진 트리가 가질 수 있는 노드의 최소 개수는 h+..
트리(Tree) - 특성 지금까지 포스팅했던 자료구조(스택(Stack), 리스트(List), 큐(Queue) 등)들은 선형구조였습니다. 하지만 오늘부터 포스팅 할 트리(Tree)는 계층적인 구조를 나타내는 자료구조입니다. 원소들간에 1:多의 관계를 가지는 비선형구조입니다. 트리(Tree) - 응용 분야 트리는 계층을 이용하는 모든 곳에서 이용되게 됩니다. 계층적인 조직 표현 조직도같은 계층적인 모양도 트리로 표현가능합니다. 컴퓨터 디스크의 디렉토리 구조 디렉토리도 트리를 통해 표현이 가능합니다. 인공지능(AI)에서의 결정트리(Decision Tree) 인공지능에서 앞선 다음 행동들을 결정하기 위해서 트리를 사용합니다. 트리(Tree) - 용어 트리에서만 사용하는 용어들이 있는데 이 용어 들을 알아보겠습니..