์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- C
- KRAFTON JUNGLE
- ์ ์-์ ํฌ
- Unity
- pintos
- ์ฐ๊ฒฐ๋ฆฌ์คํธ
- anonymous page
- c#
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- ์ถ์ํด๋์ค์์ธํฐํ์ด์ค
- ์ ๋ํฐ
- ์๊ณ ๋ฆฌ์ฆ
- kraftonjungle
- ๋คํธ์ํฌ
- project3
- ํฌ๋ํํค ์ ๊ธ
- ์๊ณ ๋ฆฌ์ฆ์์ -๋๋น์ฐ์ ํ์2
- ํํ ์ค
- ์ค๋ธ์
- 4๊ธฐ
- ํฌ๋ํํค์ ๊ธ4๊ธฐ
- ๋ค์ต์คํธ๋ผ
- ํฌ๋ํํค์ ๊ธ
- ์ด๋ฒคํธ ํจ์ ์คํ ์์
- BFS
- TiL
- ๋ฐฑ์ค
- User Stack
- ํ์ด์ฌ
- ํฌ๋ํํค ์ ๊ธ 4๊ธฐ
- Today
- Total
๋ง๊ฐ๋ก๊ทธ
ํฌ๋ํํค ์ ๊ธ WEEK08 DAY64 - PintOS Project1 ๋ฐํ / 8์ฃผ์ฐจ ๋ฐ์ ๋ณธ๋ฌธ
ํฌ๋ํํค ์ ๊ธ WEEK08 DAY64 - PintOS Project1 ๋ฐํ / 8์ฃผ์ฐจ ๋ฐ์
habbn 2024. 3. 12. 22:46๐2024.3.11
1. pintOS Project1 ๋ฐํ
2. ํค์๋ ๊ณต๋ถ
์ค๋ PintOS Project 1 : Alarm Clock๊ณผ Prioirty Scheduling ๋ฐํํ๋ค.
ํ์๋ค๊ณผ ํํธ๋ฅผ ๋๋ ์ ๋ฐํ๋ฅผ ํ๋๋ฐ ๊ทธ ์ค ๋๋ ์ฐ์ ์์ ์ค์ผ์ค๋ง์์ ์ ์ , sema, condition variable ํํธ ๋งก์๋ค.
ํ ํ๋น ๋ฐํ ์๊ฐ์ 7๋ถ ์ ๋ ์ฃผ์ด์ง๊ธฐ ๋๋ฌธ์ ๋ง์ ์๊ฐ์ด ์๋๋ฏ๋ก ๊ตฌํํ๋ฉด์ ์ด๋ ค์ ๋ ๋ถ๋ถ ์ด๋ป๊ฒ ํ์ด๋๊ฐ๋์ง๋ฅผ ์ค์ ์ ์ผ๋ก ๋ฐํํ๋ค. ๋๋ ํนํ condition variable ์์ ๋น๊ตํจ์ ๋ถ๋ถ์ ์ฃผ๋ก ์๊ธฐํ๋ค.
๋ฐํ๊ฐ ๋๋๊ณ 8์ฃผ์ฐจ ๋ฐ์ ๋ฅผ ํ๋๋ฐ ์ง๊ธ๊น์ง project 1์ ์ปค๋์ ์ผ๋ถ๋ก์ ์์คํ ์ ์ค์ํ ๋ถ๋ถ์ ์ ๊ทผํ ์ ์๋ ํน๊ถ์ ๊ฐ์ง๊ณ ์คํํ์๋ค๋ฉด ์ด๋ฒ project2๋ ์ ์ ๋ชจ๋๋ก์ ํน๊ถ์ ๊ฐ์ง ์ ์์ด ์์คํ ์ฝ์ ํตํด ์ปค๋์ด ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํด์ฃผ๋ ์ ์ ํ๋ก๊ทธ๋จ์ ์คํํ๊ฒ ๋ ๊ฒ๋ผ๊ณ ํ๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฐฑ์นํ ์ฝ์น๋๊ป์ ๋ง์ํด์ฃผ์ ๊ฒ๋ค ์ค
"์ฐจ์ด๋ฅผ ์ดํดํ๋ ๊ฒ" ์ ์๊ธฐํด์ฃผ์๋ฉด์ avrํธ๋ฆฌ์ rbํธ๋ฆฌ์ ์ฐจ์ด๋ฅผ ๋งํ ์ ์๋ ์ฌ๋์ด ์๋๊ฐ๋ฅผ ์ง๋ฌธํ์ จ์๋ค.
์ด ๋์ ์ฐจ์ด๋ avrํธ๋ฆฌ๋ ๊ท ํ์ ์กฐ์ ํ๋ ๊ณผ์ ์ด root๊น์ง ์ด๋ฃจ์ด์ง๋ฉด์ ์ ์ฒด๋ฅผ ๋ค ์กฐ์ ํด์ผ๋๋ค๋ฉด,
rbํธ๋ฆฌ๋ ๊ท ํ์ ์กฐ์ ํ๋ ๊ณผ์ ์ด ๋ถ๋ชจ ๋จ์์ ๋๋๊ธฐ ๋๋ฌธ์ ์์ ์ ์ด๋ผ๊ณ ํ๋ค.
๋ "legacy ์ฝ๋ ํ์ฉ" ์ ์๊ธฐํ์๋ฉด์ list.c ์ ์๋ list legacy ํจ์๋ค์ ํ์ฉํ๋ผ๊ณ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ์ ํ์ฉํ๊ณ ์์๋ค !
๋ชจ๋ ๊ฒ์ ๋ค ์ ํ์ ์๋ค.
๋ํ ๋ง์ด ์ฌ์ฉํ์ง ์๋ / ์คํ์๊ฐ์ด ์ ์ ํจ์๋ฅผ ๊ตณ์ด ์ต์ ํ์ํค๊ธฐ ์ํด ์๊ฐ์ ๋ฒ๋ฆฌ์ง ์๊ณ micro optimization์ ํ๋๊ฒ ์ข๋ค๊ณ ํ๋ค.
ํค์๋
32 bit OS vs 64 bit OS
์ด์ ์ฒด์ (OS)์์ ์ฌ์ฉ๋๋ ํ๋ก์ธ์ ์ ํ์ CPU ๋ ์ง์คํฐ์์ ์ก์ธ์คํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ์์ ์๋ ค์ค๋ค. 32๋นํธ ์ด์ ์ฒด์ ๋? 32๋นํธ์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์ ์๋ ์ฉ๋์ ๋ณด์ ํ๋ CPU ์ํคํ ์ฒ ์
habbn-unitystudy.tistory.com
User Stack(์ฌ์ฉ์ ์คํ)
์ด์ ์ฒด์ ์ ๊ด์ ์์ ๋ณผ ๋, User Stack (์ฌ์ฉ์ ์คํ)์ ๋งค์ฐ ์ค์ํ ๊ฐ๋ ์ด๋ค. ์ฌ์ฉ์ ์คํ์ ํ๋ก๊ทธ๋จ ์คํ ์ค ๋ฐ์ํ๋ ๋ค์ํ ์์ ๋ค์ ๊ด๋ฆฌํ๊ธฐ ์ํ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ๋ก, ํ๋ก์ธ์ค์ ์คํ ์ํ๋ฅผ
habbn-unitystudy.tistory.com
๋ฐฑ์ค 1676 ํฉํ ๋ฆฌ์ผ 0์ ๊ฐ์
n!์์ ๋ค์์๋ถํฐ ์ฒ์ 0์ด ์๋ ์ซ์๊ฐ ๋์ฌ ๋๊น์ง 0์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ๋ค.
์ฒ์์ ๋ฌธ์ ๋ฅผ ์์ธํ ์ฝ์ด๋ณด์ง ๋ชปํ๊ณ ๊ทธ๋ฅ 0์ ๊ฐ์๋ฅผ ๊ตฌํ๋ค๊ฐ ํ๋ ธ์ด์ ๋ค์ ๋ฌธ์ ๋ฅผ ์ฝ๊ณ ๊ตฌํํ์๋ค.
def fac(n):
if n == 0:
return 1
if n == 1:
return 1
return n * fac(n-1)
n = int(input())
temp = list(str(fac(n)))
cnt = 0
for i in range(len(temp)-1,-1,-1):
if temp[i] == '0':
cnt +=1
else:
break
print(cnt)