2014/07/24 41

Windows :: 프로세스와 스케쥴러 동작

/* * http://sosal.kr/ * made by so_Sal */ 프로그래밍을 직접 해보기에 앞서서 프로세스와 스케쥴러에 대해서 공부하겠습니다. 프로세스란? :: 메인 메로리로 이동하여 실행중인 프로그램 프로세스의 범위 메모리구조 + 레지스터 set 프로세스 별 독립적인 대상은 프로세스의 범주에 포함시킬 수 있다. 램보다 더 큰 공간을 할당받았다고 가정하였을때, 메인메모리에 다 들어갈 수 없으므로 하드디스크까지 그 영역을 확장시키게 됩니다. (Virtual Memory 사용) 메인메모리 뿐만 아니라 더 넓은 범위까지 포함합니다. 프로세스의 실행 프로그램을 실행시킨다는것에서 CPU를 가장 먼저 떠올리는데, 이는 ALU가 있기 때문이죠. (기본 연산장치) 이보다 더 중요한것은 register set..

Windows :: 32bit, 64bit system.

/* * http://sosal.kr/ * made by so_Sal */ 64bit와 32bit의 구분? 1. 한번에 송수신 가능한 데이터 크기 (I/O bus) 2. 데이터 처리능력 (cpu가 전체적으로 한번에 읽을 수 있는 크기) 두가지 모두 64bit 여야 64bit라고 할 수 있겠습니당. (두개가 일치하지 않을 시 오류 발생 가능성이 높아짐..) 32bit = 4byte. 우리가 흔히 알고있는 포인터 자료형의 크기. 64bit = 8byte. 64비트 컴퓨터에서 사용하는 포인터 자료형의 크기입니다. pointer의 크기가 크면 클수록 접근할 수 있는 메모리의 영역이 넓어집니다. 하지만 I/O bus가 한번에 전송할 수 있는 메모리 크기 이상이 된다면 I/O bus가 2번을 전송해야 하나의 명령어..

Windows 자료형과 MBCS와 WBCS 호환

/* * http://sosal.kr/ * made by so_Sal */ 모든 프로그램이 UNICODE 가 아니기 때문에 기존에 개발된 프로그램 호환성, UNICODE를 지원하지 못하는 운영체제 등 100% 유니코드로만 프로그램을 동작하도록 구현하지 않습니다. 그렇다면, Software를 개발할때 MBCS와 WBCS 2개 모두 개발하게 된다면 유지, 보수에 어려움이 2배가 되겠습니다. 그래서 MBCS, WBCS 모두 호환하게 되는 프로그램을 구현하는것으로 결론에 도달하게 되는데, 그래서 Windows에는 이를 해결시켜주는 메크로가 존재합니다. #include에서 정의되어 있는 Windows 스타일의 자료형을 살펴보죠. (WinString.cpp 자료 참조) typedef char CHAR; typede..

Windows :: 문자셋 종류, MBCS, WBCS

/* * http://sosal.kr/ * made by so_Sal */ 문자셋의 종류와 특성 SBCS (Single byte Character set) 문자를 표현하는데 1바이트 사용. - ASCII Code MBCS (Muiti Byte Character Set) 한글은 2바이트, 영문은 1바이트 - Multi : 문자열의 종류에 따라 다른 크기를 가진다. WBCS (Wide Byte Character Set) 문자를 표현하는데 2바이트 사용. - UNICODE 안정적이기 때문에 많이 사용한다. #include #includeint main(void){ char str[] = "ABC한글"; int size = sizeof(str); int len = strlen(str); printf("배열의 크..

LINQ를 이용한 객체 데이터 정렬

/* * http://sosal.kr/ * made by so_Sal */ gene이라는 클레스에는 r1, r2라는 데이터가 있습니다.단순한 배열이었다면 sort 함수로 빠르게 처리하면 되지만 클레스인경우 그렇지 못합니다.따라서 이러한 객체들을 구현하기 쉬운 버블소트정도로 리스트를 새로 만드는 경우가 많은데LINQ를 사용하면 필요한 데이터만 정렬해서 쉽게 뽑을 수 있습니다. 아래 예제는 gene이라는 클레스를 10개 생성하여 r1, r2 2개의 데이터를 무작위로 집어넣고r1을 기준으로 객체들을 정렬하여 r1, r2 모두를 출력하는것입니다. class gene{ public int r1; public int r2; public gene(int i, int j) { r1 = i; r2 = j; }}//r1,..

C#: 텍스트 프로그램 구현하기

/* * http://sosal.kr/ * made by so_Sal */ 간단하게 뚝딱 텍스트 프로그램을 만들어봅시다.기본 윈도우즈 폼 형식으로 C# 프로젝트를 만든 후파일을 저장하기 위해 Form1.cs 기본 파일에 헤더를 넣어줍니다.using System.IO; 1. 메뉴 만들기2. 텍스트박스 만들기3. 메뉴 함수 구현하기1 - Open File4. 메뉴 함수 구현하기2 - Save File5. 메뉴 함수 구현하기5 - Exit 1. 메뉴 만들기 디자인 모드에 들어가서 위와같이 메뉴스크립트를 만들어 주시면 아래와같이 메뉴가 생성되고C#에서 자동으로 메뉴를 추가할 수 있게 다 만들어져있습니다.간단히 메뉴를 넣어봅시다.Open File / Save File / Exit 2. 텍스트박스 만들기 그리고 윈..

C#: Thread 사용법과 프로퍼티, 예제

/* * http://sosal.kr/ * made by so_Sal */ http://sosal.tistory.com/105 스레드 개념에 대한 설명은 위 링크로 대신하겠습니다. 1. Thread의 실행2. Property - IsBackground3. Property - Priority 1. Thread의 실행 필요헤더:using System.Threading; 스레드 생성 함수은 아래와같이 정의되어 있습니다. public Thread (ThreadStart start [.int maxStackSize])public Thread (ParameterizedThreadStart start [.int maxStackSize]) ThreadStart 함수는 파라미터가 존재하지 않을 때 간편하게 사용할 수 있..

C#: Base64 Encoder/Decoder 프로그램 소스

/* * http://sosal.kr/ * made by so_Sal */ using System.Windows.Forms; //메시지 박스같은 윈도우폼에서 사용되는 도구 생성 C# 도구상자에서 지원하는 Label을 이용하여 Plain Text, BASE64 글자를 박아넣고 TextBox를 옆에 박고, 버튼까지 만들어줍니다~~ 위에서 아래 TextBox 4개의 이름은 Encode1, Encode2, Decode1, Decode2라고 만들어 주었습니다. class Base64String{ public static string Base64Encoding(string str) { byte[] encbuff = System.Text.Encoding.UTF8.GetBytes(str); return Convert...

C#: LINQ를 이용한 데이터 처리

/* * http://sosal.kr/ * made by so_Sal */ Query: 데이터에 대해 물어보는 것으로써 기본적으로 다음 내용을 포함From: 어떤 데이터 집합에서 찾을것인가?Where: 어떤 값의 데이터를 찾을 것인가?orderby: 어떤 값으로 정렬할 것인가?Select: 어떤 항목을 추출할 것인가? //예제---------- using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Collections; namespace test_console{ class Profile //프로필 클레스 { public string Nam..