CS
-
[OS] - Process vs ThreadCS/면접준비 2022. 9. 29. 15:23
Process Program을 Memory 상에서 실행 중인 작업 Process마다 최소 1개의 Thread가 존재한다. ( Main Thread ) Process는 각각의 Process마다 별도의 주소 공간을 할당한다. ( 독립적 ) Memory 1. Code 코드 자체를 구성하는 Memory 2. Data static , global , 배열 등 Init된 Data들은 Data Area ( static a = 10 ) Init되지 않은 Data들은 BSS Area ( static b ) global = life cycle = Program이 죽을 때 까지 / 다른 File에서 접근하여 사용 가능 static = life cycle = Program이 죽을 때 까지 / 다른 File 및 함수에서 접근하..
-
[Database] - JoinCS/면접준비 2022. 9. 21. 02:05
Join 두 개 이상의 테이블을 서로 연결하여 데이터를 검색할 때 사용하는 방법 RDBMS에서 서로 연결되어 있는 테이블들을 원하는 조건으로 조회하기 위한 방법 Inner Join 두 테이블의 교집합, 즉 두 테이블간 JOIN 조건을 만족하는 행을 반환한다. Left Outer Join 조인 조건에서 동일한 값이 없는 행도 반환할 때 사용한다. Right Outer Join OUTER JOIN이란 조인 조건에서 동일한 값이 없는 행도 반환할 때 사용한다. Full Outer Join LEFT OUTER JOIN과 RIGHT OUTER JOIN을 합친 것으로, 양쪽 모두 조건이 일치하지 않는 것들까지 모두 결합하여 출력한다. Cross Join Cartesian Product(카디션 곱)이라고도 하며 조인..
-
[Database] - KeyCS/면접준비 2022. 9. 20. 01:45
Key 키(Key)는 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 유일한 기준이 되는 Attribute(속성)입니다. Candidate Key 튜플을 유일하게 식별할 수 있는 속성들의 부분집합을 의미합니다. 모든 릴레이션은 반드시 하나 이상의 후보키를 가져야합니다. Primary Key 기본키는 후보키 중에서 특별히 선정된 키로 중복된 값을 가질 수 없다.(Atomic) 유일성과 최소성을 가지며 튜플을 식별하기 위해 반드시 필요한 키이다. NULL 값이 있어서도 안된다. ( 무결성 ) Alternative Key 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키들을 말합니다. Super key 모든 튜플에 대해 유일성은 만족하지만, 최소성은 만족시키..
-
캐시 메모리CS/면접준비 2022. 9. 20. 01:37
캐시 메모리 속도가 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄이기 위한 메모리를 말한다. 코어 마다 독립된 L1캐시를 가진다. L1 = Cpu 내부 L2 = Cpu - main memory L3 = Mainboard 지역성 데이터에 대한 접근이 시간적 혹은 공간적으로 가깝게 발생하는 것을 말한다. 캐시의 적중률(Hit rate)을 극대화하여 캐시가 효율적으로 동작하기 위해 사용되는 성질이다. 시간 지역성 최근에 사용했던 데이터가 재참조될 가능성이 높은 특성 반복문에서 조건 변수처럼 한번 된 사용된 변수는 잠시 후 다시 참조될 가능성이 높다. 공간 지역성 최근에 사용했던 데이터가 재참조될 가능성이 높은 특성 List와 같이 연속된 접근 시, 참조된 근처 데이터와 연결될 가능성이 높다. 캐..
-
Data Lake / Warehouse / MartCS/DB 2022. 9. 19. 18:05
Data Lake 정형 데이터와 비정형 데이터를 모두 볼륨에 저장할 수 있는 중앙 리포지토리입니다 데이터는 일반적으로 먼저 처리되거나 구조화되지 않은 원시 형식으로 저장됩니다 데이터 스트림이 처리되고 도착하는 즉시 분석에 사용할 수 있는 네이티브 스트리밍을 지원합니다. 데이터 레이크는 데이터 스트림이 처리되고 도착하는 즉시 분석에 사용할 수 있는 기본 스트리밍을 지원합니다. E.g) Kafka, Hadoop, Spark Data Warehouse 모든 데이터를 함께 가져와 구조화된 방식으로 저장합니다. 일반적으로 이기종 소스의 데이터를 연결하고 분석하는 데 사용됩니다. 고성능 SQL(Structured Query Language) 작업을 지원하기 위해 데이터 구조에 의존합니다. 데이터를 저장하기 전에 사..
-
11. Cache&BlockCS/OS 2022. 8. 8. 15:37
서론 Kafka는 모든 Message(data)를 Disk에 Write하여 저장한다. Kafka에서 Producer가 Broker에 Message를 넘겨주고, Broker가 Disk에 저장하기 위해서 아래와 같이 동작. Disk Flush 시에 Disk에 직접 접근하는 것이 아닌 Page cache memory를 사용하여 속도 향상을 일으켰다. 결국 Memory mapped file과 같은 개념과 유사하게 Memory 내에 일부인 캐시 메모리에다가 Data를 저장해두고 저장하는 것으로 보인다. Cache Hardware,Software의 Component로 요청한 결과를 미리 저장해두었다가 빠르게 사용하는 것이다. I/O 과정을 거치지 않고 Cache Memory에 저장한 값을 이용하여 접근한다. 비싸기..
-
10 . File SystemCS/OS 2022. 8. 8. 15:04
File System file system or filesystem (often abbreviated to fs) is a method and data structure that the operating system uses to control how data is stored and retrieved 1. Space managements File system fragmentation occurs when unused space or single files are not contiguous. As a file system is used, files are created, modified and deleted. When a file is created, the file system allocates spa..
-
Virtual Memory란?CS/면접준비 2022. 7. 18. 17:15
Virtual Memory란? OS에서 한정된 Memory(physical Memory)를 가상화시켜 더 효율적으로 사용하기 위해 나온 개념. 어떻게 가상화 시킨다는 것이 효율적일까? Program이 실행될 때에는 전체가 Memory에 있을 필요가 없고, 실행되는 부분만 Memory에 존재하면 된다. 이를 사용하여 Physical Memory에 더욱 더 많은 Program을 올릴 수 있는 것이다. 그렇다면 어떻게 실행될 위치를 아는 것일까? MMU(Memory Management Unit) 은 하드웨어 실제 Program별 Logical Memory를 통해 Phyiscal Memory를 변환하여 준다. 가상 메모리는 어떻게 관리되는가? Paging / Segmentation / Paging+segment..