반응형

2024/10 58

[혼공컴운] CH06 메모리와 캐시 메모리

CH06 메모리와 캐시 메모리 06-1 RAM 의 특성과 종류 주기억장치의 종류에는 크게 RAM 과 ROM 두 가지가 있고,'메모리' 라는 용어는 그 중 RAM 을 지칭하는 경우가 많다  CPU - RAM 으로부터 명령어와 데이터를 가져와서 실행RAM - 실행할 대상 저장, 휘발성 보조기억장치 - 보관할 대상 저장, 비휘발성 ex) SSD, USB, CD-ROM   DRAM Dynamic RAM 저장된 데이터가 동적으로 사라지는 RAM (전원을 꽂고 있어도 데이터가 점점 사라진다)데이터 소멸을 막기 위해 주기적으로 재활성화 Refresh 필요 일반적으로 메모리로 사용됨 - 상대적으로 소비 전력이 낮고 저렴하고 집적도가 높아 대용량으로 설계하기 용이SRAM Static RAM저장된 데이터가 정적인 (사라지..

[혼공컴운] CH05 CPU 성능 향상 기법

CH05 CPU 성능 향상 기법05-1 빠른 CPU 를 위한 설계 기법 CPU 의 속도를 빠르게 만들어보기1) 컴퓨터 부품들은 '클럭 신호'에 맞춰 일사불란하게 움직인다2) CPU 는 '명령어 사이클' 이라는 정해진 흐름에 맞춰 명령어들을 실행한다 클럭 신호가 빠르게 반복되면 CPU 를 비롯한 컴퓨터 부품들이그만큼 빠른 박자게 맞춰 움직일까? -> 일반적으로는 YES 다만 필요 이상으로 클럭을 높이면 발열이 심각해진다 클럭 속도* 클럭 속도 - 헤르츠 Hz 단위로 측정 * 헤르츠 Hz - 1초에 클럭이 반복되는 횟수클럭이 '똑-딱-' 하고 1초에 한 번 반복되면 1Hz클럭이 1초에 100번 반복되면 100Hz 코어 (Core)현대적인 관점에서 "CPU" 라는 용어를 재해석해야 한다 전통적으로 '명령어를 ..

[TIL] 유클리드 호제법 Euclidean algorithm

유클리드 호제법 Euclidean algorithm2개의 자연수의 최대공약수를 구하는 알고리즘 호제법 - 두 수가 서로 상대방 수를 나누어서 결국 원하는 수를 얻는 알고리즘  유클리드 호제법 진행 순서1. 두 수 중 큰 수를 작은 수로 나눈다2. 나머지가 0이면 작은 수가 최대 공약수가 된다3. 나머지가 0이 아니면 작은 수가 큰 수가 되고, 나머지가 작은 수가 되어    다시 큰 수를 작은 수로 나눈다  유클리드 호제법 특징1. 시간 복잡도 O(log(min(a, b))) - 두 수의 크기에 비례하여 알고리즘의 수행 시간이 결정된다 2. 재귀적으로 구현도 가능하다 ( gcd(a, b) -> gcd(b, a % b) )+ 최대공약수 성질 중에 gcd(a, 0) = a 라는 성질도 있다, 즉, 어떤 수와..

TIL 2024.10.06

[TIL] 부동소수점 Floating Point C언어

부동소수점 Floating Point 소수점의 위치가 고정되어 있지 않고 데이터의 크기나 정밀도에 따라 소수점이 자유롭게 이동할 수 있는 숫자 표현 방식  value = sign × mantissa × base^exponent sign: 숫자의 부호(양수 또는 음수) mantissa: 수의 유효 숫자 base: 일반적으로 2(이진수) 또는 10(십진수) exponent: 소수점의 위치를 결정하는 지수 + 지수에 들어가는 값의 범위 float 1~254/ double 1~2046 부동소수점 특징 * 모든 숫자를 1.xxx 형식으로 나타낸다 * 첫번째 비트는 양수, 음수를 구분하는데 사용한다  소수의 10진법 - 2진법 진법 변환IEEE 754 방식으로 소수 저장하기 1) 부호 비트 (1 bit) 0 이상이..

TIL 2024.10.05

[TIL] qsort 정렬 C언어

qsortC언어에서 제공하는 정렬 라이브러리 함수 헤더 파일  qsort 함수 원형void qsort(void *base, size_t num, size_t width, int (__cdecl *compare )(const void *, const void *));// base 정렬할 배열의 첫번째 요소를 가리키는 포인터 // num 배열의 요소 개수// width 배열 요소 하나의 크기 (바이트 단위)// (*compar) 두 값을 비교하는 함수 포인터 // 반환값 void, 즉 반환값 없음qsort(정렬할 배열의 주소, 요소의 개수, 요소 하나의 크기, 비교 함수);// 예시qsort(n, 10, sizeof(int), compare);qsort 비교 함수 예시int compare(const int*..

TIL/C언어 2024.10.05

[혼공컴운] CH04 CPU 와 작동 원리

CH04 CPU 와 작동 원리04-1  ALU 와 제어장치 ALU - 계산하는 장치 제어장치 - 제어 신호를 발생시키고 명령어를 해석하는 장치   ALU 계산하는 장치 계산을 하기 위해서는 피연산자와 수행할 연산이 필요 결과를 레지스터에 저장하는 이유는, CPU 가 메모리에 저장하는 것보다 레지스터에 접근하는 것이 빠르기 때문 플래그플래그 레지스터에 담기는 정보 - 연산 결과에 대한 부가 정보 (연산 결과 - 음수, 0 등) 연산 결과가 (결과를 담을 레지스터에 비해) 너무 클 경우, 플래그 레지스터에 결과가 담긴다  제어 장치제어 장치가 받아 들이는 정보 1) 클럭 신호  2) 해석할 명령어명령어 레지스터에 해석할 명령어가 저장되어 있다  3) 플래그 연산 결과의 부가 정보도 명령어를 해석하는 과정에서..

[정글] Week03 회고

날씨가 갑자기 많이 추워졌고, 알고리즘 주차가 끝났다커리큘럼 반도 못 했는데 3주가 지나버려서 쪼끔 아쉽다 그래도 많은 자료 구조를 공부하고 알고리즘도 알게 되어 즐거웠다 3주차는 ㅎㅇ님 ㅅㅈ님과 함께 Knapsack Algorithm 표 그리면서 알고리즘 이해하고컴퓨터 시스템 CH03 3.1 - 3.11 Review 도 하고 재미있게 공부했다 알고리즘 커리큘럼 문제는 많이 못 풀었지만, ㅎㅇ님이 DP 공부하면 좋다고 추천해줬던01타일과 계단 오르기 문제를 풀었는데 목욜 시험에 딱 나와서 ㅅㅈ님과 갓ㅎㅇ! 을 외쳤다 회고 Keep 좋았거나 계속 유지할 것1. 꾸준히 운동하고 있다Week02 회고에도 기재했지만 첫째주 1.7km 둘째주 2.10km 셋째주 2.50km그리고 지금은 7바퀴 3.00km 까지 ..

[정글] Week04 진행 내용

Week04 기간 2024.10.04 FRI - 10.10 THU조원 ㅎㅅ ㄱㅅ C언어 시작 WEEK04: C Pointer(&, * 연산자), 동적 메모리 할당, Linked List, Stack, Queue, Binary Tree, Binary Search Tree, 동적 프로그래밍, 그리디 알고리즘 WEEK05: 메모리 누수, 균형 이진 탐색 트리(AVL Tree, Red-Black Tree) WEEK06: 시스템 콜, 데이터 세그먼트, 메모리 단편화, sbrk/mmap WEEK07: BSD소켓, IP, TCP, HTTP, file descriptor, DNS 0. C언어 개발 환경 구성 1) 서버 설정 + SSH 접속 2) 서버에 파일 올리기 + 편집기 사용3) 컴파일러/ 디버거 사용  1. 진행..

[TIL] B-Tree, B-트리

B-Tree, B-트리데이터베이스와 파일 시스템에서 널리 사용되는 트리 자료 구조이진 트리는 하나의 노드가 가질 수 있는 자식 노드가 최대 2개인 반면,B-Tree 는 m 개의 자식 노드를 가질 수 있다  차수가 3인 B-Tree, 파란색 부분은 각 노드의 Key 를 나타내며, 빨간색 부분은 자식 노드들을 가리키는 포인터Key 들은 노드 안에서 항상 정렬된 값을 가지며, 각 Key 들의 왼쪽 자식들은 항상 Key 보다 작은 값을, 오른쪽은 큰 값을 가진다  B-Tree 는 order M 을 가지며, 이를 B-Tree of order M 이라고 한다B-Tree of order M 은 다음과 같은 조건을 만족해야 한다모든 노드가 가질 수 있는 자식 노드의 최대 수는 M 이다 ex) 3차 B-Tree 라면 최..

TIL/Python 2024.10.04
반응형