yyz_code
close
프로필 사진

yyz_code

github: @jyjww

  • 분류 전체보기
    • Today I Learned
    • IT 성장기 (교육이수)
      • 리눅스 기초 (2024.02-04)
      • 모의해킹 스터디 (2024.04-09..
      • 크래프톤정글 (2025.03-07)
      • CTF 문제풀이
      • 알고리즘 문제풀이
    • Study Log
      • Web 개발
  • 홈
  • 태그
  • 방명록
[PintOS] GDB Debugging Tool 사용 방법

[PintOS] GDB Debugging Tool 사용 방법

GDB 디버깅하기 운영체제를 직접 구현하는 PintOS 프로젝트는 많은 시행착오를 겪게 됩니다. 간단한 코드 수정 하나에도 KERNEL PANIC🔥.. 문구를 만나거나 아무런 출력 없이 프로세스가 종료되는 경험을 하게 됩니다. 이럴때 가장 막막한 건, “대체 어디서 잘못된 걸까?”를 알 수 없다는 점입니다. 이럴 때 사용할 디버깅 도구는 GDB(GNU Debugger) 입니다. 저 또한 GUI 기반의 디버깅에 익숙하여 CLI 기반의 디버깅 툴에 익숙해지기 쉽지 않았는데요. 단순한 printf 문 로그 출력만으로 확인하기 어려운 메모리 접근 에러나 페이지 폴트 같은 문제의 원인을 정확하게 추적하는데 많은 도움을 받았습니다! GDB를 이용해 PintOS 테스트 케이스를 디버깅 하는 방법을 차근차근 정리해보..

  • format_list_bulleted IT 성장기 (교육이수)/크래프톤정글 (2025.03-07)
  • · 2025. 5. 29.
[PintOS] File Descriptor 와 System Call 의 이해

[PintOS] File Descriptor 와 System Call 의 이해

파일 디스크립터란?각 프로세스가 관리하는 열린 파일 목록의 인덱스즉, 프로세스는 자신이 열어 놓은 파일들을 배열처럼 0, 1, 2… 번호로 접근할 수 있다이 번호는 커널이 유저 프로세스에게 주는 핸들(handle) → fd 는 유저 프로세스가 쓰는 식별자이다이 식별자는 파일 디스크립터 테이블이라는 곳에 매핑된다비유로 알아보는 파일 디스크립터의 역할 전화 한 통만 하면 필요한 논문을 복사해주는 곳이 있다. 그리고 그 곳의 단골 손님 영수(개발자)가 있다. 그런데 영수는 매번 똑같은 논문의 일부분을 복사해달라 한다. “아저씨(시스템)~ ‘고도의 정보화 사회에 되어가면서 … 포켓몬의 영향 … 어쩌고 저쩌고 … (엄청 긴 이름)’ 라는 논문 26쪽부터 30쪽까지 복사해주세요”. 영수는 하루에도 몇번씩 주문을 한..

  • format_list_bulleted IT 성장기 (교육이수)/크래프톤정글 (2025.03-07)
  • · 2025. 5. 23.
[PintOS] Project 1 : Priority Scheduling 구현

[PintOS] Project 1 : Priority Scheduling 구현

Priority Scheduling더 높은 우선순위의 스레드가 ready_list에 추가되면 현재 실행중인 스레드는 즉시 CPU를 양보해야 한다. 우선순위는 PRI_MIN (0) 부터 PRI_MAX (63)까지의 범위를 가지며, 숫자가 클수록 높은 우선순위이다.Round Robin Scheduling (RR)돌아가면서 CPU를 나눠주는 방식으로, 공정성을 중시한다.각 스레드는 “동일한 시간 할당(time slice or quantum)을 받는다.시간이 다 지나면 강제로 스레드를 CPU에서 내보내고 다음 스레드에게 기회를 준다.우선순위를 고려하지 않는다. → 실시간 성능에서는 불리할 수 있다.기아 상태가 발생하지 않는다.동작 방식ready_list 에서 스레드를 꺼냄정해진 시간 (TIME_SLICE, 보통..

  • format_list_bulleted IT 성장기 (교육이수)/크래프톤정글 (2025.03-07)
  • · 2025. 5. 19.
[PintOS] Project 1 : Alarm Clock 구현

[PintOS] Project 1 : Alarm Clock 구현

Alarm Clock운영체제의 Alarm clock 기능이란 운영체제가 실행중인 스레드를 잠시 재웠다가 일정 시간이 지나면 다시 깨우도록 하는 것이다.Busy Wait어떤 조건이 충족될 때 까지 CPU를 계속 돌리며 루프를 도는 방식의 대기→ 문제 : 실제 대기 중인 상태에서도 CPU를 계속 사용함Sleep-awake (잠자는 스레드)일정 시간 동안 스레드를 block 상태로 전환→ 해당 스레드는 스케줄러에서 제외되고, CPU는 다른 스레드에게 양보됨→ 시간이 지나면 timer interrupt가 깨워줌과제 관련 개념 이해위의 과제를 들어가기 전에 선행으로 이해가 필요했던 내용을 간략히 적어봅니다.프로세스 상태 전이 (State Transition)Ready 상태프로세스가 실행할 준비는 되었지만, 아직 ..

  • format_list_bulleted IT 성장기 (교육이수)/크래프톤정글 (2025.03-07)
  • · 2025. 5. 19.

[CS] CSAPP : 11장 네트워크 프로그래밍

11.1 클라이언트-서버 프로그래밍 모델모든 네트워크 응용 프로그램은 클라이언트-서버 모델에 기초한다.1. 클라이언트-서버 모델하나의 애플리케이션은 서버 프로세스와 하나 이상의 클라이언트 프로세스로 구성된다서버는 특정 자원을 관리하고, 자원을 조작하여 클라이언트에게 서비스를 제공한다예) 웹 서버는 디스크에 저장된 파일을 관리하고 클라이언트 요청에 따라 반환2. 트랜잭션 (Transaction)클라이언트-서버 간 상호작용은 4단계 트랜잭션으로 구성클라이언트가 서비스를 필요로 할 때, 서버에 요청(request) 보냄 (Client : ”스펀지밥 이미지 줘”)서버는 요청을 받고, 해석, 자원을 조작 (Server : ”스펀지밥이 어딨는지 디스크에서 읽어보자..”)서버가 응답을 클라이언트에게 전송 (Serve..

  • format_list_bulleted IT 성장기 (교육이수)/크래프톤정글 (2025.03-07)
  • · 2025. 5. 9.
[자료구조] Red-Black Tree

[자료구조] Red-Black Tree

Red-Black Tree정의Self-balanced Binary Search Tree의 종류로 모든 노드가 빨간색과 검정색으로 표현 된다.노드에 대한 정의G : 조상 노드P : 부모 노드U : 삼촌 노드 (부모 노드의 형제)N : 새로 삽입한 노드 (자식)균형 유지의 조건모든 노드는 빨간색 또는 검은색이어야 한다루트 노드는 검은색이다모든 NIL은 검은색이다 (NIL: Null Leaf, 자료를 갖지 않고 트리의 끝을 나타내는 리프 노드)NIL 노드는 값이 있는 노드와 동등하게 취급한다빨간색 노드의 자식은 반드시 검은색이다임의의 노드에서 자손 NIL 노드까지 가는 경로의 black 수는 같다 (단, 자기 자신은 카운트 제외)노드 x의 Black height : x에서 임의의 자손 nil노드까지 내려가는 ..

  • format_list_bulleted IT 성장기 (교육이수)/크래프톤정글 (2025.03-07)
  • · 2025. 4. 24.
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기
    • Today I Learned
    • IT 성장기 (교육이수)
      • 리눅스 기초 (2024.02-04)
      • 모의해킹 스터디 (2024.04-09..
      • 크래프톤정글 (2025.03-07)
      • CTF 문제풀이
      • 알고리즘 문제풀이
    • Study Log
      • Web 개발
인기 글
전체 방문자
오늘
어제
Copyright © eezy 모든 권리 보유.
SKIN: Copyright © 쭈미로운 생활 All rights reserved. Designed by JJuum.
and Current skin "dev-roo" is modified by Jin.

티스토리툴바