Get Started. It's Free
or sign up with your email address
대학강의 by Mind Map: 대학강의

1. 컴퓨터 구조론

1.1. Datapath

1.1.1. Multicle cycle

1.1.1.1. 하나의 instruction이 끝날때 까지 다른 instruction을 수행하지 않으며, instruction에 따라 clock이 다르다

1.1.1.2. 하나의 instruction에 대한 cycle을 쪼갠다

1.1.1.2.1. MDR(Memory Data Register) 존재

1.1.1.2.2. ALU가 하나로 통합되어있다.

1.1.2. Pipeline

1.1.2.1. 기본용어

1.1.2.1.1. IF

1.1.2.1.2. ID

1.1.2.1.3. EX

1.1.2.1.4. MEM

1.1.2.1.5. WB

1.1.2.2. Hazrd

1.1.2.2.1. data hazard : register마다 dependency가 존재하는 경우 발생(RAW, WAR 등이 존재하지만, RAW만 존재한다고 가정)

1.1.2.2.2. structure hazard : 두 개의 instruction(read, write)가 동시에 하나의 hardware resource를 접근하는 경우 발생

1.1.2.2.3. Control hazard : : Branch instruction에 의하여 instruction의 수행 순서가 변하는 경우

1.2. MEMORY

1.2.1. Bandwidth

1.2.1.1. One-word(32bit)

1.2.1.2. Wider(64bit)

1.2.1.3. Interleaved(32bit)

1.2.1.3.1. 4개의 memory에서 1byte씩 할당 가져온다.

1.2.2. Cache

1.2.2.1. 연결 방식

1.2.2.1.1. Direct Mapped

1.2.2.1.2. N - way associative

1.2.2.2. cache block index(num) =total logical block number % total cache block number

1.2.2.3. bit

1.2.2.3.1. dirty bit

1.2.2.3.2. reference bit

1.2.2.3.3. valid bit

1.2.2.4. Cache miss

1.2.2.4.1. instruction miss

1.2.2.4.2. data miss

1.2.2.5. multilevel cache

1.2.2.5.1. primary : CPU + cachesmall and fast

1.2.3. Loaclity

1.2.3.1. temporal locality : 최근에 사용하였다면다시 사용할 가능성이 높다.

1.2.3.2. spatial locality : disk에 있는 instruction이 순서대로 갈 확률이 높은니, memory에 지역적으로 올린다.

1.2.4. Write

1.2.4.1. write through

1.2.4.1.1. write가 이루어지면 바로 cache와 memory에 내용을 update

1.2.4.2. write back

1.2.4.2.1. write된 block을 dirty block으로 변경, 이후에 또 다시 dirty block에 write가 되면 해당 block은 buffer로 이동 혹은 memory에 update

1.2.5. level-2 : CPU와 memory 사이 정확성

1.2.6. Vitual memory

1.2.6.1. Address translation

1.2.6.2. Page Fault

1.2.6.3. TLB

2. Database

2.1. 5장

2.1.1. Advanced SQL

2.1.1.1. Recursive Queries

2.1.1.1.1. with recursive prereq_dept(course_id, prereq_id, depth) as (select course_id, prereq_id, 0 from prereq union select prereq.course_id, prereq_depth.prereq_id, (prereq_depth.depth + 1) from prereq, prereq_depth where prereq.prereq_id = prereq_depth.course_id

2.1.1.1.2. monotic decrease

2.1.2. OLAP

2.1.2.1. 자동집계시스템 multidimensional data의 summary view

2.1.2.2. multidemensional data

2.1.2.2.1. : dimension attribute와 measure attribute로 modeling 가능한data

2.1.2.3. pivot table(2차원)

2.1.2.3.1. : 다각도의 자동 집계 테이블

2.1.2.3.2. hierarchy

2.2. 7장

2.2.1. ER-model

2.2.1.1. 차이점

2.2.1.1.1. non-atomic

2.2.1.1.2. Derived attribute

2.2.1.2. 개념

2.2.1.2.1. entity (tuple)

2.2.1.2.2. entity set (relation)

2.2.1.3. Mapping Cardinality

2.2.1.3.1. candidate key, super key가 변경됨.

2.2.1.4. E-R Diagram

2.2.1.4.1. redundant attribute

2.2.1.4.2. roles

2.2.1.4.3. weak entity set

2.3. 8장

2.3.1. Relational Database Design

2.3.1.1. normalization theory

2.3.1.1.1. no redundancy

2.3.1.2. relational model의 모든 domain이 atomic

3. 오퍼레이팅 시스템

3.1. Deadlock

3.1.1. 정의 : 한없이 수행되지 않는 상태. resource의 hold & wait일 때 발생 가능.

3.1.2. 중요 개념

3.1.2.1. detection

3.1.2.1.1. single instance

3.1.2.1.2. multiple instance

3.1.2.2. prevention

3.1.2.2.1. 4가지 필요조건 중 한가지 이상을 해결함으로 써 deadlock을 방지하는 것

3.1.2.3. avoidance

3.1.2.3.1. banker's algorithm

3.1.2.3.2. resource allocation graph

3.1.2.4. recovery

3.1.2.4.1. check point & roll back

3.1.2.4.2. termination

3.2. Memory Management Strategies

3.2.1. address translate : virtual address -> phsical address

3.2.2. Back ground

3.2.2.1. MMU(Memory Management Unit) 사용

3.2.2.1.1. Register

3.2.2.1.2. TLB

3.2.2.2. address binding

3.2.2.2.1. symbolic address

3.2.2.2.2. when?

3.2.2.3. Dynamic Loading

3.2.2.3.1. 특정 function, routine들을 호출 시에 load시킨다.

3.2.2.3.2. os의 도움이 필요없이 library

3.2.2.3.3. error routine

3.2.2.4. Dynamic Linking

3.2.2.4.1. execution time에 link한다.

3.2.2.4.2. os의 도움이 필요

3.2.2.4.3. shared library

3.2.3. 기법

3.2.3.1. contiguous allocation

3.2.3.1.1. MMU

3.2.3.1.2. drawback

3.2.3.2. paging

3.2.3.2.1. 특징

3.2.3.2.2. MMU

3.2.3.2.3. 주요 개념

3.2.3.2.4. address translate

3.2.3.2.5. drawback

3.2.3.3. segmentation

3.2.3.3.1. MMU

3.2.3.3.2. 주요 개념

3.2.3.4. IA-32

3.2.3.4.1. 2-level page table을 사용.

3.2.3.4.2. logical address (48bit) -> segmentation -> linear address (32bit)-> paging -> physical address

3.2.3.4.3. logcial address (48bit) = selector (16bit) + offset (32bit)

3.3. Virtual Memory Management

3.3.1. demanding page

3.3.1.1. 요청이 있을 때 paging

3.3.1.2. valid-invalid bit

3.3.1.2.1. memory에 존재하지 않는다

3.3.1.2.2. process의 영역이 아니다

3.3.1.3. Page fault

3.3.1.3.1. EAT = (1 - p) * memory access time + p * page fault service time

3.3.1.3.2. Replacement

3.3.2. thrashing

3.3.2.1. memory 공간이 한정되어 process의 개수가 증가함에 따라 swapping이 지속됨. 그로 인하여 cpu utilization이 감소한다.

3.3.2.1.1. sol

3.3.2.2. working set model

3.3.2.2.1. window

3.3.2.2.2. WSS <= frame entry : no thrashing

3.3.3. Kernel memory allocate

3.3.3.1. buddy

3.3.3.1.1. 2^n 단위로 page 할당

3.3.3.1.2. 용어

3.3.3.2. slab allocation

3.3.3.2.1. slab이라는 memory 공간을 미리 확보, malloc의 return 값 시작주소를 넣는다.

3.3.3.2.2. cache는 하나 이상의 slab으로 구성

3.3.3.2.3. internal fragmentation이 없다.

3.4. File system

3.4.1. 개념

3.4.1.1. file : 관련 있는 정보들을 모아놓은 집합

3.4.1.1.1. attribute

3.4.1.2. data는 반드시 file의 형태로 저장된다.

3.4.1.3. OS의 역할

3.4.1.3.1. storage management

3.4.1.3.2. file management

3.4.1.4. partition마다 하나의 file system이 들어갈 수 있다.

3.4.1.5. directory structure

3.4.1.5.1. single : naming problem

3.4.1.5.2. two level, tree structured : no file share

3.4.1.5.3. acyclic graph

3.4.1.5.4. general graph : loop

3.4.1.6. path

3.4.1.6.1. relative path

3.4.1.6.2. absolute path

3.4.1.7. link

3.4.1.7.1. hard link

3.4.1.7.2. soft link

3.4.1.8. mounitng

3.4.1.8.1. window : 자동으로 drive name을 할당

3.4.1.8.2. linux : 임의의 directory에 mount 하여야한다.

3.4.1.9. file system은 계층적으로 구성되며, disk에 저장된다.

3.4.2. job

3.4.2.1. translate name & offset to data block

3.4.2.2. directory management

3.4.2.3. operation management

3.4.3. logical block number 찾기

3.4.3.1. 필요 정보

3.4.3.1.1. disk

3.4.3.1.2. memory

3.4.4. VFS

3.4.4.1. vnode : file system의 inod에 unique한 number 할당

3.4.4.2. standard api를 이용하여 mapping

3.4.5. directory implentation

3.4.5.1. directory entry를 이용

3.4.5.2. linear list

3.4.5.2.1. search time

3.4.5.3. hash table

3.4.5.3.1. collision

3.4.6. blcok allocatio method

3.4.6.1. contiguous allocation

3.4.6.1.1. sequential access

3.4.6.1.2. direct access

3.4.6.1.3. extent-based allocation

3.4.6.2. linked allocation

3.4.6.2.1. bad block

3.4.6.2.2. storage overhead

3.4.6.2.3. FAT (file allocation table)

3.4.6.3. indexed allocation