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] Project 1 : Priority Donation 구현

[PintOS] Project 1 : Priority Donation 구현

PintOS Project 1 : Priority Donate과제 설명Priority DonationPriority Donation은 우선순위 역전 (Priority Inversion) 문제를 해결하기 위한 기법이다. 우선순위 역전은 낮은 우선순위의 스레드가 자원을 점유하고 있을 때, 높은 우선선위의 스레드가 해당 자원을 기다리면서 실행되지 못하고, 그 사이 중간 우선순위의 스레드가 실행되는 상황을 말한다.Gitbook 에서 말한 예시를 자세히 살펴보자. 아래는 단일 기부 방식 형태이다.H (priority 50) : 락 A를 기다리는중L (priority 10) : 락 A를 가지고 있음M (priority 30) : 아무 락도 안 기다리고 CPU를 계속 쓴다. 락이 필요 없는 함수.이 경우, L이 우선..

  • format_list_bulleted IT 성장기 (교육이수)/크래프톤정글 (2025.03-07)
  • · 2025. 5. 30.
[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.
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • ···
  • 12
  • 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.

티스토리툴바