728x90

pintos 58

Devops 운영진 티타임

Devops 운영진 티타임운영진 티타임때 이야기를 나누었던 Devops 내용에 대해 간략히 정리해보았습니다. 이야기를 들으면서 빠르게 정리한 것이라 어순이 이상할 수도 있습니다. 양해부탁드립니다.윈도우 개발 사이클이 3년이다.waterful, agile 등 의 개발 모델이있다. 원래는 3년 이후의 개발 계획을 세웠다. 좀더 효율적이기위한 개발 모델이 나왔다.2000년대 초에 agile 개발 모델이 나왔다.원하는 날짜에 release하기가 쉽지 않았다. 프로세스를 간단화하는 방법? 테스트를 자동화하면된다. 테스트를 코드로 짜서 검사를 자동화 시키면된다.처음에는 개발자가 테스트 코드를 짜서 사용했다.요즘에는 테스트 코드가 없고, 커버리지가 70 ~ 80 이되지 않으면 프로그램으로 치지도 않는다.개발이 끝난다..

PintOS Project3: Virtual Memory (Revisit, Stack Growth, MMAP)

※ 100% 완벽한 코드는 아닙니다! 참고용으로 봐주세요. ※Supplemental Page Table - Revisitvm.csupplemental_page_table_copy해당 함수는 fork과정에서 부모의 주소를 자식에게 복사해주는 기능을 합니다.부모의 주소 공간을 src라 지칭하고, 자식의 주소 공간을 dst라고 지칭합니다.src와 dst는 지칭하는 대명사라고 생각하면되고, src에는 현재 스레드의 spt가 들어갈 것입니다.해당 함수를 구현하는 중에 unint 타입부분 확인에서 트러블 슈팅이 있었고 다음은 수정본입니다. 6월8일 TIL을 통해 트러블 슈팅 과정을 확인가능합니다. boolsupplemental_page_table_copy (struct supplemental_page_table *..

PintOS Project3: Virtual Memory (Memory Management, Anonymous Page)

※ 100% 완벽한 코드는 아닙니다! 참고용으로 봐주세요. ※Memory Management저희는 Gitbook에 따라 먼저 spt 테이블을 구현합니다. 테이블을 구현하는 방식 중에는 배열, 리스트, 비트맵, 해시 테이블 등이 있는데 저같은 경우 해시 테이블을 채택했습니다.첫번째로, spt를 사용하려면 초기화가 필수적이므로 초기화하는 코드를 먼저 작성해보았습니다.그 과정에서 page_hash와 page_less 함수를 추가적으로 구현했습니다. 각 함수는 다음과 같은 역할을 합니다.page_hash: 페이지의 가상주소를 바탕으로 고유한 해시값을 생성합니다.// 페이지 va를 바탕으로 고유한 해시값 생성// 해시값을 통해 bucket을 찾는다.unsigned page_hash(const struct hash..

WEEK 13 PintOS TIL(6월12일 목요일)

[목표]발표를 합니다.13주차 및 pintos를 마무리합니다.전체 정리를 합니다. 동료평가를 완료합니다.13주차 퀴즈 오답 노트를 작성합니다.09:40 ~ 10:00PPT를 받아서 종합했다. 하나의 발표자료로 만들었다.10:00 ~ 12:0013주차, Pintos 주의 마무리 발표를 시작했다. 우리조가 맨마지막이었다. 우리 조의 채호형이 정말 재밌었다. 항상 재밌는 ppt를 만드시는 것 같다. 발표의 본질인 느낌이다.12:00 ~ 13:00식사후에 발제전까지 휴식을 가졌다.발제 (13:00 ~ 14:00)새로운 발제 시작드디어 학습주차가 끝났다. 끝을 향해 달려가고 있다.나만무가 남아 있다. 일주일정도 개인 공부할 시간을 준다. 개개인 학습하면 된다.팀구성은 어떻게 되는가?→ 나하고 맞지 않은 사람들과 ..

Page fault (Pintos, 발표자료)

Page fault해당 페이지 폴트는 Pintos x86_64 기준으로 설명합니다.Page fault란?Page fault는 프로세스가 참조하려는 가상 메모리 페이지가 현재 물리적 메모리에 로드되어 있지 않을때 발생합니다. 이것은 메모리 접근 시도 중에 발생하는 인터럽트나 예외 상황입니다.즉, CPU가 아직 메모리에 존재하지 않는 가상 주소를 접근하려고 할 때 발생하는 예외(Exception)입니다.기본 작동 방식페이지 폴트 발생: 프로세스가 메모리에 접근하려 할 때, 해당 가상 주소에 대응하는 페이지가 물리적 메모리에 없으면 발생합니다.인터럽트 처리: 페이지 폴트는 OS에 의해 처리되는 인터럽트입니다. OS는 이 인터럽트를 받고 현재 CPU의 상태를 저장한 후 페이지 폴트 처리 루틴을 실행합니다.페이지..

WEEK 13 PintOS TIL(6월11일 수요일)

[목표]mmap 구현을 해봅니다.발표자료를 만듭니다.13주차 퀴즈 오답 노트를 작성합니다.10:00 ~ 12:00어제 develop5에 merge한 것을 내가 작성한 코드에 맞게 merge했습니다.12:00 ~ 13:00식사를 했습니다.13:30 ~ 14:30어제 합친 develop5에 대해 pull을 당겨왔고, 내 코드만 복구하여 make check를 돌려보았다. 놀랍게도 9개의 테스트 케이스가 추가로 통과했다. 뭔가 다른 부분이 복구되면서 개선이 된것 같다.pass tests/userprog/args-nonepass tests/userprog/args-singlepass tests/userprog/args-multiplepass tests/userprog/args-manypass tests/userp..

WEEK 13 PintOS TIL(6월10일 화요일)

[목표]mmap 구현을 해봅니다.팀원들 코드를 merge 해봅니다.13주차 퀴즈를 진행합니다.09:55 ~ 10:30어제 노션에 쓴 TIL을 정리하고 있다. 10:30 ~ 11:00벨로그와 티스토리는 정리완료했다.11:00 ~ 12:00mmap를 막상 구현하기 보다는 이해가 우선인지라 어떤식으로 구현해야되는지 확인을 해보았다.12:00 ~ 13:00식사를 하고 휴식을 가졌다.13:00 ~ 14:00아까 이해한 mmap를 통해 구현을 해보았습니다.14:00 ~ 15:0013주차 퀴즈를 진행했습니다. 대부분 페이지 관련된 내용이었습니다. 나중에 정리되는대로 복습 내용을 올리겠습니다.15:00 ~ 17:00운동을 하고 왔습니다.17:00 ~ 17:30유윤선 코치님 커피챗이 있습니다. 현업의 계신 분들의 임베디..

WEEK 13 PintOS TIL(6월9일 월요일)

[목표]mmap 전 통과안되는 코드들을 트러블 슈팅합니다. (어제 fork_read 하다가 말았음)(실패로 인한 나중에)stack growth를 구현한 코드를 이해해봅니다.mmap 구현을 해봅니다.09:55 ~ 10:30졸았다. 어제 3시 넘어서 잔 여파가 큰 것같다.10:30 ~ 11:00주말간의 TIL을 통합해서 벨로그에 적었다. 주말간 먹었던 사진들과 바다 사진도 올렸다.11:00 ~ 12:00현재 페이지 테이블 해제 부분을 재작성하고 있습니다. fork-read와 페이지 kill 간의 문제가 해결되지 않고 있습니다.12:00 ~ 13:30식사를 하고 휴식을 가졌습니다.13:30 ~ 16:30식권 수령과 휴대폰 케이스가 불량이라 반품 처리를 했습니다.fork-read 테스트 케이스에 다음과 같은 문..

카테고리 없음 2025.06.13

WEEK 13 PintOS TIL(6월7일 토요일 ~ 6월8일 일요일)

6월 7일 토요일참고로 이번 TIL에는 놀러간 이야기와 사진들이 많습니다![목표]stack growth를 구현하고 관련 테스트 케이스를 통과해봅니다. (진행중)놀러가기때문에, 가서 시간 남는대로 티스토리 정리해봅니다.벨로그와 노션 먼저 정리하기. 틈틈히 코드 관련 해서 정리하기.밀린 티스토리정리하기!!!!!!! (너무 밀림)10:00 ~ 10:45출근해서 잤음… 5시에 여파가…10:45 ~ 12:00stack growth를 구현해봅니다.vm_try_handle_fault먼저 vm_try_handle_fault 함수를 수정해줘야한다. 왜냐하면 스택 자동확장이 필요한 시기에 확장을 시도해야하기 때문입니다. 즉, 스택 증가를 식별해줍니다. 케이스1과 2가 정상적으로 실행된다면 페이지 적재를 수행합니다./* R..

WEEK 13 PintOS TIL(6월6일 금요일)

[목표]fork를 제외하고 모든 테스트 케이스가 돌아가는지 확인해봅니다. (진행중)fork도 돌아갈 수 있는 코드를 만듭니다.09:55 ~ 10:30빨래를 하고 왔습니다.10:30 ~ 12:00어제의 내용을 정리해서 게제했습니다. 그러나 다른 코드 트러블 슈팅 내용이나 어떻게 구현했는지 작성해야될 것들이 많아서 식사하고 정리를 해야될 것 같습니다.12:00 ~ 14:00햄버거를 먹으러 갔다왔습니다. 오면서 올리브영에서 선스프레이를 사서 왔다.14:00 ~ 16:30Memory Managment라는 부분을 노션에 정리했습니다. 어떻게 구현했는지. 어떤식의 함수와 구조체를 썻는지 써두었습니다.16:30 ~ 18:00운동(어깨)를 하고, 샤워하고 왔습니다.18:00 ~ 19:40식사와 휴식을 가졌습니다.19:..

728x90