본문 바로가기
728x90

TIL & WIL25

[TIL] 크래프톤 정글 3주차 CS:app 4(메모리에서의 정보 접근) 3.4 정보 접근하기 - x86-64 주처리장치(CPU)는 64비트 값을 저장할 수 있는 16개의 범용 레지스터를 보유하고 있다. - 위 그림에서 볼 수 있듯이 instruction들은 16개의 레지스터의 하위 바이트들에 저장된 다양한 크기에 대해 작동할 수 있다. 3.4.1 Operand Specifiers(오퍼랜드 식별자) - 대부분의 instruction들은 하나 이상의 오퍼랜드를 갖는다. 오퍼랜드는 연산을 수행할 source값과 그 결과를 저장할 destination의 위치를 명시한다. - x86-64는 위와 같이 다양한 오퍼랜드 형태들을 지원한다. 오퍼랜드는 세 가지 타입으로 구분할 수 있다. 1) immediate(상수 값을 말한다.) ATT 형식의 어셈블리 코드에서 상수는 $ 기호 다음에 C.. 2024. 4. 14.
[TIL] 크래프톤 정글 2주차 - 자료구조(B-Tree) 알고리즘 주간에는 그래도 전공자고 밖에서도 알고리즘 공부를 꾸준히 해왔기 때문에 따로 공부를 할 필요가 없다고 생각했는데 갑자기 공부 키워드로 밖에서 쓴 적이 없어 기억에서 사라진 B-Tree가 있었다.. 그래서 B-Tree를 아주 자세히까지는 아니어도 어떤 자료 구조이고 어떤 곳에서 쓰이고 왜 쓰는지, 어떤 방식으로 쓰이는 지 등을 간략하게 공부하고 정리했다. B-tree의 구성 요소 1. entry entry는 일반 트리에서의 노드와 같다. entry는 data와 rightptr(오른쪽 자식을 향하는 포인터)를 가지고 있다. 2. node node는 일반 트리와 다르다. node는 firstptr(왼쪽 자식을 향하는 포인터), numEntries(노드에 속하는 entry의 개수), entry(arra.. 2024. 4. 1.
[TIL] 크래프톤 정글 2주차 CS:app 3(메모리 계층 구조, 운영체제) 이 글은 CS:app 1장을 끝까지 다 읽고 정리한 글이다. 이전 글들을 같이 봐야 이해될 수 있는 내용이 있으니 이전 글을 읽고 보길 바란다. 1.5 캐시 메모리(cache memory) 이전 글에서 프로그램의 실행 과정을 보면 불필요할 정도로 프로그램과 데이터의 복사, 이동이 많다. 이 복사 및 이동 과정들은 프로그램의 실제 작업을 느리게 하는 오버헤드로 이 과정을 줄이는게 프로그램 실행을 빠르게 할 수 있는 방법이 될 것이다. 저장 장치의 용량이 크면 물리적인 이유로 인해 작은 것보다 느린 속도를 갖게 된다. ex1) 디스크 드라이브가 메인 메모리보다 1000배 크지만, 1 워드를 읽는 속도는 10000000(천만)배 오래 걸릴 수 있다. ex2) 레지스터 파일은 수 백 byte의 정보를 저장하지만.. 2024. 3. 29.
[TIL] 크래프톤 정글 1주차 CS:app 2(C 프로그램 컴파일 이후 실행 과정) 크래프톤 정글 1주차를 하며 CS:app(Computer Systems : A Programmer's Perspective)를 목차 1.4 까지 읽으며 공부하고 이해한 내용을 정리한 글이다. (앞 글 : https://jeokyong-development.tistory.com/5) 1.4 앞 글을 보고 왔다면 현재 hello.c가 컴파일 시스템에 의해 컴파일되어 실행 가능 목적 파일 hello가 만들어졌다는 것을 알고 있을 것이다. 이 hello 파일을 유닉스에서 실행하기 위해서는 '쉘'이라는 응용프로그램에 이름을 다음과 같이 입력해야한다. 쉘은 커맨드라인 인터프리터로 프롬프트를 출력하고 명령어 라인을 입력받아 해당 명령을 실행한다. 위와 같은 경우와 같이 명령어가 아니면 실행 파일의 이름으로 판단하고 .. 2024. 3. 27.
[TIL] 크래프톤 정글 1주차 CS:app1(컴퓨터 시스템과 C프로그램의 컴파일 과정) 크래프톤 정글 1주차를 하며 CS:app(Computer Systems : A Programmer's Perspective)를 목차 1.3 까지 읽으며 공부하고 이해한 내용을 정리한 글이다. 1.1 먼저 컴퓨터 시스템은 텍스트 문자를 ASCII 표준을 이용하여 각 문자를 byte 길이의 정수로 나타낸다.(1byte = 8bit) 쉽게 말하자면 우리가 C 소스 코드를 적든, 메모장에 아무 문자를 적든 각 문자마다 1byte 형태로 인식이 된다는 것이다. 그렇기 때문에 같은 내용의 text여도 context(맥락)에 따라 컴퓨터에서는 다르게 실행될 수 있다. C나 txt파일과 같이 아스키 문자로만 이루어진 파일을 text file, 그 외에는 binary file(0과 1로 이루어진 파일)이라고 한다. ㄴ>.. 2024. 3. 26.
[TIL] 크래프톤 정글 1주차 파이썬의 특징과 객체 지향 언어의 특징에 관하여 크래프톤 정글의 알고리즘 커리큘럼에서는 파이썬을 사용하도록 한다. 평소에 알고리즘 문제를 풀 땐 C++만 사용했기 때문에 새롭게 파이썬에 적응할 필요가 있었고, 그 과정에서 파이썬의 특징에 관하여 공부했고 객체 지향 언어의 특징에 관해서 공부했다. 객체 참조와 가변성 / 불변성 #################잘못된 내용이 있어서 이후 수정하겠습니다########################### 먼저 파이썬은 C나 C++과는 다르게 객체 참조라는 특징을 가진다. 간단하게 말하면, C나 C++은 새롭게 변수를 선언하면 비어있던 메모리에 그 변수를 저장하지만, 파이썬은 이미 메모리에 만들어져있는 변수들을 참조한다는 것이다. 그래서 a=2를 하면 이미 int형 2로 만들어져 있는 객체를 참조하는 것이고 여기서.. 2024. 3. 26.
728x90