์ ๋ชฉ: [Project 1] Alarm Clock ๊ตฌํ
๋ด์ฉ: ํ
ํ๋ฆฟ์ ๋ง์ถฐ ์์ฑgit checkout develop
git pull origin develop
git checkout -b feat/alarm-clock*# ์์
ํ ์คํ
์ด์ง*
git add threads/thread.c devices/timer.c
*# ์ปจ๋ฒค์
์ ๋ง๊ฒ ์ปค๋ฐ*
git commit -m "feat: sleep_list ์๋ฃ๊ตฌ์กฐ ๊ตฌํ"git push origin feat/alarm-clockโ GitHub์์ PR ์์ฑ (develop โ feat/alarm-clock)
- ํ์ ๋ฆฌ๋ทฐ ํ 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 ๋ณธ๋ฌธ์ ์๋ ํค์๋ + ์ด์๋ฒํธ ์์ฑ ์ ๋จธ์ง๋๋ฉด ์ด์ ์๋ ์ข ๋ฃ:
closes #123- Close๋ ๋จ์ํ ์ด์๋ฅผ '๋ซ๋๋ค'๋ ์๋ฏธ
- ๋ฒ๊ทธ ์์ ์ด ์๋, ์๋ก์ด ๊ธฐ๋ฅ ๊ฐ๋ฐ, ๋ฌธ์ ์ ๋ฐ์ดํธ, ๋ฆฌํฉํ ๋ง ๋ฑ ์ผ๋ฐ์ ์ธ ์์ ์ด ๋๋ฌ์ ๋ ์ฃผ๋ก ์ฌ์ฉ
- ์: "์ฌ์ฉ์ ๋งค๋ด์ผ ๋ฌธ์ ์์ฑ ์๋ฃ", "๋ถํ์ํ ์ฃผ์ ์ ๊ฑฐ"
fixes #123- ์ฃผ๋ก ์ฝ๋์ ๋ฒ๊ทธ๋ ์ค๋ฅ๋ฅผ ์์ ํ์ ๋ ์ฌ์ฉ
- ์: "๋ก๊ทธ์ธ ๋ฒํผ์ด ์๋ํ์ง ์๋ ๋ฒ๊ทธ ์์ "
resolves #123- ๋ฒ๊ทธ ์์ ๋ณด๋ค๋ ์ฌ์ฉ์์ ์์ฒญ, ๋ฌธ์, ๋๋ ์ฅ๊ธฐ์ ์ธ ๊ณผ์ ๋ฅผ ํด๊ฒฐํ์ ๋ ์ ํฉ
- ๊ฐ๋ ์ฌ๋ฌ ์ด์๋ฅผ ๋์์ ํด๊ฒฐํ ๋๋, ๋ฒ๊ทธ/๊ธฐ๋ฅ ๊ตฌํ์ด ์์ฌ ์์ ๋ ์ค๋ฆฝ์ ์ธ ํํ์ผ๋ก ์ฐ๊ธฐ๋ ํจ
<ํ์
>: <์ค๋ช
>
[๋ณธ๋ฌธ(์ ํ)]
feat: busy waiting ์ ๊ฑฐ๋ฅผ ์ํ sleep_list ๊ตฌํ
- timer_sleep()์์ busy waiting ๋์ sleep_list๋ฅผ ์ฌ์ฉํ์ฌ
์ค๋ ๋๋ฅผ ๋ธ๋ก์ํค๊ณ timer_interrupt()์์ ๊นจ์ฐ๋๋ก ๋ณ๊ฒฝ
| ํ์ | ์ค๋ช | ์์ |
|---|---|---|
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 ๊ฒฝ๋ก ์์ |
-
50์ ์ด๋ด๋ก ์์ฑ
-
๋ง์นจํ(.) ๊ธ์ง
-
๋ช ๋ น๋ฌธ ํํ๋ก ์์ฑ (๊ณผ๊ฑฐํ X)
-
์ฒซ ๊ธ์ ์๋ฌธ์ (์์ด์ผ ๊ฒฝ์ฐ)
*# โ ์ข์ ์* feat: sleep_list ์๋ฃ๊ตฌ์กฐ ์ถ๊ฐ fix: nested donation ๊น์ด ์ ํ ์์ *# โ ๋์ ์* feat: sleep_list ์๋ฃ๊ตฌ์กฐ ์ถ๊ฐ. *# ๋ง์นจํ X* feat: Added sleep_list *# ๊ณผ๊ฑฐํ X* feat: Sleep_list ์๋ฃ๊ตฌ์กฐ ์ถ๊ฐ *# ์ฒซ ๊ธ์ ์๋ฌธ์*
-
์ค๋ช ๊ณผ ๋ณธ๋ฌธ ์ฌ์ด์ ๋น ์ค ํ์
-
๋ฌด์์, ์ ๋ณ๊ฒฝํ๋์ง ์ค๋ช
-
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 ๊ด๋ จ ๋๋ฒ๊ทธ ์ถ๋ ฅ ์ถ๊ฐ"