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

GoWoong의 개발 블로그

  • 분류 전체보기 (173) N
    • 크래프톤 정글 (82)
    • 크래프톤 정글 (컴퓨터 시스템: CSAPP) (57)
      • 3장 프로그램의 기계수준 표현 (16)
      • 6장 메모리 계층구조 (6)
      • 7장 링커 (6)
      • 8장 예외적 제어 흐름 (7)
      • 9장 가상 메모리 (16)
      • 11장 네트워크 프로그래밍 (6)
    • 클라우드 (4)
      • [AWS] AWS IoT Core (4)
      • DevOps (0)
    • Deep Dive (16)
      • CS (15)
    • 백엔드 개발 (0)
      • 파이썬 (0)
      • 자바 스프링 (0)
    • 자격증 공부 (5)
      • AWS Cloud Practitioner (2)
      • 정보처리기사 (1)
      • AWS SAA-C03 (2)
    • 앱 개발 (4) N
      • Flutter (4) N
    • 문제 기록 (0)
    • 커뮤니티 참석 후기 (2)
    • 일상 기록 (1)
  • 홈
  • 글쓰기
[크래프톤 정글 8기] 나만무(나만의 무기 갖기) 1주차 회고

[크래프톤 정글 8기] 나만무(나만의 무기 갖기) 1주차 회고

크래프톤 정글에 입소한 지 어느덧 15주 차가 되었다. 블로그에 글을 쓰는 것은 2주 만인 것 같다. 그동안 많은 일이 있었다. 나만무 프로젝트를 시작하기에 앞서 팀 리더를 뽑고 팀원을 매칭하는 것 이 14주 차의 일이었다면 15주 차는 아이디어를 선정하고 기획을 하고 발표를 하는 등 프로젝트의 시작에 대한 것들을 수행하는 주였다.팀리더가 되다.팀의 리더가 되었다. 사실 엄청난 비전이 있어서 그런 것은 아니었다. 다만 내가 주도적으로 팀을 이끌고 목표를 달성하는 것이 내가 끌려서 목표를 달성하는 것보다는 의미 있다고 생각을 하기 때문이었다.한 주가 지나고 든 생각은 "팀리더? 해보지 뭐!" 이런 생각을 하던 나를 제발 누가 멈춰줬으면 좋았을 것 같다는 것이다. 너무 힘이 든다. 물론 함께 하는 팀원들과..

  • format_list_bulleted 크래프톤 정글
  • · 2025. 6. 26.
  • textsms
[pintos] Week4~5: Virtual Memory - Part.9 Copy-On-Write

[pintos] Week4~5: Virtual Memory - Part.9 Copy-On-Write

이 전 포스팅까지 VM 과제에서 구현하라고 과제로 준 기능들을 구현을 완료했다. 하지만 User Program처럼 ALL PASS를 받을 수는 없었다. VM에서 ALL PASS를 받기 위해서는 Extra 과제인 Copy-On-Write 기능을 구현해야 ALL PASS를 받을 수 있다. 지금부터 Copy-On-Write가 무엇인지 알아보고 구현해 보겠다.Copy-On-Write 란?우리가 이 전까지 구현한 fork 와 VM 기능들은 fork가 일어날 때 부모를 복사한다. user program까지에서는 부모의 FD 정도를 복사하는 느낌이었다. 하지만 VM에서는 부모의 페이지를 복사하면서 새로운 프레임에 할당을 했다. 이 말은 부모와 자식이 내용상 같은 페이지와 프레임을 생성한 것이고 물리 메모리에 같은 데..

  • format_list_bulleted 크래프톤 정글
  • · 2025. 6. 8.
  • textsms

[pintos] Week4~5: Virtual Memory - Part.7 페이지 교체 및 구현 완료를 위한 수정

Swap In/Out을 구현했지만 페이지 교체 알고리즘을 구현해야 테스트를 통과할. 수 있다. 그리고 추가적인 조정을 통해 cow-simple 테스트를 제외한 모든 테스트를 통과할 수 있도록 구현할 예정이다.페이지 교체 알고리즘페이지 교체 알고리즘은 운영체제가 메모리가 부족할 때 어떤 페이지를 내보낼지 결정하는 방식이다. 즉 RAM에 올려둘 수 없는 페이지를 디스크(Swap)를 내보낼 때 어떤 것을 회생할지 선택하는 규칙이다.페이지 교체 알고리즘이 필요한 이유운영체제는 가상 메모리를 통해 실제 메모리 보다 많은 메모리를 제공하는 것처럼 동작한다.하지만 실제 물리 메모리(RAM)는 제한되어 있어, 더 이상 올릴 수 없는 경우 기존 페이지를 내보내야(Swap Out) 한다.이때 어떤 페이지를 내보낼지 결정하..

  • format_list_bulleted 크래프톤 정글
  • · 2025. 6. 7.
  • textsms

[pintos] Week4~5: Virtual Memory - Part.6 Swap In/Out

이제 남은 구현은 Swap In/Out 이 남았다. 메모리 스와핑은 물리 메모리의 활용을 극대화하기 위한 메모리 회수기법이다. 메인 메모리의 프레임들이 모두 할당되면 시스템은 유저 프로그램이 요청하는 메모리 할당 요청을 더 이상 처리할 수 없다. 이에 대한 해결 방법은 현재 사용되지 않고 있는 메모리 프레임들을 디스크로 스왑 아웃 하는 것이다. 이는 일부 메모리 자원들을 해제시켜서 다른 애플리케이션들이 이 자원들을 사용할 수 있게 해 준다.메모리는 고갈되었는데 메모리 할당 요청을 받았다는 것을 운영체제가 감지하면 swap 디스크로 퇴서(evict)시킬 페이지를 골라낸다. 그리고 메모리 프레임의 상태를 동일하게 디스크에 복사해 둔다.(스왑 아웃), 프로세스가 스왑 아웃된 페이지에 접근하려고 할 때, 운영체..

  • format_list_bulleted 크래프톤 정글
  • · 2025. 6. 7.
  • textsms

[pintos] Week4~5: Virtual Memory - Part.5 Memory Mapped Files

이번 포스팅에서는 메모리 매핑된 페이지를 구현한다. 익명 페이지와 달리 메모리 매핑된 페이지는 파일 기반 매핑이다. 페이지 콘텐츠는 일부 기존 파일의 데이터를 미러링 한다. 페이지 폴트가 발생하면 물리적 프레임이 즉시 할당되고 내용이 파일에서 메모리로 복사된다. 메모리 매핑된 페이지가 unmapped 또는 swapped out 되면 콘텐츠의 모든 변경 사항이 파일에 반영된다.메모리 매핑된 파일에 대한 두 가지 시스템 호출인 mmap 및 munmap을 구현한다. VM 시스템은 mmap 영역에서 페이지를 lazy load하고 mmap 된 파일 자체를 매핑을 위한 백업 저장소로 사용해야 한다. 이 두 시스템 콜을 구현하려면 vm/file.c에 정의된 do_mmap과 do_munmap을 구현해서 사용해야 한다...

  • format_list_bulleted 크래프톤 정글
  • · 2025. 6. 7.
  • textsms

[pintos] Week4~5: Virtual Memory - Part.4 Stack Growth

프로젝트 2에서 스택은 USER_STACK에서 시작하는 단일 페이지였다. 프로그램은 4KB로 제한하여 실행했다. 이제 스택이 크기를 초과하면 필요에 따라 추가 페이지를 할당한다.추가 페이지는 스택에 접근하는 경우에만 할당한다. 스택에 접근하는 경우와 아닌 경우를 구별해야 한다.User program은 스택 포인터 아래의 스택에 쓸 경우 버그가 발생하는데, 이는 일반적인 실제 OS가 스택의 데이터를 수정하는 시그널을 전달하기 위해 프로세스를 언제든지 중단할 수 있기 때문이다. 하지만 x86-64 PUSH 명령어는 스택 포인터를 조정하기 전에 접근 권한을 검사하므로, 스택 포인터 아래 8바이트에 대해서 Page Fault를 발생시킬 수 있다.구현 목표User Program의 스택 포인터의 현재 값을 얻을 수..

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

티스토리툴바