Skip to content

pintos-final/pintos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

11 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ”„ ์ž‘์—… ํ๋ฆ„

1. ์ด์Šˆ ์ƒ์„ฑ

์ œ๋ชฉ: [Project 1] Alarm Clock ๊ตฌํ˜„
๋‚ด์šฉ: ํ…œํ”Œ๋ฆฟ์— ๋งž์ถฐ ์ž‘์„ฑ

2. ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ ๋ฐ ์ฒดํฌ์•„์›ƒ

git checkout develop
git pull origin develop
git checkout -b feat/alarm-clock

3. ์ž‘์—… & ์ปค๋ฐ‹

*# ์ž‘์—… ํ›„ ์Šคํ…Œ์ด์ง•*
git add threads/thread.c devices/timer.c

*# ์ปจ๋ฒค์…˜์— ๋งž๊ฒŒ ์ปค๋ฐ‹*
git commit -m "feat: sleep_list ์ž๋ฃŒ๊ตฌ์กฐ ๊ตฌํ˜„"

4. ํ‘ธ์‹œ & PR ์ƒ์„ฑ

git push origin feat/alarm-clock

โ†’ GitHub์—์„œ PR ์ƒ์„ฑ (develop โ† feat/alarm-clock)

5. ์ฝ”๋“œ ๋ฆฌ๋ทฐ & ๋จธ์ง€

  • ํŒ€์› ๋ฆฌ๋ทฐ ํ›„ Approve
  • Squash and Merge ๋˜๋Š” Merge commit

๐ŸŒฟ ๋ธŒ๋žœ์น˜ ์ „๋žต

main (๋˜๋Š” master)
 โ””โ”€โ”€ develop
      โ”œโ”€โ”€ feat/alarm-clock
      โ”œโ”€โ”€ feat/priority-scheduling
      โ”œโ”€โ”€ feat/priority-donation
      โ””โ”€โ”€ fix/alarm-negative

๋ธŒ๋žœ์น˜ ๋„ค์ด๋ฐ

ํƒ€์ž… ํ˜•์‹ ์˜ˆ์‹œ
๊ธฐ๋Šฅ ๊ฐœ๋ฐœ gitname/project/๊ธฐ๋Šฅ๋ช… hyun/threads/alarm-clock
๋ฒ„๊ทธ ์ˆ˜์ • fix/๋ฒ„๊ทธ๋ช… fix/priority-inversion
๋ฆฌํŒฉํ† ๋ง refactor/๋Œ€์ƒ refactor/semaphore
๋ฌธ์„œ ์ž‘์—… docs/๋ฌธ์„œ๋ช… docs/readme

๐Ÿ“‹ ์ด์Šˆ & PR ์—ฐ๊ฒฐ

์ด์Šˆ ์ž๋™ ์ข…๋ฃŒ ํ‚ค์›Œ๋“œ

PR ๋ณธ๋ฌธ์— ์•„๋ž˜ ํ‚ค์›Œ๋“œ + ์ด์Šˆ๋ฒˆํ˜ธ ์ž‘์„ฑ ์‹œ ๋จธ์ง€๋˜๋ฉด ์ด์Šˆ ์ž๋™ ์ข…๋ฃŒ:

  • closes #123
    • Close๋Š” ๋‹จ์ˆœํžˆ ์ด์Šˆ๋ฅผ '๋‹ซ๋Š”๋‹ค'๋Š” ์˜๋ฏธ
    • ๋ฒ„๊ทธ ์ˆ˜์ •์ด ์•„๋‹Œ, ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ, ๋ฌธ์„œ ์—…๋ฐ์ดํŠธ, ๋ฆฌํŒฉํ† ๋ง ๋“ฑ ์ผ๋ฐ˜์ ์ธ ์ž‘์—…์ด ๋๋‚ฌ์„ ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉ
    • ์˜ˆ: "์‚ฌ์šฉ์ž ๋งค๋‰ด์–ผ ๋ฌธ์„œ ์ž‘์„ฑ ์™„๋ฃŒ", "๋ถˆํ•„์š”ํ•œ ์ฃผ์„ ์ œ๊ฑฐ"
  • fixes #123
    • ์ฃผ๋กœ ์ฝ”๋“œ์˜ ๋ฒ„๊ทธ๋‚˜ ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ–ˆ์„ ๋•Œ ์‚ฌ์šฉ
    • ์˜ˆ: "๋กœ๊ทธ์ธ ๋ฒ„ํŠผ์ด ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •"
  • resolves #123
    • ๋ฒ„๊ทธ ์ˆ˜์ •๋ณด๋‹ค๋Š” ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ, ๋ฌธ์˜, ๋˜๋Š” ์žฅ๊ธฐ์ ์ธ ๊ณผ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์„ ๋•Œ ์ ํ•ฉ
    • ๊ฐ€๋” ์—ฌ๋Ÿฌ ์ด์Šˆ๋ฅผ ๋™์‹œ์— ํ•ด๊ฒฐํ•  ๋•Œ๋‚˜, ๋ฒ„๊ทธ/๊ธฐ๋Šฅ ๊ตฌํ˜„์ด ์„ž์—ฌ ์žˆ์„ ๋•Œ ์ค‘๋ฆฝ์ ์ธ ํ‘œํ˜„์œผ๋กœ ์“ฐ๊ธฐ๋„ ํ•จ

๐Ÿ“˜ ํ”„๋กœ์ ํŠธ ์ปค๋ฐ‹ ์ปจ๋ฒค์…˜

๐Ÿ“ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ๊ตฌ์กฐ

<ํƒ€์ž…>: <์„ค๋ช…>

[๋ณธ๋ฌธ(์„ ํƒ)]

์˜ˆ์‹œ

feat: busy waiting ์ œ๊ฑฐ๋ฅผ ์œ„ํ•œ sleep_list ๊ตฌํ˜„

- timer_sleep()์—์„œ busy waiting ๋Œ€์‹  sleep_list๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ
์Šค๋ ˆ๋“œ๋ฅผ ๋ธ”๋ก์‹œํ‚ค๊ณ  timer_interrupt()์—์„œ ๊นจ์šฐ๋„๋ก ๋ณ€๊ฒฝ

๐Ÿท๏ธ ํƒ€์ž… (Type)

ํ•„์ˆ˜ ํƒ€์ž…

ํƒ€์ž… ์„ค๋ช… ์˜ˆ์‹œ
feat ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€ feat: priority scheduling ๊ตฌํ˜„
fix ๋ฒ„๊ทธ ์ˆ˜์ • fix: alarm-negative ํ…Œ์ŠคํŠธ ์‹คํŒจ ์ˆ˜์ •

์„ ํƒ ํƒ€์ž…

ํƒ€์ž… ์„ค๋ช… ์˜ˆ์‹œ
docs ๋ฌธ์„œ ์ˆ˜์ • docs: README์— ๋นŒ๋“œ ๋ฐฉ๋ฒ• ์ถ”๊ฐ€
style ์ฝ”๋“œ ํฌ๋งทํŒ…, ์„ธ๋ฏธ์ฝœ๋ก  ๋ˆ„๋ฝ ๋“ฑ (๊ธฐ๋Šฅ ๋ณ€๊ฒฝ X) style: ๋“ค์—ฌ์“ฐ๊ธฐ ์ˆ˜์ •
refactor ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง (๊ธฐ๋Šฅ ๋ณ€๊ฒฝ X) refactor: thread_yield ๋กœ์ง ๊ฐœ์„ 
test ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€/์ˆ˜์ • test: priority-donate ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€
chore ๋นŒ๋“œ, ์„ค์ • ํŒŒ์ผ ์ˆ˜์ • ๋“ฑ chore: Makefile ๊ฒฝ๋กœ ์ˆ˜์ •

โœ๏ธ ์„ค๋ช… (Subject) ๊ทœ์น™

  1. 50์ž ์ด๋‚ด๋กœ ์ž‘์„ฑ

  2. ๋งˆ์นจํ‘œ(.) ๊ธˆ์ง€

  3. ๋ช…๋ น๋ฌธ ํ˜•ํƒœ๋กœ ์ž‘์„ฑ (๊ณผ๊ฑฐํ˜• X)

  4. ์ฒซ ๊ธ€์ž ์†Œ๋ฌธ์ž (์˜์–ด์ผ ๊ฒฝ์šฐ)

    *# โœ… ์ข‹์€ ์˜ˆ*
    feat: sleep_list ์ž๋ฃŒ๊ตฌ์กฐ ์ถ”๊ฐ€
    fix: nested donation ๊นŠ์ด ์ œํ•œ ์ˆ˜์ •
    
    *# โŒ ๋‚˜์œ ์˜ˆ*
    feat: sleep_list ์ž๋ฃŒ๊ตฌ์กฐ ์ถ”๊ฐ€.     *# ๋งˆ์นจํ‘œ X*
    feat: Added sleep_list              *# ๊ณผ๊ฑฐํ˜• X*
    feat: Sleep_list ์ž๋ฃŒ๊ตฌ์กฐ ์ถ”๊ฐ€       *# ์ฒซ ๊ธ€์ž ์†Œ๋ฌธ์ž*
    

๐Ÿ“„ ๋ณธ๋ฌธ (Body) ๊ทœ์น™

  • ์„ค๋ช…๊ณผ ๋ณธ๋ฌธ ์‚ฌ์ด์— ๋นˆ ์ค„ ํ•„์ˆ˜

  • ๋ฌด์—‡์„, ์™œ ๋ณ€๊ฒฝํ–ˆ๋Š”์ง€ ์„ค๋ช…

  • 72์ž๋งˆ๋‹ค ์ค„๋ฐ”๊ฟˆ ๊ถŒ์žฅ

    feat: busy waiting ์ œ๊ฑฐ
    
    ๊ธฐ์กด timer_sleep()์€ while ๋ฃจํ”„๋กœ busy waitingํ•˜์—ฌ
    CPU ์ž์›์„ ๋‚ญ๋น„ํ–ˆ์Œ. sleep_list๋ฅผ ๋„์ž…ํ•˜์—ฌ ์Šค๋ ˆ๋“œ๋ฅผ
    ๋ธ”๋ก์‹œํ‚ค๊ณ  timer_interrupt()์—์„œ ๊นจ์šฐ๋„๋ก ๋ณ€๊ฒฝ.
    
    - thread ๊ตฌ์กฐ์ฒด์— wakeup_tick ํ•„๋“œ ์ถ”๊ฐ€
    - sleep_list๋ฅผ tick ๊ธฐ์ค€ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
    - timer_interrupt()์—์„œ ๊นจ์šธ ์Šค๋ ˆ๋“œ ํ™•์ธ
    

๐Ÿ“‹ ์ปค๋ฐ‹ ์˜ˆ์‹œ ๋ชจ์Œ

๊ธฐ๋Šฅ ๊ตฌํ˜„

*# Alarm Clock*
git commit -m "feat: thread ๊ตฌ์กฐ์ฒด์— wakeup_tick ํ•„๋“œ ์ถ”๊ฐ€"
git commit -m "feat: sleep_list ์ž๋ฃŒ๊ตฌ์กฐ ๊ตฌํ˜„"
git commit -m "feat: timer_sleep()์—์„œ busy waiting ์ œ๊ฑฐ"

*# Priority Scheduling*
git commit -m "feat: ready_list ์šฐ์„ ์ˆœ์œ„ ์ •๋ ฌ ๊ตฌํ˜„"
git commit -m "feat: sema_up()์—์„œ ์šฐ์„ ์ˆœ์œ„ ๊ธฐ๋ฐ˜ ์Šค๋ ˆ๋“œ ์„ ํƒ"

*# Priority Donation*
git commit -m "feat: lock ํš๋“ ์‹œ priority donation ๊ตฌํ˜„"
git commit -m "feat: nested donation ์ง€์›"
git commit -m "feat: multiple donation ์ง€์›"

๋ฒ„๊ทธ ์ˆ˜์ •

git commit -m "fix: alarm-negative ํ…Œ์ŠคํŠธ ์Œ์ˆ˜ tick ์ฒ˜๋ฆฌ"
git commit -m "fix: priority-donate-chain ๋ฌดํ•œ๋ฃจํ”„ ์ˆ˜์ •"
git commit -m "fix: fixed-point ์—ฐ์‚ฐ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ์ˆ˜์ •"

๋ฆฌํŒฉํ† ๋ง

git commit -m "refactor: thread_yield() ๋กœ์ง ๋‹จ์ˆœํ™”"
git commit -m "refactor: lock ๊ด€๋ จ ํ•จ์ˆ˜ ๋ถ„๋ฆฌ"

๋ฌธ์„œ

git commit -m "docs: README์— ํŒ€ ์ •๋ณด ์ถ”๊ฐ€"
git commit -m "docs: ๊ตฌํ˜„ ๋ฐฉ๋ฒ• ์ฃผ์„ ์ถ”๊ฐ€"

๊ธฐํƒ€

git commit -m "chore: .gitignore์— build ํด๋” ์ถ”๊ฐ€"
git commit -m "style: ์ฝ”๋“œ ํฌ๋งทํŒ… ํ†ต์ผ"
git commit -m "test: alarm ๊ด€๋ จ ๋””๋ฒ„๊ทธ ์ถœ๋ ฅ ์ถ”๊ฐ€"

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors