한 프로세스에서 다른 프로세스로 CPU를 넘겨주기 위해서CPU를 내어주는 프로세스의 상태를 그 프로세스의 PCB에 저장CPU를 새롭게 얻는 프로세스의 상태를 PCB에서 읽어옴Untitled주의! 프로세스 A가 interrupt나 system call로 인해 Kernel
인자로 받은 name이라는 이름을 가진 파일을 dir 디렉토리에 추가한다. inode_sector에는 파일의 inode가 있다.그림으로 그리면 이런 느낌이다.얘를 부르는 함수들은 각각filesys_createdo_formatfilesys_create_dirfilesys
유저 프로그램이 메모리 할당요청그러나 모든 프레임이 할당돼있음현재 사용중이지 않은 프레임을 디스크로 swap out이 swap out된 페이지에 유저프로그램이 접근하기를 시도할 시, OS는 해당 페이지의 내용을 메모리에 돌려놓음으로서 페이지를 복구시킴(swap in)이
Vitrual Memory의 3번째 과제는 이전까지 USER_STACK에서 시작한 단일 페이지로만 관리되던 스택을, 필요에 따라 추가 페이지를 할당해주는 구조로 변경해주는 과제이다."필요에 따라" 라고 함은, 접근이 스택에 대한 접근으로 보일때를 의미한다. 여기서 주로
현재 anonymous까지 구현을 마치고, 일부 돌아가지 않는 테스트들에 맞게 코드를 수정하고 있는 단계이다.핀토스는 하나의 프로세스를 만들고, 이를 fork해서 사용하는 방식이다. 이때, 첫 부분(하나의 프로세스를 만들기)에서 uninit 페이지를 생성하고, 이후 f
Page type Uninitialized page - Lazy initialization Anonymous page - Stack growth file-backed page - mmap syscall Swap in/out page replacement pol
Paging Virtual Page Physical Frame 페이징을 활용하여 frame과 page를 매핑한다. frame 물리 메모리를 fixedsizeblock 으로 쪼갠 것 page 논리(logical) 메모리를 samesizeblock으로 분할한
태초에 쓰레드가 생성되는 메모리 영역은 커널 영역쓰레드에게 명령어를 수행하도록 함.exec() 시스템 콜의 결과로 해당 쓰레드를 유저모드로 변경이때 해당 쓰레드가 실제로 메모리에 존재하는 곳은 여전히 커널모드유저 영역에서 작업하도록 하기 위해서 해당 쓰레드가 가르키는
Ready_list를 우선순위 순으로 정렬하여서, running thread를 결정하는 기준이 각 스레드의 우선순위가 되도록.synchronization의 구현 요소에 대한 Wait_list를 우선순위 순으로 정렬.우선순위가 높은 쓰레드가 낮은 쓰레드를 기다리고 있는