Skip to content

Latest commit

Β 

History

History
104 lines (64 loc) Β· 2.7 KB

template.md

File metadata and controls

104 lines (64 loc) Β· 2.7 KB

πŸ“– [κ°œλ… 이름]

1. κ°œλ… μš”μ•½

[ν•΄λ‹Ή κ°œλ…μ˜ 핡심 λ‚΄μš©μ„ κ°„λ‹¨νžˆ μš”μ•½ν•©λ‹ˆλ‹€. 이 κ°œλ…μ΄ 무엇이며, μ™œ μ€‘μš”ν•œμ§€μ— λŒ€ν•΄ μ„€λͺ…ν•˜μ„Έμš”.]


2. μ„ΈλΆ€ μ„€λͺ…

[κ°œλ…μ— λŒ€ν•œ ꡬ체적인 μ„€λͺ…을 μž‘μ„±ν•©λ‹ˆλ‹€. κ΅¬ν˜„κ³Ό κ΄€λ ¨λœ λ™μž‘ 원리, μ£Όμš” κ°œλ…, κ΄€λ ¨ μš©μ–΄ 등을 ν¬ν•¨ν•©λ‹ˆλ‹€.]

  • [μ£Όμš” νŠΉμ§• 1]
  • [μ£Όμš” νŠΉμ§• 2]

예:

  • μŠ€λ ˆλ“œ(Thread): Pintosμ—μ„œ λͺ¨λ“  μ‹€ν–‰ λ‹¨μœ„λŠ” μŠ€λ ˆλ“œλ‘œ κ΅¬ν˜„λ©λ‹ˆλ‹€. 각 μŠ€λ ˆλ“œλŠ” κ³ μœ ν•œ μŠ€νƒκ³Ό μ»¨ν…μŠ€νŠΈλ₯Ό 가지며, μ—¬λŸ¬ μŠ€λ ˆλ“œκ°€ CPUλ₯Ό κ³΅μœ ν•©λ‹ˆλ‹€.

3. κ΄€λ ¨ μ½”λ“œ

[이 κ°œλ…κ³Ό κ΄€λ ¨λœ μ½”λ“œ μœ„μΉ˜λ‚˜ κ΅¬ν˜„ 방법을 μ„€λͺ…ν•©λ‹ˆλ‹€.]

  • 파일 μœ„μΉ˜: src/threads/[파일λͺ…]
  • μ£Όμš” ν•¨μˆ˜:
    • function_name(): [ν•¨μˆ˜μ˜ μ—­ν•  및 κ°„λ‹¨ν•œ μ„€λͺ…]
    • function_name_2(): [ν•¨μˆ˜μ˜ μ—­ν•  및 κ°„λ‹¨ν•œ μ„€λͺ…]

예:

/* threads/thread.c */
/* μŠ€λ ˆλ“œλ₯Ό μ΄ˆκΈ°ν™”ν•˜λŠ” ν•¨μˆ˜ */
void initialize_thread(struct thread *t, const char *name, int priority) {
    ASSERT(t != NULL);
    ASSERT(name != NULL);
    t->priority = priority;
    /* Additional initialization code here */
}

4. Pintosμ—μ„œμ˜ μ—­ν• 

[ν•΄λ‹Ή κ°œλ…μ΄ Pintosμ—μ„œ μ–΄λ–»κ²Œ μ‚¬μš©λ˜κ³ , κ΅¬ν˜„ μ‹œ μ–΄λ–€ λΆ€λΆ„μ—μ„œ μ€‘μš”ν•œ 역할을 ν•˜λŠ”μ§€ μž‘μ„±ν•©λ‹ˆλ‹€.]

예:

  • μŠ€λ ˆλ“œ 관리:
    • μŠ€λ ˆλ“œλŠ” Pintosμ—μ„œ κΈ°λ³Έ μ‹€ν–‰ λ‹¨μœ„λ‘œ, CPU μŠ€μΌ€μ€„λ§ 및 λ™κΈ°ν™”μ˜ μ£Όμš” λŒ€μƒμž…λ‹ˆλ‹€.
    • μŠ€λ ˆλ“œμ˜ μƒνƒœ(ready, running, blocked)λŠ” CPU μŠ€μΌ€μ€„λ§μ— 영ν–₯을 μ€λ‹ˆλ‹€.

5. 이해λ₯Ό λ•λŠ” 예제

[κ°œλ…μ„ μ΄ν•΄ν•˜λŠ” 데 도움이 λ˜λŠ” κ°„λ‹¨ν•œ μ½”λ“œ μ˜ˆμ œλ‚˜ μ‹œλ‚˜λ¦¬μ˜€λ₯Ό μž‘μ„±ν•©λ‹ˆλ‹€.]

예:

/* μŠ€λ ˆλ“œ 생성과 μ‹€ν–‰ */
struct thread *t = thread_create("worker", PRI_DEFAULT, worker_function, NULL);
/* μƒμ„±λœ μŠ€λ ˆλ“œ μ‹€ν–‰ */
thread_unblock(t);

6. μ£Όμš” κ΅¬ν˜„ 단계

[이 κ°œλ…μ„ κ΅¬ν˜„ν•˜κΈ° μœ„ν•΄ ν•„μš”ν•œ 단계 및 μ ‘κ·Ό 방식을 λ‚˜μ—΄ν•©λ‹ˆλ‹€.]

  1. [단계 1: μ„€λͺ…]
  2. [단계 2: μ„€λͺ…]
  3. [단계 3: μ„€λͺ…]

7. κ΄€λ ¨ κ°œλ…

[이 κ°œλ…κ³Ό κ΄€λ ¨λœ λ‹€λ₯Έ κ°œλ…μ΄λ‚˜ κ΅¬ν˜„ μš”μ†Œλ₯Ό λ§ν¬ν•˜κ±°λ‚˜ κ°„λ‹¨νžˆ μ„€λͺ…ν•©λ‹ˆλ‹€.]

  • [κ΄€λ ¨ κ°œλ… 1]
  • [κ΄€λ ¨ κ°œλ… 2]

예:

  • μŠ€μΌ€μ€„λ§(Scheduling): μŠ€λ ˆλ“œμ˜ μ‹€ν–‰ μˆœμ„œλ₯Ό κ²°μ •ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜. κΈ°λ³Έ μ•Œκ³ λ¦¬μ¦˜μ€ priority schedulingμž…λ‹ˆλ‹€.

8. 참고 자료

[νŒ€μ›λ“€μ΄ 더 깊이 이해할 수 μžˆλ„λ‘ μ°Έκ³ ν•  자료(λ¬Έμ„œ, 링크 λ“±)λ₯Ό μ œκ³΅ν•˜μ„Έμš”.]