Legacy
-
-
-
캐시알고리즘 - LRU(Least-recently-used) Page ReplacementLegacy/Algorithm 2015. 4. 29. 14:33
출처 - http://egloos.zum.com/judoboyjin/v/4545185 LRU(Least-recently-used) Page Replacement 앞에서 언급한 최상의 OPT알고리즘이 실현 불가능하기 때문에 차선책으로 고안해낸것이 바로 이 알고리즘이다. Optimal 알고리즘이 앞으로 가장 적게 사용될것을 선택하는 것과는 달리 이 알고리즘은 과거에 가장 오랫동안 사용되지 않은 것을 선택하게 된다. 예) 다음의 reference string과 3 frames이 있다고 가정하고, Page fault를 체크해보자. 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1 최초의 7 0 1 이 프레임에 들어가고 2가 프레임에 들어가기 위해서 7을 victim으로 선택하게 된다. 7 ..
-
소수 구하기 최적의 알고리즘(2)Legacy/Algorithm 2015. 4. 22. 03:56
출처 - http://marobiana.tistory.com/91 소수 구하기 최적의 알고리즘 1편에서 (http://marobiana.tistory.com/89) 주어진 수보다 작은 수의 소수들로 나누는게 성능이 좋다고 했었는데,그것보다 더 좋은 알고리즘을 찾아냈다.ㅋㅋ이것보다 더 좋은 방법은 아마도 없을 것이라 자신함 !! 만약 있다면 댓글 달아주시기 바람. 요번에는 c++로 구현해보았음. 1. 알고리즘 에라토스테네스의 체 (Sieve of Eratosthenes)라는 알고리즘이다.아래 그림을 보면 무엇인지 알 수 있다. 120까지의 모든 소수를 구한다고 해보자. 2부터 120까지 배열에 모두 넣은 후소수가 아닌 것들을 모두 체크해버리는 것이다. 2를 제외한 모든 2의 배수를 체크한다.3을 제외한 모..
-
소수 구하기 최적의 알고리즘(1)Legacy/Algorithm 2015. 4. 22. 03:55
출처 - http://marobiana.tistory.com/89 한달 전에 면접에서 소수를 손코딩하라는 명을 받았다. (인성면접이라는 훼이크에 당해버렸음 @_@) 소수에 대해서는 깊이 생각해본적이 없었는데..이번일을 계기로 더더욱 최적의 방법을 생각하는 버릇을 들이겠다는 다짐을 하게되었다. 1. 소수(Prime Number)란 무엇인가? 2, 3, 5, 7, 11, 13, 17.... 약수가 1과 자기 자신 뿐인 수이다. 2. 소수를 어떻게 구할까? (알고리즘) 약수가 1과 자신뿐인 것을 확인해야한다. 그러려면??? 즉, 자기 자신보다 작은 수들을 나누어봐서, 하나라도 나누어지면 소수가 아닌 것이다.(어떤 수의 배수이면 안된다는 것) 보통은 여기까지만 생각하고 코딩을 시작할 것이다.그런데 조금만 더 생..
-
CreateThread / _beginthread / _beginthreadex 의 설명Legacy/Win API 2015. 4. 18. 15:20
원문 : http://mgun.tistory.com/653?srchid=BR1http%3A%2F%2Fmgun.tistory.com%2F653 스레드를 생성하는 함수. 스레드는 커널에 의해 생성되는 리소스이므로 커널 오브젝트가 생성될 것이고 함수 호출이 끝나면 커널 오브젝트를 의미하는 핸들이 리턴 될 것이다. 1. Win32 API의 CreateThread 대신 C Run Time Library의 _beginthreadex를 써야하는 경우 1.부동 소수형 변수나 함수를 사용할 경우 2.C의 malloc과 free나 C++ 의 new와 delete 를 사용할경우 3.stdio.h 나 io.h에서 어떤 함수를 호출한다면 4.strtok() 나 rand() 와 같이 정적 버퍼를 사용 하는 어떤 런타임 함수를 호..
-
2015.03.08 메일슬롯 IPCLegacy/뇌자극 - WinSysProg 2015. 3. 8. 15:05
메일슬롯과 IPC에 대한 고찰메일슬롯은 한쪽 방향으로만 메시지를 전달할 수 있다.따라서 두 프로세스가 서로 메시지를 주고 받을 수 있는 채팅 프로그램을 구현하기 위해서는 두 개의 메일 스롯을 생성해야함.채팅 프로그램 같은 양방향 통신을 구현하기 위해서는 IPC가 적절함.메일슬롯은 브로드캐스팅 방식의 통신을 지원. 메일슬롯은 생성과 동시에 Usage Count가 1이다. 참조하는 프로세스가 메일슬롯을 생성한 프로세스 하나이기 때문이다. 자식 프로세스의 경우에는 생성과 동시에 참조하는 프로세스가 둘이 되기 때문에 2가 되는 것이다. 메일슬롯뿐만 아니라, 프로세스와 쓰레드를 제외한 다른 모든 커널 오브젝트는 생성과 동시에 Usage Count가 1이 된다. Signaled vs Non-Signaled커널오브젝..
-
2015.02.20 Inter Process Communication 프로세스간 통신Legacy/뇌자극 - WinSysProg 2015. 2. 19. 18:54
IPC(Inter-Process Communication) - 프로세스간 통신(IPC)프로세스 간에 서로 공유하는 메모리가 존재하면 프로세스간 통신은 아주 쉽지만, 그러한 영역이 없다면 보조 수단이 필요함. 실제로 프로세스들은 서로 '만나서' 데이터를 주고 받는 것이 불가능함.프로세스들이 서로 만날 수 없는 이유프로세스는 각자 자기에게 할당된 독립적인 메모리 공간을 가지게 된다. 이 때 프로세스들은 자신에게 할당된 메모리 공간 이외에는 접근이 불가능하다.왜 프로세스간에 만나지 못하게 디자인 했을까?레이스 컨디션과 같은 상황은 생각해 보면 쉬울 듯. Windows에서는 다양한 IPC 기법을 제공하고 있다. 메일슬롯 방식의 IPC메일슬롯은 파이프와 더불어 대표적인 IPC 기법이다. 메일슬롯은 편지를 넣을 수..