Blake Woo

해시테이블

해시테이블 {key, value}로 데이터를 저장하는 자료구조로 원하는 값을 빠르게 검색할 수 있는 자료구조이다. 이러한 속도가 가능한 이유는 해시테이블이 내부 적으로는 배열로 구현되어있고 이러한 배열에 엑세스할 수 있는 인덱스를 해시 함수를 통해 산출해내기 때문에 검색의 대부분의 경우는 매우 빠르다. 해시함수 입력값이 있을 때 함수 f에 넣었 을때...

트리

트리 점이 있고 이 점이 선으로 연결된 형태를 그래프라고 한다. 이러한 점은 각각 노드, 정점, vertex라고 불리며 연결한 선은 edge 혹은 간선이라고 부른다. 트리는 기본적으로 이러한 그래프에서 파생된 것이다. 순환이 없는 그래프라고 봐도 무방한데 순환이 없는 형태라면 필연적으로 한 개의 노드에서 모든 가지가 나오는 형태로 만들어진다. 이때...

배열과 연결 리스트

배열과 연결리스트 컴퓨터의 자료구조에 대해서 배울때 처음 언급되는 것은 변수 이후에는 배열이다. 이러한 배열은 메모리 동적할당에 대해서 배우고 나서 연결리스트와 구분되어 한번 말이 나오게된다. 다음의 그림을 보자 배열은 간단히 말해서 메모리상에서 연속되어 할당되는 것이고 연결리스트는 메모리에서는 떨어져서 할당되나 특정 링크를 통해 연결되어 있...

컴퓨터 기초 개요

컴퓨터 기초 컴퓨터 기초가 좀 부족한가 싶어서 관련 내용 포스팅을 시작할까 한다. 사실 다 알고있는 내용이지만 그걸 막힘없이 설명할 수 있냐고하면 또 대답하기 애매해지는터라 파인만 선생님의 가르침에 따라 해당 내용을 전혀 모르는 사람도 이해할 수 있는 형태로 포스팅을 진행 해 볼까 한다. 목차 파트는 잦은 업데이트가 있을 예정이다, 또한 항목...

32bit kernel - 2

페이징 및 세그멘테이션 설정 이전에 페이징과 세그멘테이션에 대한 포스팅을 진행한 적이 있다. 페이징과 세그멘테이션을 소프트웨어적인 방법으로 구현하여 사용할 수도 있겠지만 으레 그러하듯 하드웨어적으로 구현된 것 보단 성능이 떨어진다. 그렇기 때문에 아키텍처 자체에서 페이징과 세그멘테이션을 지원한다. 페이징과 세그멘테이션을 활성화하기 위해서 우리가 살펴...

멀티태스킹 - 2

스케줄링 Task의 실행 순서를 정하는 것을 스케줄링이라고 한다. 가장 크게 나누면 두 개로 나눌 수 있다. 바로 선점형과 비선점형 스케줄링이다. 선점형 vs 비선점형 프로세스가 끝나기전에 다른 프로세스가 먼저 실행 할 수 있다면 선점형 현재 실행 중인 프로세스가 종료되기 전에 다른 프로세스가 먼저 실행될 수 없다면 비 선점형이다. 비선점형 스케줄링...