전체 글

건국대학교 컴퓨터공학부 학생으로, iOS/인프라에 관심이 있습니다.
1] Examples of IPC SystemsShared Memory: POSIX Shared MemoryMessage Passing: PipesOne of the earliest IPC mechanisms on UNIX systems 2] POSIX shared memoryis organized using memory-mapped fileswhich associate the region of shared memory with a fileFirst, create a shared-memory objectshm_open(name, O_CREAT | O_RDWR, 0666);Configure the size of the object in bytesftruncate(fd, 4096); → how many by..
1] Interprocess Communication Processes executing concurrently may be either independent processes or cooperating processesA process is independentif it doesn’t share data with any other processesA process is cooperatingif it can affect or be affected by the other processesClearly, any processes that shared data with other process is a cooperating process2] IPC: Inter-Process Communication Coope..
1] Operations on Processes In Unix-like O/S,,A new process is created by fork() system callThe child process consist of a copy of the address space of the parent processBoth processes continue execution at the instruction after the fork() system callparent’ pid = child process idchild’ pid = 0 (if fork call success)With one differencethe return code for the fork() is zero for the child process, ..
1] Process ConceptText sectionexecutable codeData sectionglobal varialesHeap sectionmemory that is dynamically allocated during program run timeStack sectiontemporary data storage when invoking functionssuch as function parameters, return addresses, and local variablesprocess = execution program 2] Process Life CycleNewRunningInstructions are being executedready → (dispatch) → runningWaitingthe..
회사에서 MDB 그 중에서 Altibase를 쓰는데 간단하게만 내용정리를 한다. 결국 메모리 DB는 코드 경로의 차이 때문에 빠른 것.원본이 메모리에 있으니 디스크 DB를 조회하는 여러 경로가 생략됨.다만, 로그 / 체크포인트는 디스크에 저장함 Altibase의 인덱스로 B-tree를 사용한다.PK대신 Index로 조회한다.아마 여러 조건 속에서도 Unique를 가려내기 위함이 아닐까 싶다. 통신 채널로 TCP를 사용한다. Procedure를 통해 로직을 실행한다.애플리케이션이 로직을 저장하는 것이 아닌, 로직을 DB 안에 미리 저장함으로써 분리한다.
템플릿C++ 템플릿은 generic 프로그래밍 수단이다. ACE에서도 이 기능을 상당히 많이 적용하였다.클래스 또는 함수를 일반적(generic)으로 정의하며, 컴파일 시점에서 주어진 데이터 타입으로 지정된 템플릿을 적용할 수 있도록 한다.template class max_tracker {public: void track_this (const T val);private: T max_val_;};template void max_tracker::track_this (const T val) // ← max_tracker 뒤에 필요{ if (val > this->max_val_) this->max_val_ = val; return;}클래스 밖에서 템플릿 멤버 함수를 정의..
ACE_DEBUG는 thread-safe printf 스타일 로깅 매크로다. ACE_Log_Msg 싱글턴 클래스를 감싸는 매크로로, 이중 괄호로 사용한다.#include "ace/Log_Msg.h"ACE_DEBUG((LM_DEBUG, "connecting to $s:%d\n", host, port));매크로 용도ACE_DEBUG(X)일반 로그 출력ACE_ERROR(X)에러 로그 (내부적으로 errno 캡처)ACE_ERROR_RETURN(X, Y)에러 로그 후 return YACE_ERROR_BREAK(X)에러 로그 후 break 가이드 문서에선, printf / stream 중 printf 방식을 채택한다고 나와있다. 이 둘의 차이가 뭐였는지 간단히 정리해본다.C++에서 “출력한다”는 방식이 두 갈래로 ..
내게 있어 ACE는 카드에 나오는 거나,,, 원피스에서가 전부였다.다만, 회사에서 Gateway 등 다양한 환경에서 ACE Framework를 wrapping한 자체 프레임워크 사용을 인지했고, 근본이 되는 ACE Framework의 학습을 통해 잊고 있던 네트워크 프로그래밍 + OS 기반 내용을 정리하는 기회로 만들고자 한다.혹시라도 레거시 환경을 맞이한 신입사원을 위해..1] ACE 역사, 장점, 구성 ACE는 Adaptive Communication Environment의 약자다.Adaptive = A Dynamically Assembled Protocol Transformation, Integration, eValuation Environment)다.결국 고성능 객체지향 분산 객체 프레임워크의 개..
ParkSeongGeun
Foden's Blog