총 4개
-
Pintos Project 1 final report - Alarm clock, Priority Scheduling, Advanced Scheduling2025.01.161. Alarm clock 기존의 busy-waiting 방식을 sleep/wake-up 방식으로 변경하는 것은 시스템 자원을 효율적으로 사용하는 데 매우 중요하다. busy-waiting 방식은 프로세서가 일정한 시간동안 아무 작업도 하지 않고 반복적으로 상태를 확인하는 방법으로, 타이머나 조건이 충족될 때까지 CPU가 루프를 반복하며 기다린다. 이로 인해 CPU 사이클을 낭비하게 됨으로써 CPU 자원이 불필요하게 낭비되고, 전력 소비를 증가시킬 수 있다. 반면, sleep/wake-up 방식은 프로세서가 작업을 기다리는 동안 유...2025.01.16
-
Pintos Project 1 한국어 설명서 (design report) - Alarm clock, Priority Scheduling, Advanced Scheduling2025.01.161. thread Pintos에서는 thread creation과 thread completion, Round-Robin 방식의 thread switching(simple scheduler)을 이미 구현해 두었다. kernel thread의 struct는 'threads/thread.h'에 선언되어 있으며, thread structure은 4kB page를 차지한다. struct thread는 page의 시작부분부터 공간을 차지하고, 나머지 부분은 thread의 stack을 위해 이용된다. 따라서 kernel stack을 위한 공간...2025.01.16
-
Pintos Project 2 한국어 설명서 (design report) - User Program, System Call2025.01.161. Process Execution Procedure 프로젝트 2에서는 user program을 실행시키는 것이 주요 내용이다. main() 함수에서 command line을 읽어들이고 parsing한 후 run_action() 함수를 통해 실행할 프로그램을 process_execute()로 전달한다. process_execute()는 thread_create()를 호출하여 새로운 kernel thread를 생성하고, 이 thread는 start_process()를 실행한다. start_process()에서는 load() 함수를 ...2025.01.16
-
Pintos Project 2 final report - User Program, System Call2025.01.161. Process termination message 프로세스가 종료될 때마다 프로세스 종료 메시지를 출력해야 한다. 종료 메시지의 출력 예시와 형식은 printf('%s: exit(%d) ', variable_1, variable_2)와 같다. variable_1은 프로세스의 이름이고, variable_2는 exit 코드이다. 2. Argument passing 사용자가 입력한 명령어는 프로그램 이름과 함께 다양한 옵션들이 붙는데, 이를 모두 인식할 수 있도록 구현해야 한다. 현재 Pintos는 전체 명령어를 하나의 프로그램 이...2025.01.16