목록< Index > (354)
엔지니어가 되고 싶은 공돌이

7. 1. Placement Strategies - Placement Strategies(배치 전략들): 어떤 Record에 데이터를 넣을까? 결정하는 알고리즘. 1) First-Fit Placement Strategy(최초 적합) : 빈 공간(Available List)을 보면서 충분히 큰 공간을 찾아, 처음부터 탐색하여 가능한 한 최대한 앞에 Record를 삽입. 2) Best-Fit Placement Strategy(최적 적합) : 빈 공간(Available List)을 크기에 따라 Ascending Order로 정리하고, 삽입할 Record를 포함할 정도로 큰 것 중에서 제일 작은 Record Slot에 삽입. 3) Worst-Fit Placement Starteg..

6. 1. Data Compression - 저장공간을 절약하고, 전송시간을 단축시키는 방법에는 무엇이 있을까? 1) Run-Length Encoding - Definition: 반복되는 데이터를 압축시켜서 ff, value, count로 표현. ex) 15 16 17 17 17 17 17 17 17 17 18 19 20 20 20 20 20 20 20 21 22. Compression -> 15 16 ff 17 08 18 19 ff 20 07 21 22. - 무분별하게 사용하게 되면, 원래의 데이터보다 더 커질 수 있습니다. 2) Huffman Code - Definition: 파일 내에서 문자마다 출현빈도가 다르다는 사실에 착안하여, 빈도가 높은 문자에는 적은 자리수의 코드를,..

5. 1. Record Search - 저장된 레코드에서 필요한 레코드를 어떻게 찾을 수 있을까? 1) Sequential Search -> O(n) - Definition: 원하는 레코드를 찾기 위해 처음부터 검색. - 성능평가방법: Read 함수의 호출 수로 측정. (메모리 내에서 비교시간은 무시합니다.) - Non Blocking과 Blocking 2가지 방법이 있습니다. - Blocking이 Seek Time을 줄여서 성능개선을 가져오지만 두 방법 모두 검색에 소요되는 시간은 O(n)입니다. - Pros: 프로그래밍이 쉽고, 파일의 형태를 단순하게 할 수 있다. - Record의 개수가 적은 파일들에서 사용합니다. 2) Direct Access -> O(1) - Definition: 원하는..

4. 1. Field and Record - 데이터를 입력할 때, 연속적인 바이트 형태로 저장할텐데 어떻게 데이터를 구별할 수 있을까? Field와 Record로 구분. - Field: 파일을 구성하는 요소 중에서 가장 작은 단위. 1) 고정길이필드(Fixed Length Fields): 각 Field의 길이를 고정시키고, Field 마다 데이터를 넣습니다. 매우 간단하지만, 공간의 낭비가 심합니다. 2) 길이 지시자(Length Indicator): Field 앞에 필드의 길이를 저장합니다. 3) 구분자(Delimiter): | 와 같은 구분문자를 사용하여 필드를 구별합니다. 4) 키워드(Keyword): 각각의 필드를 “Keyword = field Value”의 형태로 작성합니다. - 1..

3. 1. Computer Storage Devices 1) Magnetic Tape: 플라스틱으로 만든 테이프 위에 자성 물질을 바른 테이프. 옛날에 주로 사용하였으며, 순차접근만 가능하고 속도가 느려서, 데이터 백업용으로 주로 사용. 2) CD: Pit(구멍)와 Land(평평한 면)으로 구성되어, 빛을 쏘아서 돌아오는 빛의 세기를 측정하여 데이터를 읽음. Pit에서는 빛이 분산되어 세기가 약해집니다. CD에서 DVD로, DVD에서 Blu-Ray Disk로 발전하였습니다. 3) USB Flash Drive: USB는 컴퓨터 단자와 연결하는 Connector, 데이터를 저장하고 읽는 Flash Memory, Connector-Flash Memory 사이에..

2. 1. Structure of Hard Disk Drive - Track Storage: Sectors Per Track X Sector Storage. - Sector Storage는 주로옛날 HDD는 512Byte, CD or DVD는 2048Byte, 최신 HDD는 4096Byte입니다. - Cylinder Storage: Tracks Per Cylinder X Track Storage. - Disk Storage: Number of Cylinders X Cylinder Storage. 2. 2. Cluster - File Manager: 파일의 논리적인 부분을 물리적 위치로 대응시키는 역할. 파일을 Cluster로 간주. - Cluster:..

1. 1. a Physical File and a Logical File - Physical File: 컴퓨터의 기억장치에 저장된 바이트들의 연속. - Logical File: OS의 도움을 받아서 DB나 다른 데이터 구조에 저장된 가상의 파일. - 동일한 데이터를 어떤 관점에서 보냐의 차이입니다. Physical은 파일매니저, Logical File은 Application. 1. 2. File I/O- File을 여는 방법은 이미 존재하는 파일을 여는 방법과 새로운 파일을 생성하는 방법 2가지가 있습니다. - File을 닫는 것은 그 파일을 기록하기 위해 사용했던 버퍼가 비워지고, 기록한 모든 것이 파일에 기록됨을 보장한다는 뜻입니다. - Cfp = fopen(filename, mode);fcl..

10. 1. Linker - Linking: 여러 개의 object file을 모아서, 하나의 execution file로 변환하는 과정. - Linker: Linking을 수행하는 Program. - Why Use a Linker? 1) Linking이 필요한 이유는 오늘날 소프트웨어 개발은 하나의 커다란 파일 또는 모듈에서 이루어지는 것이 아닌 여러 개의 작은 파일 또는 모듈에서 개발되기 때문에 이를 통합할 수 있는 과정이 필요합니다. 2) 작은 모듈로 나누어져 있기 때문에 모듈 하나를 수정해도, 다른 모듈들을 재컴파일 할 필요 없이 수정된 모듈만 컴파일하면 되므로, 효율성(Efficiency in Time and Space)이 좋아집니다. - What does a Linker do? 1) 여러 ..

9. 1. Array - Array Allocation: Data Type Array_Name[Length]; - Array를 Allocation 하게되면 연속적으로 저장하게 됩니다. ex) char val[5] => Memory Address: x, x+1, x+2, x+3, x+4. int val2[4] => Memory Address: x, x+4, x+8, x+12. - Array Access: %edx에 Array의 Start Address가 있고, %eax에 Array의 Index가 있다고 가정하면, Movl (%edx, %eax, 4), %eax 로 Array Value를 가져올 수 있습니다. [int Type Array] ex) int arr[5] = {1, 3..

8. 1. Stack - Process에서 Data는 Stack에서 관리합니다. - pushl: %esp 레지스터에서 4(64bit 컴퓨터는 %rsp 레지스터에서 8)를 감소시키고, 스택에 지정한 레지스터의 값을 넣습니다. - popl: 스택의 값을 레지스터에 넣고, %esp 레지스터에서 4(64bit 컴퓨터는 %rsp 레지스터에서 8)를 증가시킵니다. 8. 2. Procedures - Procedure Call(call label): stack에 return address(현재 PC 값)를 push하고, Label로 Jump합니다. - Procedure Return(ret): stack에서 return address를 pop하고, retrurn adderss로 Jump합니다. - Call..