Library 썸네일형 리스트형 A Journey of a Byte 어떤 파일을 읽어들였다고 하자. 실제로 어떤 일이 일어날까? C/C++와 같은 고급 언어에서는 물리적인 파일을 은유하는 논리적인 개체를 돌려주고, 사용자는 이 개체를 이용해서 작업을 한다. 마치 메모리에 전체 파일이 올려져 있는 것처럼 자유롭게 파일을 다루지만, 운영체제의 입장에서는 사용자가 보는 것처럼 파일 전체를 메모리에 올려두는 것이 아니다. 그것은 전적으로 운영체제의 IO 시스템이 구현하고 있는 버퍼의 상황에 달려있다. IO 버퍼는 단일 버퍼 형태로 구현될 수도 있으며, 풀링 형태로 구현될 수도 있다. 예를 들어, 사용자가 어떤 파일을 열고 이 파일의 끝에 'p'를 쓰려고 한다. 그렇다면 운영체제는 어떤 일을 하는가? 먼저, 운영체제는 그 파일이 메모리의 IO 버퍼에 존재하는지 확인하고, 존재하지.. 더보기 Heap Sort (이진) 힙 자료 구조는 완전 이진 트리로 볼 수 있는 배열 객체다. 트리의 각 노드는 배열에서 그 노드의 값을 저장하는 원소와 대응한다. 이 트리는 가장 낮은 층을 빼고는 완전히 차 있고, 가장 낮은 층은 왼쪽부터 채운다. 힙을 나타내는 배열 A는 두 가지 인자를 갖는다. 배열 A에 있는 원소의 개수를 나타내는 length[A]와 배열 A의 원소 중 힙에 속하는 원소의 개수를 나타내는 heap-size[A]다. 그리고 heap-size[A] ≤ length[A]다. 다시 말해서 A[1..length[A]]에 있는 값들이 다 유용할 수는 있지만, A[heap-size[A]] 뒤에 있는 것들은 힙의 원소가 아니다. 트리의 루트는 A[1]이다. 그리고 노드의 인덱스 i가 주어지면 부모 Parent(i), 왼.. 더보기 Orthology and Paralogy Homology는 같은 조상으로부터 내려운 구조를 말한다. 즉, 박쥐의 날개나, 영장류의 팔은 서로 homologous한 관계이다. 이들은 비슷한 기능을 할 수도 있지만 서로 다른 기능을 할 수도 있다. 중요한 것은 이들이 진화 관점에서 봤을 때 이 기관이 같은 조상으로부터 파생된 것이라는 점이다. 이와 반대로, Analogy는 서로 비슷한 기능을 하지만 서로 다르게 진화해 온 것을 말한다. 예를 들어, maple seed의 날개와 알바트로스의 날개는 서로 analogous한 관계에 있다. 서로 비슷한 기능을 하지만, 이것은 서로와 무관하게 독립적으로 진화해 온 것이다. 어떤 구조는 homologous하거나 analogous한 관계일 수 있는데, 예를 들어 박쥐의 날개와 새의 날개는 서로 어류의 등뼈에서.. 더보기 Primary Indexing and Secondary Indexing 파일 처리를 위해 인덱스를 만들었다면, 이 인덱스의 키로 어떤 것을 선택하느냐가 중요한 문제가 된다. 프라이머리 인덱싱(Primary Indexing)은 전역적으로 각 파일을 구별할 수 있는 유일한 키로 인덱스(Index)를 구성하는 방식이다. 이 방법은 데이터 추가, 삭제, 검색을 위해서 사용되는 쿼리가 프라이머리 키(Primary Key)로만 제한된다. 즉, 각각의 요청에 대해서 작업을 요청하는 쪽에서는 항상 이 프라이머리 키를 알고 있어야 하는 문제가 있다. 프라이머리 인덱싱은 매핑 함수(Mapping Function)가 필요하지 않으며, 직접 접근이 가능하다는 장점이 있다. 고정폭 길이 레코드 저장 방식을 택하고 있다면 이러한 인덱스 구성은 필요하지 않은데, 그것은 파일의 물리적인 위치를 간단한 .. 더보기 Indexing 파일 처리에 관한 요청을 받았다고 하자. 만약 파일로 구성된 데이터가 모두 메모리에 있다면 간단히 그 요청을 처리할 수 있을 것이다.여기서 메모리란, Primary Storage를 의미하는 것으로 데이터 처리 작업이 일어나는 실제적인 공간을 뜻한다. 그러나, 메모리는 상대적으로 마그네틱 디스크보다 용량이 적고 비싸기 때문에, 일반적으로 대부분의 데이터는 마그네틱 디스크와 같은 보조 기억 장치(Secondary Storage)에 저장되며, 필요한 데이터의 일부만 메모리에 올려서 사용하게 된다. 그러나, 이렇게 데이터의 일부만 메모리에 올려서 처리한다고 하더라도 디스크에서 해당 데이터를 찾는 것은 쉬운 일이 아니다. 무엇보다 디스크에 접근하는 것은 기계적인 동작을 요구하는 작업이므로, 디스크 전체를 검색하는.. 더보기 Transcription Contorl 세포에서 유전자로부터 단백질이 생산되면 그 유전자는 활성이 있다고 한다. 유전자 활성은 유전자의 전사가 중지되거나 지속되면서 조절된다. mRNA가 합성되면 자동적으로 단백질 합성으로 연결된다. 유전자의 앞부분에는 프로모터(promotor)라고 하는 특정 조절 부위가 있어서 RNA 중합효소(polymerase)같은 효소에 연결되고 여기에서 전사가 시작된다. 개시 부위 근처에 다른 단백질이 연결되는데, 전사인자가 되며 이것은 유전자의 전사를 멈추거나 또는 활성화한다. 박테리아에 있는 이러한 컨트롤 부위와 여기에 연결되어 있는 단백질들은 프랑스 생물학자 자코브(Francois Jacob)와 자크 모노드(Jacques Monod)가 1962년 발견하였다. 전사가 시작될 때 RNA 중합효소의 작용을 억제하는 단백.. 더보기 Transcription 전사(Transcript)는 억제제 또는 활성인자로 작용하는 단백질들에 의해 조절된다. 이러한 단백질들은 전사 시작점인 프로모터(promotor)와 가까이 있지만 종종 멀리 있는 경우도 있다. 생성되는 RNA는 유전자의 복사본이며, 후에 단백질로 합성되지 않는 부분인 인트론(intron)을 포함하고 있다. 인트론은 전사 과정에서 잘라져 분리되어 mRNA에는 엑손(exon) 부분만 복사되고 세포질로 전달된 mRNA는 단백질 합성을 위한 주형으로 사용된다. 즉, 유전자들은 세포핵에서 전사된다. 여기에서 인트론을 포함한 총체적인 RNA가 만들어지고 RNA 분자들은 엑손과 인트론을 구할 수 있는 효소에 의해 잘라지게 되는데, 이 과정을 스플라이싱(splicing)이라 한다. 인트론들은 잘라져서 떨어지게 되고, .. 더보기 Translation DNA 번역 과정은 다음과 같다. 서로 반대 방향으로 향하고 있는 가닥 두 개의 상보성은 단백질을 합성하기 위해 각각 한 가닥에서 복제가 되는데 이러한 과정을 전사(transcription)라 한다. 꼬여 있는 두 개의 가닥들이 풀어지면서 한 가닥이 읽혀지고 상보적으로 복사되는데, 이것은 DNA가 아니고 RNA가 된다. RNA는 DNA와 같은 핵산이지만 디옥시리보즈(deoxyribose)라는 당이 있는 자리에 ribose가 위치하게 되고, 염기(base)인 티미안(Thymian) 대신 우라실(Uracil)이 합성 과정에서 만들어진다. 한 가닥의 DNA로부터 복사된 RNA는 단백질을 합성하기 위한 기본 초석으로 사용된다. 복사된 RNA는 mRNA(messenger RNA)라 한다. 세포질에서 RNA는 단백.. 더보기 File Organization 2 데이터을 디스크에 저장하는 경우, 몇 가지 고려 사항이 있을 수 있다. 예를 들어, 데이터을 압축해서 인코딩된 상태로 저장한다면, 크기를 줄일 수 있고, 결과적으로 디스크 공간 사용과 접근 시간(Access Time)에 있어서 유리하다. 여기서 접근 시간이란, 메모리에서 보조 기억 장치(Secondary Storage)에 저장하거나, 보조 기억 장치에서 메모리로 읽어들이는데 걸리는 시간을 의미하는 것이다. 또, 이렇게 압축된 데이터는 줄어든 크기 때문에 전송 시간에서도 이득을 볼 수 있다. 데이터를 인코딩하거나 디코딩하는 것은 메모리에서 일어나는 일이며, 파일 처리에서는 메모리에서 일어나는 일은 중요 관심사가 아니다. 중요한 것은 물리적인 디스크 액세스이며, 실질적으로 이것이 가장 비싼 작업이기 때문이다.. 더보기 서열 데이터의 표현 DNA는 네 개의 블럭으로 구성되어 있다. 바로 핵산을 일컫는 것으로 뉴클리오타이드 또는 염기라고도 부른다. 단백질은 20개의 블럭으로 구성되어 있으며 이들을 아미노산 또는 잔기(residues)라고 하고 단백질 조각은 펩타이드라고 한다. DNA와 단백질은 모두 기본적으로 끝과 끝이 연결된 블럭에서 만들어진 중합체이다. 따라서 간단하게 염기, 또는 아미노산의 서열만으로 DNA 분자 또는 단백질의 구조를 요약할 수 있다. 다음은 염기의 종류를 나타내고 있는데, 당을 추가하면 아데노신(adenosine), 구아노신(guanosine), 씨티딘(cytidine), 티미딘(thymidine), 유리딘(uridine)과 같은 뉴클리오타이드를 얻고 더 나아가 인산염을 추가하면 아데니릭산(adenylic acid),.. 더보기 이전 1 ··· 15 16 17 18 19 20 21 ··· 35 다음