오늘 한 일 👩💻
- 알고리즘 문제 풀이
- gitbook - Anonymous Page
- PintOS 구현 시작
알고리즘
https://school.programmers.co.kr/learn/courses/30/lessons/161990
gitbook
https://mywnajsldkf.tistory.com/48
Pintos 구현
오늘은 Virtual Memory - Supplemental Table 구현을 시작했다.
어떤 것부터 해야할까 고민하다가, 일단 만들라고 하는 함수부터 구현하기 시작했다. 확인해보니 함수 안에 또 다른 함수를 구현하는 작업들도 있었다.
이번 주차는 저번과 다르게 중간중간 구현한 것을 테스트 케이스만 가지고 하기에는 어려웠다.
그래서 이번에는 ASSERT문을 적극 활용하기로 해봤다.
예를들어, 이런식으로 확인하는 것이다.
void
supplemental_page_table_init (struct supplemental_page_table *spt UNUSED) {
// supplemental_page_table 테이블을 초기화한다.
// ✅ 테스트할 때
// bool initialize_hash = hash_init(&spt->spt_hash, hashing, hash_less, NULL);
// ASSERT(initialize_hash != true); // initialize_hash가 true라면 프로그램을 종료시킨다.
hash_init(&spt->spt_hash, hashing, hash_less, NULL);
}
ASSERT문이 중간중간에 있어서, 활용도가 높긴하지만 몇몇은 해당 함수에 도달하기 전에 터져서 어떤 곳에 ASSERT문을 둬야할지 고민된다. 적극 활용하고 싶은데, 생각보다 어렵다.
이론도 좋지만, 구현에서 얻어가는 것도 많은 것 같다.
내일 할 일 📝
- Memory Management 구현
- 알고리즘
- 주간 발표 준비
반응형