이번엔 Unmapping 관련 내용을 다뤄볼건데, 기본 내용은 이전 게시글과 같다. 그러니 munmap syscall & do_munmap에 관해서만 다루겠다. 그렇다 해도 unmapping 관련해서 수정/구현해야 할 내용이 훨씬 많다ㅎ... munmap syscal
핀토스 정리를 다 끝내지 못 한 상태에서 나만무 주간이 시작되어 계속해서 작성을 미뤘다. 개인적인 욕심으로 핀토스만은 마지막까지 정리를 하고 싶었기 때문에 뜨문뜨문한 기억으로 정리를 마무리 지어보려고 한다ㅎ.. 거의 세 달이 되어가기 때문에 그 때만큼 자세하게 작성하진
📍세 번째 과제, Stack Growth 프로젝트 2에서 스택은 USER_STACK에서 시작하는 단일 페이지였으며, 이 크기를 4KB로 제한해 실행했다. 이제 해당 파트에서는 스택이 현재 크기를 초과할 때 필요에 따라 추가 페이지를 할당하는 Stack Growth를
먼저 page_fault() 함수를 보면 해당 함수는 page fault가 발생했을 때 제어권을 받아 처리하는 함수다.접근한 메모리에 물리 프레임이 존재하지 않을 경우 spt에서 인자로 받은 가상주소에 해당하는 페이지를 확인한다. 존재한다면 쓰기 가능한 페이지인지(wr
📍 두 번째 과제, Anonymous Page 이번 파트에서는 Anonymous Page(non-disk based image)를 구현한다. > Anonymous Page? 🤔 익명 매핑에는 백업 파일이나 장치가 없다. file-backed page와 달리 이름이
프로젝트3) Virtual Memory(1) - Mamory Management 현재까지 구현한 PintOS는 여러개의 스레드를 알맞게 동기화/핸들링할 수 있고, 여러 개의 유저 프로그램을 한 번에 로드할 수 있다. 그러나 돌릴 수 있는 프로그램의 개수와 사이즈는 메
: 컴퓨터 시스템에서 물리 메모리의 한계를 극복하고 효율적인 메모리 관리를 위해 사용되는 기술등장 배경컴퓨터의 실제 물리 메모리(RAM)은 한정되어 있어 많은 프로그램을 동시 실행하기 어렵다.하드 디스크를 이용해 이를 실제 메모리처럼 사용해 더 많은 프로그램이 실행될
📍프로세스 관련 시스템 콜 구현 프로세스 관련 시스템 콜을 구현하기 위해선 프로세스 계층 구조를 먼저 구현해야 한다. 🛠️ 프로세스 계층 구조 프로세스는 실행 도중 시스템 호출을 통해 다른 프로세스를 생성할 수 있다. 부모 프로세스: 새 프로세스를 생성한 프로세스
시스템 콜 종류에 따라 파일 관련 시스템 콜 & 프로세스 관련 시스템 콜 나누어서 정리하겠다.구현 목록: create, remove, open, filesize, read, write, seek, tell, closeparsing을 할 때와 마찬가지로, 파일을 다루는
시스템 콜?: 사용자 모드 프로그램이 커널 기능을 사용할 수 있도록 하는 인터페이스로, 커널모드에서 실행되며 처리 후 사용자 모드로 복귀된다.현재 Pintos에는 시스템 콜 핸들러가 구현되어 있지 않아서 시스템 콜을 호출할 수 없으며, 응용 프로그램이 실행되지 않는다.
📍두 번째 과제, User Memory Access (유저 메모리 접근) 시스템 콜 기능을 구현하기 위해, 유저 가상 주소 공간에 데이터를 읽고 쓰기 위한 방법을 제공해야 한다. 인자를 받을 때는 이 방법이 필요하지 않지만, 시스템 콜의 인자로 들어온 포인터로부터
3주간 진행했던 핀토스 프로젝트 1,2를 마치고 3이 시작됐다.좀 더 미리 업로드 했어야 하는데 발제하는 날 새벽까지 과제를 붙잡고 있느라 회고가 늦어졌다.사실 작성하게 된 현재 시점까지도 완벽히 이해했다고는 할 수 없긴 하다.. (〃⌒▽⌒〃)ゝ프로젝트 2의 한마디
Main Goal: Multi Level Feedback Queue 스케줄러 구현priority scheduler는 priority에만 의존하기 때문에 우선순위가 낮은 thread들은 cpu를 점유하기 어렵고, 이로 인해 평균 반응 시간이 커질 위험이 있다.우선순위 d
어제 드디어 priority까지 끝냈다.. 발제한 지 8일 만에...확실히 priority가 더 어려웠다.alarm은 처음에 아무것도 모르는 상태에서 감 잡느라 더 어렵게 느껴졌던 거 같다.아무튼 mlfqs 들어가기 전에 priority도 가볍게 정리하고 마무리 해야겠
악명이 자자했던 Pintos 주차의 시작...처음엔 뭐부터 어떻게 해야 할 지 막막했지만, 일단 키워드부터 공부한 후에 과제 git book 찔끔찔끔 봤다.키워드는 일단 추후에 공부하면서 정리해서 업로드 해야겠다🥹...그러다가 옆 분반 분께서 kaist 교수님께서 과
OSI 7계층: 네트워크 통신이 일어나는 과정을 7단계로 나눠 정의한 네트워크 표준 모델7계층(응용): 응용 프로세스와 직접 관계해 응용 서비스 수행 (사용자와의 인터페이스 제공)6계층(표현): 전달하거나 받는 데이터의 표현방식을 결정 (데이터 변환, 압축, 암호화 등
Implicit Free List header에 있는 block size로 다음 블록의 위치를 '묵시적'으로 가리킴 (가용 블록이 헤더 내 필드 'block size'에 의해 묵시적으로 연결) *장: 구조 간단, 구현 편함 *단: 탐색 시 전체 블록 순회 주요 함수
: 프로세스들은 cpu와 메인 메모리를 다른 프로세스들과 공유한다.\-> 이 때 메인 메모리를 공유하다보면 프로세스들의 속도가 느려지거나, 실행하지 못 하게 될 수도 있고, 메모리는 손실에도 취약하다.메모리를 보다 효율적으로 관리하기 위해 현대의 시스템에서는 가상메모리
묵시적(Implicit) 형변환컴파일러에 의해 자동으로 형변환이 이루어지는 것표현 범위가 작은 데이터 타입 -> 큰 데이터 타입으로의 변환만 허용함ex) int a + float b => int형은 float형으로 묵시적 형변환이 이루어짐명시적(Explicit) 형변환