본문 바로가기

hi.pe.kr2191

쓰레드(Thread)간의 동기화(Synchronization) 멀티 태스킹을 말할때 피할수 없는것이 동기화(Synchronization)문제이다. 동기화란 멀티 태스킹 환경에서 여러개의 처리(태스크)를 서로의 진행상태에 맞추어 진행시키는것을 말한다. 문제점 코드 (플래그를 사용한 배타적 제어 코드) bool InUse = false; int func(void) { .... while(InUse) { } InUse = true; // 다른곳에서 접근 금지 File * fp = fopen("sample.dat", "wb"); if(fp != NULL) { ...... fclose(fp); } InUse = false; // 다른곳에서 접근 허용 } 이 코드의 문제점은 첫째, InUse가 false인것을 확인하는 조작가 true로 조작 하는 사이에 비록 짧지만 시간간격이.. 2009. 1. 30.
메모리 공간 사용 방법 (스택구조) 스택이란 메모리공간을 사용하는 방법 중의 하나이다. FILO(First In Last Out) 방식으로서 가장 마지막에 저장된 데이터가 가장 먼저 출력된다. 데이터의 삽입과 삭제는 저장된 최상위 항목이 위치한 Top 에서만 일어나며, 삽입과 삭제가 되어지는 위치의 주소를 가지고 있는 것을 스택포인터라고 한다. 스택포인터는 base에서 시작하여 데이터삽입시 하나 추가되고 데이터 삭제시 하나 삭제된다. 스택은 하드웨어의 인터럽트요청이나 응용프로그램의 시스템콜이 발생할 시 작업처리에 유용하다. 2009. 1. 30.
C# 기초 (Boxing과 UnBoxing) 정의 및 예제 Boxing이란 Value-Type을 Reference-Type(Object형) 으로 변환하는 것을 의미하구요. UnBoxing이란 Boxing을 반대 개념입니다. 감이 잘 안오시죠... 예제를 보겠습니다. 아...차~ 모든 데이터 형식은 Object형의 자식이다, Value-Type은 스택에 Reference-Type은 Heap에 생성됩니다. int p = 123; object o; o = p; //명시적 변환으로 (object)p로 해도 무방... 이런 구문이 있다고 한다면... 값 타입인 변수 p의 값을 참조 타입인 변수 o에 넣습니다. 이때 바로 Boxing이 일어납니다. 반대로 p = (int) o; 이렇게 하면 UnBoxing이 일어나구요. 만약에 값 타입 변수를 개체처럼 사용하고 싶다고 하는.. 2009. 1. 30.
Clustered Index 와 Non-Clustered Index Non-Clustered : 인덱스만 정렬해둔 상태를 의미한다. 인덱스에 있는 정보를 참조해서 실제 데이터를 찾아 가는 방식이므로, 데이터를 한개 읽을 때는 상관 없지만 여러개 데이터를 읽어야 되는 경우에는 적합치 않다. 적합한 사용 예) 캐릭터 테이블에서 Unique 한 값에 해당 하는 데이터 한개만 읽어오는 경우. 개념적으로 stl의 map과 비슷하다. (값과 별도로 키가 존재하므로) Clustered : 정렬 기준에 맞춰, 실제 데이터를 정렬해둔 상태. 당연히 한개의 Clustered Index만 있을 수 있다. 쿼리에서 Clustered Index를 이용할 경우 여러개의 데이터를 한꺼번에 읽는다해도 Index를 거쳐 실제 데이터를 찾아가는 과정이 없기에 연속된 데이터를 읽기만 하면 되기 때문에 훨.. 2009. 1. 30.
MS-SQL 간단 DB 백업 및 복구 Old machine의 'test' DB 백업 -> New machine의 'test' DB 복구 --------------------------------------------------------------------------------- 1. Old machine의 'master' db를 이용하여, 'test' DB detach 하기 EXEC sp_detach_db 'test', 'true' 이 과정없이, Data File과 Log File을 copy 하려하면 'test' db가 사용중이어서 copy 불가 2. Old machine의 Data File과 Log File파일 복사 하여, New machine에 붙여넣기 Data File -> C:\Program Files\Microsoft SQL S.. 2009. 1. 29.