Week11 PintOS Filesystem File Allocation Table (FAT) swift-shame-3ee.notion.site File Allocation Table (FAT) sector 각 sector들은 sector number를 통해 접근할 수 있다 → disk에서 주소 역할 disk는 일정한 크기(512bytes)를 가지는 sector로 나누어져있다 cluster file을 저장하는 단위 1개 혹은 다수의 sector로 구성 → pintos에서는 1 cluster = 1 sector 큰 file의 경우 다수의 cluster에 저장된다 하나의 file을 저장하는 다수의 cluster를 배치하는 방법 여러가지가 있다 연속된 space에 배치 external fragmentation..
Week10 PintOS Virtual Memory 참조 swift-shame-3ee.notion.site [ELF] ELF Header ELF 란 용어를 많이 들어보셨을텐데요, ELF는 Executable and Linking Format의 약어입니다. UNIX / LINUX 기반에서 사용되는 실행 및 링킹 파일 포맷입니다. 이번 글에서는 ELF 파일 포맷에 대해 알아보겠습니 sonseungha.tistory.com [ELF] Segment와 Program Header ELF 란 용어를 많이 들어보셨을텐데요, ELF는 Executable and Linking Format의 약어입니다. UNIX / LINUX 기반에서 사용되는 실행 및 링킹 파일 포맷입니다. 지난 글에 이어 이번 글에서는 ELF 파일 포..
Week 09 PintOS UserProgram Argument Passing swift-shame-3ee.notion.site Argument Passing 프로시저 실행 순서 user app은 %rdi, %rsi, %rdx, %rcx, %r8, %r9의 값을 argument로 가져온다 caller는 return address를 자신의 stack에 저장한 후에 callee로 간다(CALL instruction) callee 실행 callee가 return이 있으면 %rax에 저장 return address으로 다시 돌아감(RET instruction) %rdi(첫번째 인자) → int argc %rci(두번째 인자) → char **argv argv는 user stack에 저장 및 stack point..
Week 08 PintOS Threads 1. Alarm Clock swift-shame-3ee.notion.site 1. Alarm Clock 현재 thread를 정해진 시간 후에 다시 시작하는 system call 기존에는 Busy waiting 방식 정해진 시간 동안 계속 바쁜 일을 시켜서 기다리게 하는 방식 pintos에서는 정해진 시간이 지나기 전까지 해당 thread가 cpu를 점유할 때마다 yield시켜버리는 방식 → 다시 ready list로 돌아감 → 다시 cpu 점유하러 올 수 있음 바로 yield되지만 context switching은 계속 일어나기 때문에 자원 낭비 Sleep-Wakeup 방식으로 변경 정해진 시간 동안 해당 thread를 block시켜서(sleep) ready li..