IT105 I/O, CPU Bound 이번 포스팅은 CPU 및 IO Bound에 대해 알아보려고 한다. (이와 관련되서는 아래의 글을 참조)https://hellsoft.se/https-hellsoft-se-understanding-cpu-and-io-bound-for-asynchronous-operations-6511c70a5685 IOwaitCPU 입장에서는 로컬 파일 시스템 또는 네트워크 상의 소켓에서 데이터를 Read/Write 할 때 많은 시간을 대기하게 된다. 이러한 이유를 이해가기 위해서는 하드웨어 레벨로 내려가야하는데, 단순히 하드웨어는 관련 데이터를 전달 받을 때까지 사용할 수 없기 때문이다. (하드웨어는 관련 데이터를 모두 전달 받을 때까지 CPU는 대기하게 된다.)즉, RAM을 사용하지 않는 Read/Write와 같은 I.. 2019. 6. 23. Window Sliding Technique 알고리즘 기법 중 윈도우 슬라이딩(Window Sliding)에 대해 알아보려고 한다. 말 그대로 윈도우 슬라이딩은 윈도우를 움직이는 것이다. 즉, k 크기의 윈도우를 먼 쪽으로 움직인다. (물론 윈도우를 움직이는 방식은 문제를 어떤 식으로 정의하는지에 따라 달라질 수 있다.) 한 예를 들어보면,Array[] = {5, 2, -1, 0, 3}, 윈도우 크기 k = 3라면, 인덱스 0번 부터 연속되는 3개를 포함하는 윈도우를 오른쪽으로 한 칸씩 움직이게 되며 인덱스 2번이 마지막이 된다. (슬라이딩 윈도우 정의를 위한 단순 예시) 그러므로 해당 기법을 정리하면 아래와 같이 간단하다.1. 윈도우 크기를 정한다.2. 윈도우 크기 만큼 인덱스 0번 부터 마지막 까지 움직이다. (고정된 크기의 윈도우에 항상 값이.. 2019. 6. 22. [번역] CPU Basics: Multiple CPUs, Cores, and Hyper-Threading Explained CPU에 대한 좋은 글이 있어서 번역 및 의역해보려고 한다.https://www.howtogeek.com/194756/cpu-basics-multiple-cpus-cores-and-hyper-threading-explained/(이해가 되지 않는 분은 해당 URL을 참고하시면 됩니다.) 컴퓨터에서 CPU는 기본적으로 프로그램 실행과 같은 계산적인 작업을 수행한다. 그러나 현대 CPU는 멀티 코어, 하이퍼 스레딩과 같은 다양한 특징을 제공한다. (심지어 멀티 CPU 까지) 이와 같은 내용을 해당 포스팅에서 나열해 보려고 한다. CPU의 클럭 속도는 CPU의 성능을 비교할 때 사용된다. (사실 이보다 단순히 설명되는 것 없다.) 멀티 코어와 하이퍼 스레딩을 지원하는 CPU는 하이퍼 스레딩을 지원하지 않는 같.. 2019. 6. 18. Trie Trie에 대해 알아보려고 한다. Trie를 간단히 설명하면 문자열을 저장하는 트리 기반의 자료 구조이다. 자세한 내용을 알아보기 전에 코드를 살펴면서 어떤 것인지 알아보도록 하자. 그림 1. Trie 그림 1을 보면 트리의 노드 마다 각각의 문자가 담겨있는 것을 확인 할 수 있다. 이는 Trie는 문자열을 문자로 하나씩 쪼개서 자식 노드로 만든다. 그러므로 그림 1을 다시 살펴보면..- geer- geeks- geekt- geez총 4개의 문자열이 있음을 알 수 있다. (추가로, 문자열의 각 인덱스가 노드의 깊이인 것 또한 확인 할 수 있다.)그런데 특이하게도 루트 노드는 특정한 문자로 표현되지 않는다. 곰곰이 생각해보면 쉽게 알 수 있는데 예를 들어 'G' 문자로 루트 노드를 시작하면 Trie에서는 .. 2019. 6. 11. 이전 1 ··· 8 9 10 11 12 13 14 ··· 27 다음