소스파일 include/vm/vm.h, vm/vm.c 가상메모리에 대한 일반 인터페이스 제공 여기서 추가 테이블 구현 include/vm/uninit.h, vm/uninit.c 초기화되지 않은 페이지(vmtype = VMUNINIT)에 대한 작업 제공 모
프로젝트 2까지는 스택이 USER_STACK위치를 시작 주소로 하는 고정된 단일 페이지였고 프로그램의 실행인 이 안에서 해결 가능한 사이즈로 한정 지어졌다. 본 프로젝트에서는 지금의 스택 사이즈를 넘어가면 필요한 만큼 추가 페이지를 할당해준다. 스택 접근으로 나타내는
과제 목표 커맨드 라인에서 파싱 기능 구현 과제 설명 현재 PintOS는 프로그램과 인자를 구분하지 못하는 구조 ex> $ls -a 를 입력하면 PintOS는 'ls -a'를 하나의 프로그램 명으로 인식 프로그램 이름과 인자를 구분하여 스택에 저장하고 인자를 프로
Process process environment block(PEB) provess identifier(PID) user stack :) 유저 모드 프로세스 스택 (user mode process stack) 유저 모드 프로세스 스택의 경우, 알다시피 가상주소로
A named collection of related information일반적으로 비휘발성의 보조기억장치에 저장운영체제는 다양한 저장 장치를 file이라는 동일한 논리적 단위로 볼 수 있게 해줌operationcreate, read, write, reposition
Memory allocation continous memory allocation(연속 할당) : 프로세스(context)를 하나의 연속된 메모리 공간에 할당하는 정책 uni-programming : 하나의 프로세스만 메모리 상에 존재, 가장 간단하나 프로그램의
hole : 가용 메모리 공간, free blockFirst-fit : size 가 n 이상인 것 중 최초로 발견한 hole에 할당Next-fit : size가 n 이상인 것 중 최초로 발견한 hole에 할당 하나 탐색 범위는 이전에 할당한 블럭의 다음 부터 시작Bes
block : 보조기억장치와 주기억 장치 사이의 데이터 전송 단위, 1 ~ 4 KBword : 주기억 장치와 레지스터 사이의 데이터 전송 단위, 16 ~ 64 bitaddress binding : 프로그램의 논리 주소를 실제 메모리의 물리 주소로 매핑하는 작업bindi
우선순위 역전 : 상대적으로 우선순위가 높은 프로세스가 마치 우선순위가 낮은 프로세스 처럼 실행되는 현상, 공유자원에 대한 lock에 대한 개념때문에 발생하는 현상 우선순위 역전 해결 방법 우선순위 상속 기법 (Priority Inheritance Protocol)
다중 프로그랭 시스템이란 여러개의 프로세스들이 존재 가능하고 프로세스들은 서로 독립적으로 동작한다. 이 작업은 동시에 이루어 질 수 있는데 이때 공유자원 또는 데이터가 있으면 문제 발생이 가능하다. 동기화 프로세스들이 서로 동작을 맞추는것 프로세스들이 서로 정보를 공
Deadlock state : 프로세스가 발생 가능성이 없는 이벤트를 기다리는 경우, 시스템내에 deadlock에 빠진 프로세스가 있는 경우 starvation은 cpu를 기다리면서 ready상태에 존재하게 되는데 우선순위가 오지 않아 대기하고 있는 상태이고 dead
우리가 사용하는 환경은 다중프로그래밍 환경으로 여러개의 프로세스가 시스템 내 존재한다. 때문에 자원을 할당할 프로세스를 선택해야 하는데 이 과정을 스케줄링이라고 한다.하나의 자원을 여러개의 스레드들이 번갈아 가며 사용 ex> 프로세서프로세스 스케줄링 : 프로세서 사용시
https://casys-kaist.github.io/pintos-kaist/introduction/getting_started.html project 1 threads/: 커널을 위한 소스 코드들이 있고 project 1에서 수정하여 사용한다. devices/: 입