๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90

๊ฐœ์ธ ๊ณต๋ถ€/CS4

Process์™€ Thread โœ… Process๋ž€?- ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์„ ์˜๋ฏธํ•œ๋‹ค. - ์–ด๋–ค ํ”„๋กœ๊ทธ๋žจ์ด storage์— ์ €์žฅ๋˜์–ด ์žˆ์œผ๋ฉด ๋‹จ์ˆœํ•œ ํŒŒ์ผ์— ๋ถˆ๊ณผํ•˜๋‹ค.- ์ด๋Ÿฌํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋ฉด, ์‹คํ–‰๋˜๊ธฐ ์œ„ํ•œ ๋…๋ฆฝ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํ• ๋‹น๋ฐ›์œผ๋ฉด์„œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋งŒ๋“ค์–ด์ง€๊ณ  ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋œ๋‹ค.- ๋น„์œ ์ ์œผ๋กœ ์ƒ๊ฐํ•˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์€ Java ์–ธ์–ด์—์„œ์˜ ํด๋ž˜์Šค์ด๊ณ , ํ”„๋กœ์„ธ์Šค๋Š” ์ธ์Šคํ„ด์Šค์ธ ์…ˆ์ด๋‹ค.๐Ÿ“Œ ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ- ๊ฐ ํ”„๋กœ์„ธ์Šค๋Š” ๋ณ„๋„์˜ ๋…๋ฆฝ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. - ์ฝ”๋“œ ์˜์—ญ: ์‹คํ–‰ํ•  ํ”„๋กœ๊ทธ๋žจ์˜ ์ฝ”๋“œ๊ฐ€ ์ €์žฅ๋œ๋‹ค.- ์Šคํƒœํ‹ฑ ์˜์—ญ: ์Šคํƒœํ‹ฑ ๋ณ€์ˆ˜๊ฐ€ ์ €์žฅ๋œ๋‹ค.- ํž™ ์˜์—ญ: ๋™์ ์œผ๋กœ ํ• ๋‹น๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์ด๋‹ค.- ์Šคํƒ ์˜์—ญ: ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ์‹œ ์ƒ์„ฑ๋˜๋Š” ์ง€์—ญ๋ณ€์ˆ˜์™€, ๋ฐ˜ํ™˜ ์ฃผ์†Œ๊ฐ€ ์ €์žฅ๋œ๋‹ค.- ๋ ˆ์ง€์Šคํ„ฐ ์˜์—ญ: ํ”„๋กœ์„ธ์Šค๊ฐ€ CPU๋ฅผ ์ ์œ ํ•˜์—ฌ ์‹คํ–‰๋˜๋Š” ๋™์•ˆ.. 2024. 10. 15.
gdb ๋ช…๋ น์–ด โœ… gdb๋ž€? - GNU์—์„œ ๊ฐœ๋ฐœํ•œ command line debugging tool. - ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋  ๋•Œ, ๋‚ด๋ถ€์—์„œ ์–ด๋–ค ์ผ์ด ์‹คํ–‰๋˜๋Š”์ง€ ์ถ”์  ๊ฐ€๋Šฅํ•˜๋„๋ก ๋งŽ์€ ํ•จ์ˆ˜๋ฅผ ์ œ๊ณตํ•œ๋‹ค. - c ํ”„๋กœ๊ทธ๋žจ์„ ์ปดํŒŒ์ผํ•œ ๋’ค, ํ„ฐ๋ฏธ๋„์— gdb ํ”„๋กœ๊ทธ๋žจ์ด๋ฆ„ ์„ ์ž…๋ ฅํ•˜๋ฉด gdb๊ฐ€ ์‹คํ–‰๋œ๋‹ค. - ์ปดํŒŒ์ผ ํ•˜๋Š” ๋ฐฉ๋ฒ• : $ gcc -g -o [output] [input file] โœ… gdb ๋ช…๋ น์–ด ํ–‰๋ฒˆํ˜ธ b : ํ•ด๋‹นํ–‰์— breakpoint๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. r [ํŒŒ๋ผ๋ฏธํ„ฐ] : run ํ–‰๋ฒˆํ˜ธ clear : ํ•ด๋‹น ํ–‰์˜ breakpoint๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค info b : breakpoint๋“ค๊ณผ ๊ฐ๊ฐ์˜ state๋ฅผ ๋ณด์—ฌ์ค€๋‹ค p : ํ˜„์žฌ ์ง€์ ์—์„œ ํ”„๋กœ๊ทธ๋žจ์˜ ๋ชจ๋“  ๋ณ€์ˆ˜๋ฅผ printํ•ด์ค€๋‹ค. info locals : ํ˜„์žฌ ์ง€์ ์—์„œ ํ”„๋กœ๊ทธ๋žจ์˜ ๋ชจ๋“  .. 2023. 6. 12.
mmap() โœ… mmap()? - POSIX ํ‘œ์ค€์—์„œ ์ •์˜๋œ ๋ฉ”๋ชจ๋ฆฌ ๋งคํ•‘ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค. - ์‹œ์Šคํ…œ์ฝœ์„ ํ†ตํ•ด ํŒŒ์ผ์ด๋‚˜ ๋””๋ฐ”์ด์Šค๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ๋งคํ•‘ํ•˜๊ฒŒ ๋œ๋‹ค. - ํ”„๋กœ๊ทธ๋žจ ์ฃผ์†Œ ๊ณต๊ฐ„์˜ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ๊ณผ, ๋””์Šคํฌ์˜ ํŒŒ์ผ ์˜์—ญ์„ ๋งคํ•‘ํ•œ๋‹ค. โœ… ์žฅ์  - ํ”„๋กœ๊ทธ๋žจ์€ ํŒŒ์ผ์ด ๋ฉ”๋ชจ๋ฆฌ์— load๋œ ๊ฒƒ์ฒ˜๋Ÿผ ์ผ๋ฐ˜์ ์ธ memory access ์ž‘์—…์„ ํ†ตํ•ด ํŒŒ์ผ ์•ก์„ธ์Šค๋ฅผ ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํšจ์œจ์ ์ด๋‹ค. - os์—์„œ ํŒŒ์ผ ๊ด€๋ จ๋œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์–ด ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋œ๋‹ค. - ์œ ์—ฐํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์™€ ํ• ๋‹น์ด ๊ฐ€๋Šฅํ•˜๋‹ค. โœ… mmap() ํ•จ์ˆ˜ ํ”„๋กœํ† ํƒ€์ž…void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset); - addr: ๋งคํ•‘ํ•  ๋ฉ”๋ชจ๋ฆฌ์˜ .. 2023. 5. 8.
2์ง„๋ฒ•, 8์ง„๋ฒ•, 10์ง„๋ฒ•, 16์ง„๋ฒ• n์ง„๋ฒ•? 0~n-1๊นŒ์ง€ ์ด n๊ฐœ์˜ ์ˆซ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. 10์ง„๋ฒ• 0~9๊นŒ์ง€ ์ด 10๊ฐœ์˜ ์ˆซ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค. ์ˆซ์ž๊ฐ€ 9๋ฅผ ๋„˜์–ด๊ฐ€๋ฉด ์ž๋ฆฟ์ˆ˜๋ฅผ ์˜ฌ๋ ค์ค€๋‹ค. 2์ง„๋ฒ• 0~1๊นŒ์ง€ ์ด 2๊ฐœ์˜ ์ˆซ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค. ์ˆซ์ž๊ฐ€ 1๋ณด๋‹ค ์ปค์ง€๋ฉด ์ž๋ฆฟ์ˆ˜๋ฅผ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค. 8์ง„๋ฒ• 0~7๊นŒ์ง€ ์ด 8๊ฐœ์˜ ์ˆซ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค. ์ˆซ์ž๊ฐ€ 7๋ณด๋‹ค ์ปค์ง€๋ฉด ์ž๋ฆฟ์ˆ˜๋ฅผ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค. 16์ง„๋ฒ• 0~9, A~F ์ด 16๊ฐœ์˜ ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค. A,B,C,D,E,F๋Š” ๊ฐ๊ฐ 10,11,12,13,14,15๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์ˆซ์ž๊ฐ€ 15(F)๋ณด๋‹ค ์ปค์ง€๋ฉด ์ž๋ฆฟ์ˆ˜๋ฅผ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค. 2์ง„์ˆ˜, 8์ง„์ˆ˜, 16์ง„์ˆ˜ -> 10์ง„์ˆ˜ ๋ณ€ํ™˜ํ•˜๊ธฐ ๋’ค์—์„œ๋ถ€ํ„ฐ n๋ฒˆ์งธ ์ž๋ฆฟ์ˆ˜๊ฐ€ n-1์Šน์ด๋‹ค. ๊ฐ ๊ฐ’์„ ๋ชจ๋‘ ๋”ํ•ด์ค€๋‹ค. ์˜ˆ์ œ) 1001.. 2023. 1. 15.
728x90