
Pintos Project 1 한국어 설명서 (design report) - Alarm clock, Priority Scheduling, Advanced Scheduling
본 내용은
"
Pintos Project 1 한국어 설명서 (design report) - Alarm clock, Priority Scheduling, Advanced Scheduling
"
의 원문 자료에서 일부 인용된 것입니다.
2024.06.15
문서 내 토픽
-
1. threadPintos에서는 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을 위한 공간을 위해 struct thread는 너무 크기가 크면 안 되며, kernel function에서도 non-static local variable 같이 너무 많은 공간을 할당하지 않고 동적 할당 function을 사용해야 한다. struct thread의 주요 멤버로는 tid_t tid가 있는데, 이는 thread identifier를 뜻하며 현재는 int 자료형에 1부터 numbering되게끔 짜여져 있다.
-
1. threadThread는 프로그래밍에서 매우 중요한 개념입니다. 하나의 프로세스 내에서 독립적으로 실행되는 실행 흐름을 의미하며, 이를 통해 프로그램의 효율성과 응답성을 높일 수 있습니다. 멀티스레딩을 통해 CPU 자원을 효율적으로 활용할 수 있고, 병렬 처리를 통해 작업 처리 속도를 높일 수 있습니다. 하지만 동기화 문제, 데드락, 경쟁 조건 등의 문제가 발생할 수 있어 주의해야 합니다. 이를 해결하기 위해 잠금 메커니즘, 세마포어, 모니터 등의 기법을 사용해야 합니다. 또한 스레드 간 통신과 동기화를 위한 다양한 기법들이 필요합니다. 전반적으로 thread는 프로그래밍에서 매우 중요한 개념이지만, 이를 올바르게 사용하기 위해서는 많은 주의와 노력이 필요합니다.