크래프톤 정글(C언어 WEEK 5 ~ 8)

WEEK 06 TIL C언어(4월23일 수요일)

devkty 2025. 4. 25. 02:05
728x90

[목표]

RB 트리 삭제 완벽 이해 및 주석(마무리작업)
컴퓨터 시스템 공부(8장)
퀴즈 오답 노트
발표자료 준비
시간이 된다면 우분투 18.04 어케할건지 생각

9:45 ~ 10:45

어제 RB 트리에 대해 수정 사안(사진 편집)이 있어 수정 완료하고 목차를 재조정했다.

10:45 ~ 12:00

컴퓨터 시스템 책을 읽고 있다. 8장 진행중

12:00 ~ 14:00

맛있는 쭈꾸미 덮밥을 먹고 잠을 자고 왔다. 너무 졸려서 1시간 정도 잤다.

14:00 ~ 15:00

컴퓨터 시스템 8장을 이어서 읽고 있다. 곧 노션에 정리해보겠다.

15:00 ~ 16:00

시놀로지 우분투 작업 18.04 완료

시놀로지 작업을 완료했다. 핀트OS 주차까지 완료할 수 있다.방법은 시간이 남는다면 간략하게 줄여서 포스팅해보겠다.

성광이 형이 알려준 방식과 유사하다. 우분투 18.04가 비주얼 스튜디오 코드 Remote SSH 지원이 안되기 때문에, 시놀로지 우분투의 공유 폴더를 컴퓨터하고 WebDAV로 로컬과 같이 연결하여 사용하고, 파일을 실행할 때는 터미널에 SSH 연결(맥은 기본 지원)하여 깃 허브 제어와 C언어나 프로젝트 파일 실행을 확인한다.

  • 파일 제어 → WebDAV(맥 파일탐색기)
  • 시놀로지 도커 우분투 18.04 접속 및 파일 실행 → 맥북 SSH

그러므로 이렇게 핀트 OS 주차까지 완벽하게 수행할 수 있다.

16:00 ~ 22:00

2번째 읽어본 컴퓨터 시스템 8장을 노션에 정리해보겠다.

코어 타임(22:00 ~ 00:30)

컴퓨터 시스템 7장(CSAPP)

소스 코드가 실행파일로 옮겨지는 것도 컴파일이라고 한다.

정적 연결: 하나의 실행 파일에서 다 합쳐진것.
동적 연결: 호출될 때 링킹된다.

목적 파일 3개

  • 재배치 가능 목적 파일: 포맷에 컴파일 할 때 실행 가능 목적 파일을 생성하기 위해 다른 재구성 가능 목저파일들과 결합될 수 있는 바이너리 코드와 데이터를 포함.
  • 실행 가능 목적 파일: 메모리에 직접 복사 될 수 있고 실행 될 수 있는 형태(재배치를 모음)
  • 공유 가능 목적 파일: 로드 타임 또는 런타임 시에 동적으로 링크되고 메모리 로드 될 수 있는 특수한 유형의 재배치 가능 목적 파일

목적 파일 파일들은 컴파일러나 어셈블러가 소스 코드 파일을 컴파일링 또는 어셈블링해서 생성하는 파일이다.

포맷들은 규칙이라서 메모리 공간에 저장되어 있지 않다. ELF 헤더에다가 저장한다.(실제 메모리는 X)

a.out을 출력할 때 실제 메모리에 포맷들을 한번에 링킹하여 실행 가능한 파일로 만든다.

컴퓨터 시스템 9장(CSAPP)

버추얼 메모리

VM(버추얼 메모리): DRAM + DISK 를 하나의 세트로 무한히 사용할 수 있다는 논리

write -through

쓰레씽: 공간 지역성이 너무 구린 코드나 vm의 용량보다 큰 코드들에 대해 페이징 폴트가 나면서 렉 걸림

0x40000 : 주소의 시작점

페이지 테이블을 사용한 주소의 번역
MLB(MMU안에 있음): 최근에 계산 한 주소값이 있음.
가산 주소 번역시 TLB에 가서 캐싱, 없으면 page table 가서 확인, 없으면 disk

TLB캐싱 → DRAM → page table → DRAM → DISK

내일 발표준비 회의(발표 자료 각자)

나: erase 버그를 여러 팀원분들과 함께 풀어 나갔던것.
팀원 1: 책과 다른 본인의 erase 구현
팀원 2: find 관련 설명

00:30 ~ 03:00

이번주차 깃허브 내용 업로드 완료했다.
몇 시간 투자하여 발표자료 구성 및 제작 완료했다.

중간에 다른 동료분들과 이야기도 나누고 집중이 안되서 좀 오래 걸렸다.
그래도 다 만들고 가니 기분은 좋다.

728x90