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