본문 바로가기

PintOs

(3)
[PintOs] Project 3 : Virtual Memory PintOs의 세 번째 프로젝트 VM 구현 진행은 아래와 같다. 1. 보조 페이지 테이블 & frame 구조체 구현 2. Anonymous 페이지 & Lazy Loading & page fault 구현 3. Stack growth & 스택에 대한 page fault 처리 추가 4. File-backed 페이지 & mmap, munmap 구현 5. Swap In/Out 구현 기존에 사용하던 페이지 테이블 - pml4 이외에 pml4이 담지 못하는 정보를 위한 보조 페이지 테이블을 구현해야 한다. 보조 페이지 테이블은 배열, list, hash, bitmap 등 pintos에서 제공하는 자료구조 중 원하는 것을 선택해 사용하면 된다. 우리는 hash를 선택했다. gitbook에서 가볍게 추천하기도 했고, 늘..
[PintOs] PROJECT 2 : USERPROG 크래프톤 정글 8-9주차 Project 2는 사용자 프로그램에 대한 구현으로 사용자가 이용할 시스템콜에 대한 구현이 중점이다. Argument Passing 터미널에서 프로그램을 실행할 때, 프로그램에서 사용할 변수를 함께 입력하는 경우가 있다. 우리가 기본 코딩 스켈레톤에서 자주 볼 수 있는 main(argc, argv[])를 보면, 두 매개변수 중 argv[]가 프로그램 시작과 함께 입력받은 인자 배열이다. 이 인자로 들어온 문자들을 프로세스마다 갖고 있는 USERSTACK에 직접 Push하는 작업을 구현해야 한다. 프로세스가 사용하는 스택은 두 종류가 있다. 유저스택과 커널스택, 두 스택 모두 각 프로세스마다 고유한 가상 메모리 구역을 받는다. USER가 사용하는 스택은 User Mode에서 호출하..
[PintOs] PROJECT1: THREADS 크래프톤정글 7주차 이번 주차는 카이스트에서 제공하는 'PintOs 구현하기' 입니다. 카이스트에서 제공하는 핀토스 자료 Introduction · GitBook No results matching "" casys-kaist.github.io Alarm Clock 1차 시도 아래 APPENDIX 항목에 스레드와 동기화 등에 대한 설명과 간단한 코드 예제가 있는데 그 중 모니터monitor라는 동기화 기법을 사용하려 했다. 이유는 모니터 설명에 자유로운 조건 변수 설명이 있었는데 e.g. "some data has arrived for processing" or "over 10 seconds has passed since the user's last keystroke". 저 시간을 조건 변수로 설정할 수 있다는 설명에 꽂혔다..