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

์ „์ฒด ๊ธ€199

[ALGO] ๋ฐ˜ํ™˜ํ˜•์„ ๋ช…ํ™•ํžˆ ํ•˜์ž ๋ฌธ์ œ https://www.acmicpc.net/problem/10026 10026๋ฒˆ: ์ ๋ก์ƒ‰์•ฝ ์ ๋ก์ƒ‰์•ฝ์€ ๋นจ๊ฐ„์ƒ‰๊ณผ ์ดˆ๋ก์ƒ‰์˜ ์ฐจ์ด๋ฅผ ๊ฑฐ์˜ ๋Š๋ผ์ง€ ๋ชปํ•œ๋‹ค. ๋”ฐ๋ผ์„œ, ์ ๋ก์ƒ‰์•ฝ์ธ ์‚ฌ๋žŒ์ด ๋ณด๋Š” ๊ทธ๋ฆผ์€ ์•„๋‹Œ ์‚ฌ๋žŒ์ด ๋ณด๋Š” ๊ทธ๋ฆผ๊ณผ๋Š” ์ข€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค. ํฌ๊ธฐ๊ฐ€ N×N์ธ ๊ทธ๋ฆฌ๋“œ์˜ ๊ฐ ์นธ์— R(๋นจ๊ฐ•), G(์ดˆ๋ก) www.acmicpc.net ๋‚˜์˜ ์‚ฝ์งˆ ์ž๊พธ ๋งž๋Š” ์ฝ”๋“œ์ธ๋ฐ ์ด์ƒํ•˜๊ฒŒ ํ์—์„œ (0, 0)์ด ๋ฌดํ•œ์ •์œผ๋กœ ์ƒ์„ฑ๋ผ์„œ ๋ฉ”๋ชจ๋ฆฌ ์ดˆ๊ณผ๊ฐ€ ๋‚ฌ๋‹ค 1) ์ธ์ž๋กœ char color๋ฅผ ๋„˜๊ธฐ๊ณ  board[nx][ny] != color๋กœ ๋น„๊ตํ•ด์„œ ๊ทธ๋Ÿฐ๊ฐ€ ๊ณ ๋ฏผ 2) const int MAX๋ฅผ ์จ์„œ ๊ทธ๋Ÿฐ๊ฐ€ ๊ณ ๋ฏผ ๊ฒฐ๋ก  ๋‹ค ์“ธ๋ฐ์—†์—ˆ๊ณ  bfs ํ•จ์ˆ˜ ๋ฐ˜ํ™˜ํ˜•์ด void์ธ๋ฐ int๋กœ ํ•ด์„œ ๊ทธ๋Ÿฐ ๊ฑฐ์˜€๋‹ค. ์•„๋‹ˆ ๋ฐ˜ํ™˜ํ˜•์ด int์ธ๋ฐ ์™œ ํ์— ๊ฐ’์ด ๋“ค์–ด๊ฐ€๋Š” .. 2023. 6. 20.
[์šด์˜์ฒด์ œ] 12. Disk Management and Scheduling Disk Structure 1) Logical Block - ๋””์Šคํฌ์˜ ์™ธ๋ถ€์—์„œ ๋ณด๋Š” ๋””์Šคํฌ์˜ ๋‹จ์œ„ ์ •๋ณด ์ €์žฅ ๊ณต๊ฐ„๋“ค - ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง„ 1์ฐจ์› ๋ฐฐ์—ด์ฒ˜๋Ÿผ ์ทจ๊ธ‰ - ์ •๋ณด๋ฅผ ์ „์†กํ•˜๋Š” ์ตœ์†Œ ๋‹จ์œ„ 2) Sector - Logical Block์ด ๋ฌผ๋ฆฌ์ ์ธ ๋””์Šคํฌ์— ๋งคํ•‘๋œ ์œ„์น˜ - Sector 0์€ ์ตœ์™ธ๊ณฝ ์‹ค๋ฆฐ๋”์˜ ์ฒซ ํŠธ๋ž™์— ์žˆ๋Š” ์ฒซ ๋ฒˆ์งธ ์„นํ„ฐ์ด๋‹ค (Booting๊ณผ ๊ด€๋ จ๋จ) Disk Management 1) Physical formatting (Low-level formatting) header, trailer์— metadata ์ €์žฅ - ๋””์Šคํฌ๋ฅผ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ๋„๋ก ์„นํ„ฐ๋“ค๋กœ ๋‚˜๋ˆ„๋Š” ๊ณผ์ • (์š”์ฆ˜์€ ๋ฏธ๋ฆฌ formatting๋˜์–ด ๋‚˜์˜จ๋‹ค) - ๊ฐ ์„นํ„ฐ๋Š” header + ์‹ค์ œ data(512B) + trailer๋กœ ๊ตฌ.. 2023. 1. 29.
[์šด์˜์ฒด์ œ] 11. File System Implementation [์ด๋ก ] Allocation of File Data in Disk disk์— ํŒŒ์ผ์„ ์ €์žฅํ•  ๋•Œ๋Š” ๋™์ผํ•œ ํฌ๊ธฐ์˜ sector(logical block)๋กœ ๋‚˜๋ˆ„์–ด์„œ ์ €์žฅ 1) contiguous allocation 2) linked allocation 3) indexed allocation 1) Contiguous allocation ํ•˜๋‚˜์˜ file์ด disk ์ƒ์— ์—ฐ์†ํ•ด์„œ ์ €์žฅ๋˜๋Š” ๋ฐฉ๋ฒ• * ์žฅ์  1) ๋น ๋ฅธ I/O - HDD๋Š” disk head์˜ ์ด๋™ ์‹œ๊ฐ„์ด ๊ธด ํŽธ์ธ๋ฐ, ์—ฐ์† ํ• ๋‹น์„ ์“ฐ๋ฉด ํ•œ ๋ฒˆ์˜ seek/rotation์œผ๋กœ ๋งŽ์€ ์–‘์˜ data transfer ๊ฐ€๋Šฅ - process์˜ swap area๋กœ๋„ ์“ฐ์ž„ (์ž„์‹œ ์ €์žฅ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ณต๊ฐ„ ํšจ์œจ์„ฑ๋ณด๋‹ค๋Š” ์†๋„ ํšจ์œจ์„ฑ์ด ์ข‹์Œ) - real time file์šฉ์œผ๋กœ.. 2023. 1. 22.
[์šด์˜์ฒด์ œ] 10. File Systems File and File System 1) File - ์ด๋ฆ„์„ ํ†ตํ•ด ์ €์žฅํ•˜๋Š” collection : a named collection of related information - ๋น„ํœ˜๋ฐœ์„ฑ์˜ ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜์— ์ €์žฅ - ๋™์ผํ•œ ๋…ผ๋ฆฌ์  ๋‹จ์œ„๋กœ๋„ ์‚ฌ์šฉ๋จ (device special file) - create, read, write, reposition(lseek - ์–ด๋””๊นŒ์ง€ ์ฝ์—ˆ๋Š”์ง€ ํ‘œ์‹œํ•˜๋Š” ํฌ์ธํ„ฐ), delete, open, close * open : file์˜ ๋‚ด์šฉ์ด ์•„๋‹Œ metadata๋ฅผ disk์— ์˜ฌ๋ ค๋†“๋Š” ๊ฒƒ 2) File attribute(metadata) ํŒŒ์ผ์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ์ข… ์ •๋ณด๋“ค - ํŒŒ์ผ ์ด๋ฆ„, ์œ ํ˜•, ์ €์žฅ๋œ ์œ„์น˜, ํŒŒ์ผ ์‚ฌ์ด์ฆˆ - ์ ‘๊ทผ ๊ถŒํ•œ(r/w/x), ์‹œ๊ฐ„(์ƒ์„ฑ, ๋ณ€๊ฒฝ, ์‚ฌ์šฉ), ์†Œ์œ ์ž ๋“ฑ.. 2023. 1. 22.
[์šด์˜์ฒด์ œ] 9. Virtual Memory ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๋ณ€ํ™”๋Š” OS๊ฐ€ ๊ด€์—ฌํ•˜์ง€ ์•Š์ง€๋งŒ Virtual Memory ๋ณ€ํ™”๋Š” OS๊ฐ€ ๊ด€์—ฌํ•œ๋‹ค! * ๋Œ€๋ถ€๋ถ„ paging ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๊ฐ€์ • Demand Paging ์š”์ฒญ์ด ์žˆ์œผ๋ฉด ๊ทธ ๋•Œ page๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฌ๋Š” ๊ฒƒ - I/O ์–‘์˜ ๊ฐ์†Œ (ํ•œ์ •๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๋” ์˜๋ฏธ์žˆ๋Š” ์ •๋ณด๋กœ ์ฑ„์šธ ์ˆ˜ ์žˆ์Œ) - Memory ์‚ฌ์šฉ๋Ÿ‰ ๊ฐ์†Œ - ๋น ๋ฅธ ์‘๋‹ต ์‹œ๊ฐ„ - ๋” ๋งŽ์€ ์‚ฌ์šฉ์ž ์ˆ˜์šฉ Valid / Invalid bit์˜ ์‚ฌ์šฉ * invalid๋ž€? - ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ์ฃผ์†Œ ์˜์—ญ์ธ ๊ฒฝ์šฐ - ํŽ˜์ด์ง€๊ฐ€ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์— ์—†๋Š” ๊ฒฝ์šฐ - ์ฒ˜์Œ์—๋Š” ๋ชจ๋“  page๊ฐ€ invalid bit๋กœ ์ดˆ๊ธฐํ™” - address translation ์‹œ์— invalid bit์ด set๋˜์–ด ์žˆ์œผ๋ฉด page fault -> [trap] CPU๊ฐ€ OS๋กœ.. 2023. 1. 22.
[์šด์˜์ฒด์ œ] 8. Memory Management Logical vs Physical Address 1) Logical Address(virtual address) - ํ”„๋กœ์„ธ์Šค๋งˆ๋‹ค ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐ€์ง€๋Š” ๊ฐ€์ƒ์˜ ์ฃผ์†Œ ๊ณต๊ฐ„ (CPU๊ฐ€ ๋ณด๋Š” ์ฃผ์†Œ) - ๊ฐ ํ”„๋กœ์„ธ์Šค๋งˆ๋‹ค 0๋ฒˆ์ง€๋ถ€ํ„ฐ ์‹œ์ž‘ 2) Physical Address - ๋ฉ”๋ชจ๋ฆฌ์— ์‹ค์ œ ์˜ฌ๋ผ๊ฐ€๋Š” ์œ„์น˜ * ์ฃผ์†Œ ๋ฐ”์ธ๋”ฉ - ํŠน์ • ์‹œ์Šคํ…œ์˜ Logical Addr๋ฅผ Physical Addr๋กœ ๋งคํ•‘ํ•˜๋Š” ๊ฒƒ (Symbolic addr(๋ณ€์ˆ˜/ํ•จ์ˆ˜๋กœ ํ˜ธ์ถœ) -> Logical addr -> Physical addr) ์ฃผ์†Œ ๋ฐ”์ธ๋”ฉ(Address binding) ์ฃผ์†Œ ๋ณ€ํ™˜์ด ์ด๋ฃจ์–ด์ง€๋Š” ์‹œ๊ธฐ์— ๋”ฐ๋ผ ๋ถ„๋ฅ˜ 1) Compile time binding - ์ปดํŒŒ์ผ ์‹œ ์ฃผ์†Œ ๋ณ€ํ™˜(Logical addr์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ) -> ๋น„ํšจ์œจ์ ์ด๊ธฐ ๋•Œ๋ฌธ.. 2023. 1. 8.
[์šด์˜์ฒด์ œ] 7. Deadlocks Deadlock Problem 1) Deadlock : ์ผ๋ จ์˜ ํ”„๋กœ์„ธ์Šค๋“ค์ด ์„œ๋กœ๊ฐ€ ๊ฐ€์ง„ SW/HW ์ž์›์„ ๊ธฐ๋‹ค๋ฆฌ๋ฉฐ block๋œ ์ƒํƒœ 2) Resource : HW, SW ๋“ฑ์„ ํฌํ•จํ•˜๋Š” ๊ฐœ๋… - I/O device, CPU cycle, memory space, semaphore ๋“ฑ - ์ž์› ์‚ฌ์šฉ ์ ˆ์ฐจ : Request(์š”์ฒญ) > Allocate(ํ• ๋‹น) > Use(์‚ฌ์šฉ) > Release(๋ฐ˜๋‚ฉ) Deadlock์ด ๋ฐœ์ƒํ•˜๋Š” 4๊ฐ€์ง€ ์กฐ๊ฑด๐Ÿ”ฅ 1) Mutual Exclusion(์ƒํ˜ธ ๋ฐฐ์ œ) : ๋งค ์ˆœ๊ฐ„ ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋งŒ์ด ์ž์›์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ 2) No preemption(๋น„์„ ์ ) : ํ”„๋กœ์„ธ์Šค๋Š” ์ž์›์„ ์Šค์Šค๋กœ ๋‚ด์–ด๋†“์„ ๋ฟ, ๊ฐ•์ œ๋กœ ๋นผ์•—๊ธฐ์ง€ ์•Š์Œ 3) Hold and wait(๋ณด์œ ๋Œ€๊ธฐ) : ์ž์›์„ ๊ฐ€์ง„ ํ”„๋กœ์„ธ์Šค๊ฐ€ .. 2023. 1. 1.
[์šด์˜์ฒด์ œ] 6. Process Synchronization ๊ณต์œ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ do { entry section critical section exit section remainder section } while (1) ํ”„๋กœ๊ทธ๋žจ์  ํ•ด๊ฒฐ๋ฒ•์˜ ์ถฉ์กฑ ์กฐ๊ฑด 1) Mutual Exclusion(์ƒํ˜ธ ๋ฐฐ์ œ) ํŠน์ • ํ”„๋กœ์„ธ์Šค๊ฐ€ critical section์„ ์ˆ˜ํ–‰ ์ค‘์ด๋ฉด ๋‹ค๋ฅธ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋“ค์€ critical section์— ๋“ค์–ด๊ฐ€๋ฉด ์•ˆ ๋œ๋‹ค 2) Progress ์•„๋ฌด๋„ critical section์— ์žˆ์ง€ ์•Š์€ ์ƒํƒœ์—์„œ critical section์— ๋“ค์–ด๊ฐ€๊ณ ์ž ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ์žˆ๋‹ค๋ฉด critical section์— ๋“ค์–ด๊ฐ€๊ฒŒ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. 3) Bounded Waiting(์œ ํ•œ ๋Œ€๊ธฐ) ํ”„๋กœ์„ธ์Šค๊ฐ€ critical section์— ๋“ค์–ด๊ฐ€๋ ค๊ณ  ์š”์ฒญํ•œ ํ›„๋ถ€ํ„ฐ ๊ทธ ์š”์ฒญ์ด ํ—ˆ์šฉ๋  ๋•Œ๊นŒ์ง€.. 2022. 12. 25.
[์šด์˜์ฒด์ œ] 5. CPU Scheduling ํ”„๋กœ์„ธ์Šค์˜ ํŠน์„ฑ ๋ถ„๋ฅ˜ CPU-bound process CPU๋ฅผ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์„ธ์Šค(high CPU) ๊ณ„์‚ฐ ์œ„์ฃผ์˜ job few very long CPU burst(CPU-intensive) I/O-bound process CPU๋ฅผ ์žก๊ณ  ๊ณ„์‚ฐํ•˜๋Š” ์‹œ๊ฐ„๋ณด๋‹ค I/O์— ๋งŽ์€ ์‹œ๊ฐ„์ด ํ•„์š”ํ•œ process(low CPU) interactive program many short CPU bursts(์ค‘๊ฐ„์— I/O๊ฐ€ ๋ผ์–ด๋“ฆ) CPU-burst Time์˜ ๋ถ„ํฌ ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ job/process์ด ์„ž์—ฌ์žˆ๊ธฐ ๋•Œ๋ฌธ์— CPU ์Šค์ผ€์ค„๋ง์ด ํ•„์š”ํ•˜๋‹ค interactive job(I/O bound job)์—๊ฒŒ ์ ์ ˆํ•œ response๋ฅผ ์šฐ์„ ์ ์œผ๋กœ ์ œ๊ณต CPU์™€ I/O ์žฅ์น˜ ๋“ฑ ์‹œ์Šคํ…œ ์ž์›์„ ๊ณจ๊ณ ๋ฃจ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉ CPU Schedul.. 2022. 11. 27.