아무튼 공부중 27

리눅스란 무엇일까. 리눅스 명령어

리눅스란 무엇일까? 리눅스는 컴퓨터 운영체제(OS)라고 할 수 있습니다. OS는 간단하게 하드웨어를 작동시키기 위한 소프트웨어 시스템이라고 생각하면 이해하기가 쉽습니다. 가까운 곳에서 찾아보면 windows, Mac OSX, iOS, Linux 등을 언급할 수 있습니다. 간단하게 윈도우를 사용하여 운영체제가 하는 일을 살펴봅시다. -> 구체적으로 말하면 운영체제의 커널(kernal)을 담당하고 있습니다. 운영체제는 무엇을 할까? with window 간단하게 운영체제에 대해 알아봅시다. 윈도우 컴퓨터에서 볼륨을 조절하거나, 폴더에 파일을 저장하거나, 인터넷에 연결하는 일들이 운영체제에서 하는 일이라고 할 수 있습니다. 하드웨어와 소프트웨어를 관리하는 시스템이기 때문입니다. 좀 더 구체적으로 살펴보면 운영..

아무튼 공부중 2023.09.20

[시프] SSD BASIC

SSD에 대해 알아보자. Overall Architecture - Flash memory : 데이터 저장 - SSD Controller : 전체적인 SSD 시스템 제어 (flash memory에 있는 값을 꺼내오거나 넘겨주거나..) - RAM Buffer(DRAM?) : SSD에서 필요한 연산을 도움 - Host-storage Interface : host와 SSD를 연결, I/O를 주고받음 ex. sata NAND Flash Chip (Package) 무언가 전하량을 잘 옮겨서 경우의 수를 잘 만든다네요. page는 block들로 이루어져있고, block은 page로 이루어져있고 page는 데이터를 다루는(I/O) 최소 단위이다. Host-Storage Interface Physical connecti..

[알고리즘] asymptotic notation(Big O, Ω, Θ, Small O)

Big O (빅오) 정의 : 점근적 상한선 주어진 복잡도 함수 c×f(n)에 대해 음이 아닌 정수 n이 N보다 크고 양수인 정수 c가 존재한다면 O(f(n))은 g(n)보다 큰 함수들의 집합이다. => g(n) ≤c×f(n) g(n)이 알고리즘에 대한 시간복잡도라면 결국 알고리즘의 시간복잡도의 최대값은 f(n)보다 클 수 없기 때문에 g(n)은 O(f(n))이라고 할 수 있다. -> g(n)은 c×f(n)보다 느리게 실행될 수 없기 때문 ∴ g(n)의 시간복잡도는O(f(n))이다. Example take c = 11 and N = 1 => 1^2+10*1 == 11(1^2)take c = 2 and N = 10 => 10^2+10 < 2(10^2) 아무튼 이런 시간복잡도를 갖고 있는 알고리즘은 n^2의 ..

[시프] Storage Evaluation Methodology | Performance Metrics

SSD의 성능을 어떻게 판단할 것인가. Storage Performance 1. Read requests - 무언가를 진행하기 위해 파일이 필요하기 때문에 빠르면 빠를수록 좋다. 2. Write requests - 작성하는 경우는 급한일이 아니기 때문에 빠르게 작성할 필요는 없다 but 작성하는 도중에 꺼지게 된다면 파일이 날아가기 때문에 빠를수록 좋다. => 빠를수록(response time), 많이 처리할수록(throughput = 단위시간당 처리할 수 있는 I/O의 개수) Device-Level vs App-Level Performance Device-level performance - storage device가 I/O requests를 얼마나 빠르게 처리할 수 있는지 -> SSD에 request..

[알고리즘] Analysis of Algorithm

Analysis of Algorithms 시간복잡도 분석(Time complexity analysis) - input size에 따라 얼마나 작동하는지 결정. - CPU, OS, 프로그래밍언어와 독립적임 평가지표(Metrics) Basic operation - Comparisons, assignments, etc. (비교를 얼마나 했는지, 할당을 얼마나 했는지?) Input size - The number of elements in an array - The length of a list - The number of columns and rows in a matrix - The number of vertices and edges in a graph 아무튼 기타 등등 시간복잡도에 영향을 주는 것들? Eve..

[알고리즘] 순차 탐색, 이진 탐색, 피보나치 수열

Problem Description(문제 설명) - Problem(문제) - Parameters : 문제 해결을 위한 변수 (S, n, x ...) - Instance : Parameters의 구체적인 변수 ? (ex. S = [10, 2, 4 , 46, 75]) - Algorithm : 문제 해결 방법 Pseudo code vs C++ - 문법을 지킬 필요가 없다. // 완벽한 코드로 작성하지 않고 알고리즘만 표현하면 됨 - 수학적 문법도 자유롭게 적을 수 있다 // low

[시프]Data Stroage & I/O

Memory Technologies - Processor 연산을 처리함 - SSD, HDD, SRAM, DRAM etc.. 파일을 저장함 -> 둘이서 데이터를 주고받으며 처리함. non-volatile memory technologies - volatile memory technologies (휘발성 메모리) :SRAM, DRAM memory라고 불림 전원이 꺼지면 날아감 - non-volatile memory technologies(비 휘발성 메모리) : SSD, HDD strorage라고 불림 전원이 꺼져도 파일을 보관할 수 있음 SRAM, DRAM, SSD, HDD 순으로 빠르지만 비쌈! 저렴하고 빠른 것을 찾아보자고~ Memory/Storage Hierarchy Processor는 Level 1 ..