본문 바로가기

programming/참고사이트

프로그래밍 상식 ( - 나만을 위한(?) )


아무거나 마구마구 적는 공간.

- 이미지영상을 입출력을 위하여 배열은 이중배열인 (ex)  unsinged char m_OpenImg[256][256] 선언

 - 이유 : 이미지 파일은 음수 값이 없고 256 그레이영상(Gray Level)이기 때문
  (unsigned char는 부호 없는 문자형 변수로 0~255까지의 정보를 표현할 수 있음)
 
어떠한 구조체나 클래스를 정의 한 후에 선언을 하고 사용할 것이다. 
그때 선언한 변수명 다음에  "."  이라든지  "->"  라는 포인터를 가리킬 경우 클래스나 구조체 안의 멤버 함수변수들의 목록을 보여준다.
이것을 intellisense 라고 명한다.

// PI 구하는 공식
pi=0.0;
pi += 4* (i % 2 ? -1 : 1) / ( 2.0 * i + 1.0);


1칸 <<(쉬프트)하면 2배,4배,8배...증가
1칸 >>(쉬프트)하면 1/2,1/4,1/8...감소

 for문의 i는 iterator의 준말이였다 -,,-;

MSB (Most Significant Bit): 최상위 비트. 이진수 숫자 중에서 제일 큰 자리수
LSB (Least Significant Bit): 최하위 비트. 이진수 숫자 중에서 마지막 자리수

endian - 메모리상에서 순서를 정하는..
 
메모리에 데이터를 저장할 때의 비트의 배열

[MFC] DC -> 그래픽에 관련된 모든 옵션을 한군대에 모아놓은 "구조체"

#include <atlstr.h>
CString을 사용하기 위한 Header [MFC 환경이 아닌 곳에서 사용됨(MFC에서는 기본적으로 제공되어 있어서 include 안해줘도 되염]

getch()   -> 입력을 받기 위해 대기..(Console 사용)  [ 살짝 다른 기능이 gertchar() 였나? ]

[ 네트워크 ] 
- SO_RCVTIMEO
 blocking 함수를 사용하는 경우(recv, ...) block에서 깨어날 시간을 지정할 수 있음. timeval로 지정하면 됨. timeout으로 빠져나오면 -1이 리턴되고, errno가 EAGAIN이 됨 (SNDTIMEO도 마찬가지)

- 블로킹 소켓은 데이터 전송 시 조건이 만족되지 않으면 무한정 대기상태에 빠짐
- 타임아웃 설정을 통해 소켓이 지정된 시간이 지나면 대기상태에서 빠져나옴


(ERROR) 이 외에 엄청 많다..-_-;;
WSANOTINITIALISED   이 함수를 사용하기 전에 성공적인 WSAStartup 함수의 호출이 없었습니다.
WSAENETDOWN         네트웍 서브 시스템에 에러가 발생했습니다.
WSAEFAULT               optval 또는 optlen 매개변수 중의 하나가 올바르지 않거나 optlen 매개변수의 값이 너무 작습니다.
WSAEINPROGRESS     블럭킹 윈속 v1.1 이 현재 진행 중이거나, 서비스 프로바이더가 콜백 함수를 여전히 처리하고 있습니다.
WSAEINVAL                level 매개변수가 잘못됐거나, 알 수 없는 값 입니다.
WSAENETRESET        SO_KEEPALIVE가 설정 되었을때, 접속이 타입아웃 되었습니다.
WSAENOPROTOOPT   알 수 없는 옵션이거나, 지원지지 않는 옵션을 사용 했습니다.
WSAENOTCONN         SO_KEEPALIVE가 설정 되었을때, 접속이 리셋 되었습니다.
WSAENOTSOCK          기술자(descriptor)가 소켓 기술자가 아닙니다.

Session - 프로세스들 사이에서 통신을 하기 위해 메시지 교환을 통해 서로를 인식한 이후부터 통신을 마칠 때까지의 기간

오버헤드

-
시스템에서 목적으로 하는 효과를 얻기 위해 본질적인 것은 아니지만 요구되는 작동
- [ Efiicient C++(책제목) ] C언어에서는 하나의 구문이 그리 많지 않은 어셈블리 명령어로 대응된다.  하지만, C++에서는 상속/ 연산자 오버로드/객체생성과 소멸등의 기능 때문에 하나의 구문이 상당히 많은 양의 어셈블리어로 대응될 수 있으며, 프로그래머가 예상치 못한 디자인 코드 상의 성능 결함이 있을 가능성이 높다. C와 C++의 이러한 차이를 가리켜 silent overhead, 조용한 오버헤드라고 이야기한다.
( 한마디로 C++에서는 객체가 지 맘대로 생성자/소멸자 등등을 호출해서 코드 결함이 있을 수 있다는거겠쥐?? )

1. bottleneck (병목현상) -> 시스템의 가용 자원 중 부하가 많이 걸려 전체 시스템 효율의 저하를 초래하는 현상. 상대적으로 적은 수의 디스크에 많은 양의 요청이 들어와서 발생하는 현상으로, 주로 디스크 기억 장치에서 일어난다.

2. hotspot -> 최대 한도의 처리를 하고 있거나 최대 한도를 초과하는 과도한 수량~~~

1. 경쟁상태 ( race condition)
: 2개 이상의 스레드가 공유 자원을 서로 사용하려는 상태

2 . 교착상태 ( deadlock)
: 스레드끼리 서로를 기다리는 상태

3. 동기화란?
-작업들 사이의 수행 시기를 맞추는 것.
(사건이 동시에 일어나거나, 일정한간격을 두고 일어나도록 시간의 간격을 조정하는 것을 이른다.)
 
4. 스레드 동기화(thread synchronization) 필요성
- 멀티 스레드를 사용하는 프로그램에서 두 개 이상의 스레드가 공유 데이터를 접근하는 경우

5. 크리티컬섹션 : 공유 자원의 독점을 보장하는 코드의 한 영역

1. TimeStamp ?
어느 시점에 데이터가 존재했다는 사실을 증명하기 위하여 특정 위치에 표시하는 시각.
공통적으로 참고하는 시각에 대해 시간의 기점을 표시하는 시간 변위 매개 변수이다.


- 혹시 이글을 보시는분이 있다면 덧글에 간단한 상식을 적어주시면 감사하겠습니다 ㅋㅋ (아마도 없겠죠 -_-;; 덧글달린적이없으니.ㅠ_ㅠ)