GoWoong의 개발 블로그
close
프로필 배경
프로필 로고

GoWoong의 개발 블로그

  • 분류 전체보기 (189)
    • 크래프톤 정글 (83)
    • 크래프톤 정글 (컴퓨터 시스템: CSAPP) (57)
      • 3장 프로그램의 기계수준 표현 (16)
      • 6장 메모리 계층구조 (6)
      • 7장 링커 (6)
      • 8장 예외적 제어 흐름 (7)
      • 9장 가상 메모리 (16)
      • 11장 네트워크 프로그래밍 (6)
    • 클라우드 (4)
      • [AWS] AWS IoT Core (4)
      • DevOps (0)
    • Deep Dive (29)
      • CS (15)
      • OS (13)
    • 백엔드 개발 (0)
      • 파이썬 (0)
      • 자바 스프링 (0)
    • 자격증 공부 (5)
      • AWS Cloud Practitioner (2)
      • 정보처리기사 (1)
      • AWS SAA-C03 (2)
    • 앱 개발 (5)
      • Flutter (5)
    • AI & LLM (1)
    • 문제 기록 (0)
    • 커뮤니티 참석 후기 (2)
    • 일상 기록 (1)
  • 홈
  • 자소서
  • 포트폴리오
  • 이력서
컴퓨터 시스템 : CSAPP 7장 정리 - 7.1 ~ 7.5

컴퓨터 시스템 : CSAPP 7장 정리 - 7.1 ~ 7.5

7장 : 링커 (Linking)링킹이란?링킹(Linking)은 하나 이상의 목적 파일(Object Files)을 결합하여 단일 실행 파일(Executable File)로 만드는 과정을 의미한다. 프로그램이 여러 파일로 나눠져 개발될 경우, 각 파일은 개별적으로 컴파일된 뒤에 링커에 의해 결합된다.링커는 단순히 파일들을 이어 붙이는 수준을 넘어서 다음과 같은 중요한 일을 한다.심볼 결합(Symol Resolution)함수나 변수 이름과 같은 심볼을 찾아 서로 연결한다. 예를 들어 main.c에서 sum() 함수를 호출하면, 링커는 sum.c의 sum() 정의를 찾아 연결한다.재배치(Relocation)각 목적 파일의 코드와 데이터를 실행 가능한 주소로 조정한다. 각 파일은 자신의 시작 주소가 0인 것처럼 ..

  • format_list_bulleted 크래프톤 정글 (컴퓨터 시스템: CSAPP)/7장 링커
  • · 2025. 4. 17.
  • textsms

스택(Stack) 구현 (C언어) : Part.3 - get_size, reverse, copy 구현

이전 포스팅에서 스택의 기본적인 기능들을 구현했다. 이번 Part3에서는 일종의 심화 기능들을 구현해 보겠다. 사실 이전 포스팅에서 생각보다 많은 기능들을 구현했다. 하지만 간단한 기능들이 다수였다. 반면 이번 기능들은 심화 기능이니 비교적 복잡하다 느낄 수 있다.1. 구현 목표get_size : 스택의 크기를 구한다.reverse_stack : 스택을 뒤집는다.copy_stack : 스택의 값을 복사한다.2. 기능 구현🔨 get_sizeget_size 함수는 스택의 사이즈를 구하는 함수이다. 스택의 사이즈를 구하는 방법은 간단하다 스택의 노드들을 반복문으로 순회하며 순회할 때마다 카운트 변수의 값을 증가시키고 반복이 끝났을 때 반환하면 끝이다.int get_size(Stack *stack) { ..

  • format_list_bulleted 크래프톤 정글
  • · 2025. 4. 16.
  • textsms

스택(Stack) 구현 (C언어) : Part.2 - push, pop, free_stack, peek구현

본격적인 스택 구현의 첫 시간이다. 우리는 push, pop, free_stack, peek을 구현해 볼 것이다. 만약 같이 따라 해볼 예정이라면 이전 환경설정 포스트를 확인하는 것을 추천한다.2025.04.16 - [크래프톤 정글] - 스택(Stack) 구현 (C언어) : Part.1 - 초기 환경 설정 & 구현할 함수 소개 스택(Stack) 구현 (C언어) : Part.1 - 초기 환경 설정 & 구현할 함수 소개이번에는 C언어를 이용해 스택을 직접 구현해보려고 한다. 링크드 리스트를 직접 구현했던 내용도 있으니 링크드 리스트에 대해서 부족하지만 정리했던 내용을 확인하려면 이 전 포스팅 했던www.gowoong.com1. 구현 목표init_stack : 스택의 값을 초기화 한다. (보너스)push : ..

  • format_list_bulleted 크래프톤 정글
  • · 2025. 4. 16.
  • textsms

스택(Stack) 구현 (C언어) : Part.1 - 초기 환경 설정 & 구현할 함수 소개

이번에는 C언어를 이용해 스택을 직접 구현해보려고 한다. 링크드 리스트를 직접 구현했던 내용도 있으니 링크드 리스트에 대해서 부족하지만 정리했던 내용을 확인하려면 이 전 포스팅 했던 글을 확인하는 것도 좋을 것 같다.2025.04.16 - [크래프톤 정글] - 링크드리스트(LinkedList) 구현 (C언어) : Part.1 - 초기 환경 설정2025.04.16 - [크래프톤 정글] - 링크드리스트(LinkedList) 구현 (C언어) : Part.2 - insert_end, free_lsit2025.04.16 - [크래프톤 정글] - 링크드리스트(LinkedList) 구현 (C언어) : Part.3 - insert_front, print_list, find_node2025.04.16 - [크래프톤 정글..

  • format_list_bulleted 크래프톤 정글
  • · 2025. 4. 16.
  • textsms

링크드리스트(LinkedList) 구현 (C언어) : Part.6 - 수정 및 회고

지금까지 링크드 리스트를 구현했다. 하지만 내가 처음 구현할 때 미처 생각지 못하고 넘어갔던 내용이 있다. 모든 함수를 Node를 이용해 호출하고 Node를 인자로 담고 있었다. 그렇다 보어 어떤 함수는 이중 포인터를 사용하는 함수가 되어 버렸다. 이 것을 수정하려고 한다.1. 구현 목표구조체 ll (linkedlist) 를 선언하고 모든 코드를 ll을 사용하도록 수정한다.typedef struct linkedlist { Node* head; int size;} ll;지금까지 구현했던 코드의 가장 앞 단에 위와 같은 코드를 추가할 것이다. 이 ll 구조체는 head라는 노드 타입의 포인터 변수이고 추가로 size라는 int 타입 변수를 가진다.Node** head와 같은 방식에서 ll 구조체(..

  • format_list_bulleted 크래프톤 정글
  • · 2025. 4. 16.
  • textsms

링크드리스트(LinkedList) 구현 (C언어) : Part.5 - reverse_list, sort_list

지금까지 삽입, 삭제, 조회와 같은 기본 적인 구현을 진행했다. 아마 이번 포스팅 내용이 가장 어렵다고 느낄 수 있다. 바로 뒤집기와 정렬이다.1. 구현 목표reverse_list : 링크드 리스트의 노드들의 순서를 뒤짚는다.sort_list : 링크드 리스트 내부의 값들의 순서를 정렬한다.2. 기능 구현🔨 reverse_list링크드 리스트의 순서를 reverse 하기 위해 어떤 작업을 수행해야 할까?구현 아이디어이다.prev, cur, next라는 노드 포인터 변수를 만들고 각각 NULL, head, NULL로 초기화한다.현재 노드가 NULL 즉 가장 마지막까지 갈 때까지 while 반복을 진행한다.next 값을 현재 cur 노드의 next 노드로 저장한다.cur 노드의 다음 값을 prev 즉 이전..

  • format_list_bulleted 크래프톤 정글
  • · 2025. 4. 16.
  • textsms
  • navigate_before
  • 1
  • ···
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • ···
  • 32
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (189)
    • 크래프톤 정글 (83)
    • 크래프톤 정글 (컴퓨터 시스템: CSAPP) (57)
      • 3장 프로그램의 기계수준 표현 (16)
      • 6장 메모리 계층구조 (6)
      • 7장 링커 (6)
      • 8장 예외적 제어 흐름 (7)
      • 9장 가상 메모리 (16)
      • 11장 네트워크 프로그래밍 (6)
    • 클라우드 (4)
      • [AWS] AWS IoT Core (4)
      • DevOps (0)
    • Deep Dive (29)
      • CS (15)
      • OS (13)
    • 백엔드 개발 (0)
      • 파이썬 (0)
      • 자바 스프링 (0)
    • 자격증 공부 (5)
      • AWS Cloud Practitioner (2)
      • 정보처리기사 (1)
      • AWS SAA-C03 (2)
    • 앱 개발 (5)
      • Flutter (5)
    • AI & LLM (1)
    • 문제 기록 (0)
    • 커뮤니티 참석 후기 (2)
    • 일상 기록 (1)
최근 글
인기 글
최근 댓글
태그
  • #IOT
  • #AWSKRUG
  • #AWS 자격증
  • #CLF-C01
  • #serverless
  • #AWS Community Day
  • #AWS
  • #aws #iot
  • #Cloud Practitioner
  • #saa-c03
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바