CS

CS정리 - 3

reasontaek 2021. 8. 15. 13:38

빅엔디언

- MSB(최상위 비트)가 가장 낮은 주소에 위치

- 네트워크에서 데이터를 전송할 때 주로 사용

- 양수/음수를 바로 파악 가능

 

리틀엔디언

- MSB가 가장 높은 주소에 위치

- 마이크로 프로세서에서 주로 사용

- 바로 연산 가능

 

프로세스

- 운영체제로부터 독립된 메모리 영역을 할당 받음

- 프로세스끼리 통신하기위해서는 IPC 이용

- 최소 1개의 쓰레드(메인 쓰레드)를 가진다.

 

컨텍스트 스위칭

- 인터럽트를 발생시켜 CPU에서 실행중인 프로세스를 중단하고, 다른 프로세스를 처리하기 위한 과정

- 현재 실행중인 프로세스의 상태(Context)를 먼저 저장하고, 다음 프로세스를 동작시켜 작업을 처리한 후 이전에 저장된 프로세스의 상태를 복구

 

멀티 프로세스

- 컨텍스트 스위칭을 위한 오버헤드(캐시 초기화, 인터럽트 등) 발생

- 통신이 어려움

 

멀티 쓰레드

- 통신이 쉽고 자원 공유 용이

- 하나의 쓰레드에 문제가 생기면 전체 프로세스 영향

- 여러 쓰레드가 하나의 자원에 동시 접근하는 경우 동기화 문제 발생할 수 있음

 

세마포어와 뮤텍스의 차이

- 뮤텍스는 락을 걸은 쓰레드만이 임계영역을 나갈 때 락을 해제 가능

- 세마포어는 Signaling 메커니즘으로 락을 걸지 않은 쓰레드도 Signal을 사용해 락 해제 가능

- 세마포어의 카운트를 1로 설정하면 뮤텍스처럼 사용가능

 

페이지 폴트

- 실제 메모리에 원하는 페이지가 없는 경우 발생

- 가상메모리는 하드디스크에 저장되어 있기 때문에, 페이지 폴트가 발생하면 I/O에 의한 속도의 저하 발생

 

페이지 교체 알고리즘과 LRU(Least Recently Used)

- 실제 메모리의 페이지 중에서 가장 오랫동안 사용되지 않은 페이지를 선택하여 교체

 

데이터베이스

인덱스

- 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 구조

 

인덱스의 자료구조

- 해시 테이블

    - 컬럼의 값으로 생성된 해시를 기반으로 인덱스 구현

    - 시간 복잡도 O(1)

    - qnemdgh(<, >)와 같은 연속적인 데이터를 위한 순차검색이 불가능

- B+ Tree

    - 자식노드가 2개 이상인 B-Tree를 개선시킨 자료구조

    - B Tree의 리프노드들은 LinkedList로 연결하여 순차검색을 용이하게 하였다.

    - 해시테이블보다 나쁜 O(밑이 2인 Logn)의 시간 복잡도를 갖지만 해시테이블보다 흔하게 사용

 

DB 정규화

제 1정규형: 모든 속성 값이 원자 값을 갖도록 분해

제 2정규형: 제 1정규형을 만족하고, 기본 키가 아닌 속성이 기본 키에 완전함수종속이도록 분해

제 3정규형: 제 2정규형을 만족하고, 기본 키가 아닌 속성이 키본 키에 직접 종속하도록 분해

BCNF 정규형: 제 3정규형을 만족하고, 함수 종속성이 X->Y를 성립할 때 모든 결정자가 X가 후보 키가 되도록 분해

'CS' 카테고리의 다른 글

CS정리 - 2  (0) 2021.08.14
CS 정리 - 1  (0) 2021.08.13