Sosal~ 806

Windows :: IPC MailSlot을 이용한 프로세스간 통신

/* * http://sosal.kr/ * made by so_Sal */ 프로세스간 통신? :: 독립된 두 A, B 프로세스가 서로 데이타를 주고 받는것, or 메모리 공유 보통 하나의 프로그램이 하나의 프로세스라고 생각하시는 분이 많으신데, 하나의 프로그램이 여러개의 프로세스를 생성하는 경우도 많습니다. (특히 서버측 프로그램이 다중 프로세스로 구현되는 경우가 많습니다.) 다중 프로세스 프로그램의 경우, 각각의 프로세스가 서로 데이타를 주고받는 경우가 십중팔구입니다. 흔히 A라는 프로세스가 B에게 하나씩 데이타를 send 해주고, B 프로세스는 A가 보내는 정보를 recieve 한다고 생각합니다. 하지만 프로세스간 통신은 메모리 공유한다는것이라는 엉뚱한 결론이 도출됩니다. 곧 프로세스간 통신은 메모리..

WinAPI / IPC 메일슬롯 단방향 통신 예제

/* * http://sosal.kr/ * made by so_Sal */ Windows 08. IPC 프로세스간 통신 예제소스 입니다. 잘 이해가 안되는 부분이 있다면 아래 링크를 참조하세요. LINK_ ======================= Receiver ======================= #include #include #include#define SLOT_NAME _T("\\\\.\\mailslot\\Mail")int _tmain(int argc,TCHAR *argv[]){ HANDLE hMailSlot; TCHAR messageBox[BUFSIZ]; DWORD bytesRead; hMailSlot = CreateMailslot( //우체통 생성!! SLOT_NAME, 0, MAILS..

Windows :: 프로세스 정보 추출하기

/* * http://sosal.kr/ * made by so_Sal */ 이번장에서는 프로세스들의 정보를 순간적으로 가져오는 Snapshot과 정보를 추출, 그 정보를 얻어오는 법을 이 포스트에서 보려고 합니다. 그리고 프로세스 정보를 통해서 어떤일을 할 수 있을까?? 프로세스 정보(프로세스 이름 , PID, PPID , ThreadID 등등..)을 통해 프로세스 핸들값을 도출해낼 수 있습니다. 차근차근 위의 일을 수행하는 함수를 보려고 합니다. 다음 헤더파일은 아래 함수들을 포함. #include 프로세스들의 정보를 가져오기 위해서 스냅(사진찍기)를 해야한다. 단, 사진 찍는 순간의 프로세스 정보를 가져오기 때문에 100% 신뢰할 수 없는 정보이다. (스냅샷 찍는 함수) HANDLE CreateToo..

프로세스 리스트 출력, 강제 종료 소스

/* * http://sosal.kr/ * made by so_Sal */ /* * 아래 프로그램 예제 소스에서 쓰이는 함수들은 * LINK_ 에 모두 정리되어 있습니다. * Process Name을 사용자로부터 입력받아 * 프로세스를 강제-종료하는 프로그램입니다. * / #include #include #include #include #include #include #includevoid ListProcessInfo(void); void KillProcess(TCHAR* TargetProcess);int _tmain(int argc, TCHAR* argv[]){ TCHAR TargetProcess[BUFSIZ]; //종료를 원하는 프로세스의 이름을 입력받을 버퍼 while(1){ ListProcessI..

Windows :: CreateProcess, STARTUPINFO

/* * http://sosal.kr/ * made by so_Sal */ 윈도우는 다중 태스킹 운영체제입니다. 한 시점에서 여러 개의 프로그램들이 실행되는데, 각 실행중인 프로그램은 하나의 프로세스가 되고, 하나의 프로그램이 여러개의 프로세스를 생성할 수 있습니다. 따라서 여러 사용자들이 하나의 프로그램을 실행시켜 프로세스를 생성할 수 있고, 하나의 프로세스가 또다른 프로세스를 생성할 수 있습니다. 시스템 자체도 시스템 자원을 관리하고 사용자 접근을 제어하기 위해 여러 개의 프로그램들을 실행 합니다. 프로세스 :: 시스템 자원들을 포함하는 하나의 주소공간 프로세스는 프로그램 코드, 자료, 변수들, 열린 파일들, 그리고 환경으로 구성됩니다. 하드 메모리에 저장되어 있는 프로그램을 시스템 메모리에 끌어와 ..

CreateProcess 함수 예제 소스코드

/* * http://sosal.kr/ * made by so_Sal */ CreateProcess 라는 함수를 이용하여 Notepad를 실행시키는 간단한 소스입니다. 이해가 가지 않는 부분이 있다면 아래 링크를 참조하세요.LINK_ ====================== CreateProcess ====================== #include #include #include #define DIR_LEN BUFSIZ //BUFSIZ는 운영체제마다 다른 크기를 가지고 있습니다. //한번 크기를 출력해보시는것도 좋겠네요.int _tmain(int argc, TCHAR* argv[]){ STARTUPINFO si = {0,}; //구조체 선언, 초기화 PROCESS_INFORMATION pi; si..

Blosum62 Codon table / matrix C++

/* * http://sosal.kr/ * made by so_Sal */ BLOSUM: Blocks of aAmino acid substitution matrix 블로섬의 퍼센트 동일성 중에서, 흔히 60%의 동일성에 기반한 매트릭스를 많이 사용한다. 이것은 기존의 PAM(Point Accepted Mutation ) 매트릭스보다 성능이 더 좋다. 블로섬 60등은 아래와 같은 공식으로 만들어진다.B[i,j]= (1/λ)log {(P i,j)/(ƒi,ƒj)} 출처: http://en.wikipedia.org/wiki/File:BLOSUM62.gif 예전에 짜놨던 코돈테이블을 우연히 발견해서 올려봅니다.수치로 나와있는 그림은 많지만 이 테이블을 만드는건 여간 귀찮은게 아니죠 --; Sequence alig..

c++ 개발환경에서 libsvm 사용하기 / visual studio

/* * http://sosal.kr/ * made by so_Sal */ 메인사진 출처: http://www.turn.com/news/the-magic-of-machine-learning 0. 서론1. LIBSVM 다운받기2. 튜토리얼용 Dataset 다운받기3. C++ 프로젝트 생성하여 libsvm 사용하기3.1 Cross-validation으로 데이터 feature의 성능 측정하기3.2 Training으로 모델 만들기3.3 Model을 이용하여 test 데이터 판별하기 0. 서론libsvm은 supervised-machine learning으로, 학습용으로 주어진 데이터들로부터 모델을 만들고모델에 없는 데이터셋에 대해서 정답 (classification: 1 or 0)을 예측하는 도구중 하나입니다...

C#에서 gene expression data 불러오기

/* * http://sosal.kr/ * made by so_Sal */ raw data를 읽어와 r=5, d=0.5를 이용하여 filtering 한 이후textBox1 텍스트박스에 result.Count 결과 출력해주는 프로그램 private void load_GEO_rawdata(){ List result = new List(); System.IO.StreamReader sr = new System.IO.StreamReader(@"C:\Users\bpark\Desktop\Gene_expression.csv"); while (sr.Peek() > -1) { string[] tokens = sr.ReadLine().Split(new string[] { ",", "8888" },StringSplitOpt..

Gene expression data Thresholding

/* * http://sosal.kr/ * made by so_Sal */ Gene_expression.csvhttp://genome-www.stanford.edu/cellcycle/ Spellman et al., (1998) 에서 raw data - tab / Tab delimited data에서 다운로드 받았습니다.빈칸(blank or null )인 경우 8888로 미리 채워놓은 데이터이기 때문에,아래 소스를 그대로 사용하실 경우에는 수정을 해주셔야 합니다. #include#include#include#include#includeusing namespace std; #define TIME_POINTS 81#define MAX_VALUE 1#define MIN_VALUE 0double threshold..