read-normal test case에서 발생한 오류이다.. 페이지 폴트가 발생한 모습..test를 통과하기 위해서 test case 출력문을 확인해봤다.close 함수가 호출되는 것을 확인아직 구현하지 않은 close를 구현하고 난 후 log뭔데 fail이 나는데.
process_wait를 구현하려고 보니까 자식 프로세르를 찾아서 pid를 반환해줘야 함.디버깅해서 보니까 child_tid는 3인 걸 확인.역시 pid는 3.그리고 thread구조체에 어떤 값이 들어가는 지 확인하려고 다 찍어봤다.여기서 내가 생각한 것.어떻게 pid
fork()시작... 전달된 pte_for_each_func의 누락된 부분을 채워야 한다.이 말은 곧 인자로 들어가는 duplicate_pte()함수를 수정하라는 말이다.한마디로 process_fork(), \_\_do_fork(), duplicate_pte() 3개의
이게 어떻게 도움이 되는 거지?? 일단 64bit 가상 주소라고 한다. 4kib크기를 가지는 가상 메모리의 연속된 영역? 마지막 12bit에는 page offset이 있고, 상위 12bit에는 …? 이런 형태로 가상 주소가 만들어져 있다고 되어있는데?? 프
프레임은 page로 구성되어 있고, 실제 데이터를 저장할 수 있다.하나의 frame에는 하나의 page를 할당하고 있다.그리고 물리 메모리와 매핑되어 있는 커널 가상 주소를 담고 있다.근데 이 frame 정보를 어떤 식으로 사용하는 거지?lock에 대한 개념이 잘 안
메모리 레이아웃 이해와 구현
실제 메모리까지 그려놓은 메모리 레이아웃이다. 그림을 보면 kernel 가상 메모리와 실제 메모리가 1대1로 매핑되어 있는 모습을 볼 수 있다. 일단 메모리 영역의 top부터 아래로 내려오자면 kernel pool과 user pool 공간이 있다. 구현을 하면서
src와 dst를 선언하고,해쉬의 struct를 가져온다(hash_elem)가져온 해쉬 테이블을 순회하고 → 시작 지점을 구하고, hash struct size, hash_elem 주소를 받는다. 페이지 복제()복제할 때 뭐가 필요하지?src→커널 주소? aux? →
전반적인 구현 계획명세 정리: 요소 이름들 확실히 잡고 가기그림으로 추상화하기컨트롤 플로우아키텍처도 그려보기수도코드한번 싹 정리코딩디버깅swap out()→ mmap()은 Disk에 file을 backup하고, 매핑해주는 함수??→ addr, length, fd, of
매핑된 addr을 받아서 매핑을 해제한다.매핑이 file backed page인지 anon page인지 checkfault stack growth case인지 && anon + lazy load인지 checkmmap()한 걸 해제할 때→ munmap(void \*add
do_munmap() debug mmap-munmap test 설명 : 이 테스트는 mmap()에 의해 매핑된 메모리가 실제로 읽을 수 있는지와, munmap() 이후에 해당 메모리에 접근하면 실패(즉, 페이지 폴트)가 발생해야 하는지를 검증하는 테스트. bef
rax의 값을 보면 이상한 쓰레기 값을 반환하고 있다. 문제 발생 근원지를 찾기 위해 로그를 찍어봤더니do_munmap()의 spt page를 해제해주는 부분에서 문제가 발생했다.find_elem에서 hash elem의 주소가 Null값이 반환되었기 때문이라고 예상하고
swap slot? → disk 공간에 있는 page size 정도의 공간을 말함.page size에 따라 정렬해야 한다.같은 프레임을 참조하는 여러 page들(aliases)를 조심해라.유저 가상 주소로 접근한 것인지 checkswap table을 관리해야 한다pro
→ disk를 초기화 한다.→ disk의 정보를 가져와서→ disk size를 계산한다.→ swap table을 생성한다.read(slot idx)swap disk → anon page로 데이터를 읽어와야 한다.bitmap reset(slot idx)slot을 다시 사
폴더 기반 라우팅 서비스를 사용한다?MVC 모델을 사용한다.typeScript 기반이다.JS에서의 함수 ‘⇒’ 이거 사용하면 어떻게 동작되는 지typeScript 강의 듣고 와야되나? 간단한 filter()함수 썼는데 이해가 안되네?'위 코드에서 log를 찍었을 시 s
목표 : movies의 list를 check해야 함movies가 비어있는 지 checkgetAll()의 type이 list type인지 check목표 : id를 받아서 movies list에 있는 id를 find()해서 가져옴id값이 number type인 지 chec
프레임워크 공부하면서 한참동안 블로그를 작성하지 못했다..굳이 연습하는 코드를 블로그에 적으면 뭐하나 싶기도 했고..chat 서식에 img 첨부 가능하도록 기능 구현prettier extention 설치해서 은채가 올려준 guide보고 따라하기팝업창 구현 어떻게 할 지
진짜 만들기 싫었지만 기존 코드에서는 img 삽입 방식을 커스텀하기가 어려워서 한땀한땀 다 가져다 붙였다.img와 link를 넣다보니 코드가 굉장히 길어졌다.이 부분의 핵심은 file 삽입과 삽입된 file의 미리보기 기능이다.요즘들어 ai 의존도가 다시 높아졌다. 이
아래 코드들은 폴더 구조가 필요한 이유를 좀 더 구체적으로 설명하기 위한 예시 코드입니다.utils folder를 따로 생성하는 이유가 뭐임? 해당 folder에 어떤 file을 담을건데?hooks 자주 쓰는 동작을 커스텀 해야 되는 이유가 뭐임?auth 폴더를 생성하