soogoori

CS/โš™๏ธ ์šด์˜์ฒด์ œ

[โš™๏ธ OS] Thread

์Šค๋ ˆ๋“œ ์Šค๋ ˆ๋“œ ํ”„๋กœ์„ธ์Šค ๋‚ด๋ถ€์— ์žˆ์Œ. ํ•œ ๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ โžก๏ธ concurrency ๋ณ‘๋ ฌ์ฒ˜๋ฆฌ ์Šค๋ ˆ๋“œ๋ผ๋ฆฌ address space, resource ๊ณต์œ  ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ modern OS embedded systems multi-core processors network servers ๐Ÿ”น Multiple Threads ๊ฐ thread๋Š” ๋ณ„๊ฐœ๋กœ ์‹คํ–‰ Memory์™€ I/O state์€ ๊ณต์œ  thread 1์—์„œ thread 2๋กœ context switching์ด ์ผ์–ด๋‚˜๋ฉด thread1์ด ๊ฐ€์ง€๊ณ  ์žˆ๋˜ register set์„ CPU state์— ์ €์žฅ thread2์˜ CPU state์„ register set์— load Hyper-Threading : Context switching ove..

CS/โš™๏ธ ์šด์˜์ฒด์ œ

[โš™๏ธ OS] Process

ํ”„๋กœ์„ธ์Šค ๐Ÿ”น ํ”„๋กœ์„ธ์Šค ์ฝ”๋“œ์˜ ์ผ๋ถ€. ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ ์ž๊ธฐ ๋…๋ฆฝ์ ์ธ resource ๊ฐ€์ง. single address space โžก๏ธ protection ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์™€ ๊ณต์œ  X ๐Ÿ”น ํŠน์ง• ํ”„๋กœ์„ธ์Šค ๊ฐ๊ฐ ๊ณ ์œ ์˜ ์Šคํƒ ๋ฉ”๋ชจ๋ฆฌ ๋ณด์œ  ๊ณ ์œ ์˜ ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€ ๋ณด์œ  ๊ณ ์œ ์˜ file descriptor table ๋ณด์œ  PID (Process ID) ๐Ÿ”น ํ”„๋กœ์„ธ์Šค์˜ Context CPU ์ˆ˜ํ–‰ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ•˜๋“œ์›จ์–ด ๋ฌธ๋งฅ Program Counter register ํ”„๋กœ์„ธ์Šค ์ฃผ์†Œ ๊ณต๊ฐ„ code data stack ํ”„๋กœ์„ธ์Šค ๊ด€๋ จ ์ปค๋„ ์ž๋ฃŒ๊ตฌ์กฐ PCB Kernel Stack ๐Ÿ”น ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ ์ž์‹์€ ๋ถ€๋ชจ์˜ ๊ณต๊ฐ„์„ ๋ณต์‚ฌํ•ด ๊ทธ ๊ณต๊ฐ„์— ์ƒˆ๋กœ์šด ํ”„๋กœ๊ทธ๋žจ์„ ์˜ฌ๋ฆผ ํŠธ๋ฆฌ(๊ณ„์ธต ๊ตฌ์กฐ) ํ˜•์„ฑ fork() ์‹œ์Šคํ…œ์ฝœ์„ ํ†ตํ•ด ์ž์‹ ๊ณผ ๋™์ผํ•œ ํ”„๋กœ..

Server/๐Ÿ“› ์—๋Ÿฌ ๊ธฐ๋ก

[๐Ÿ“› Error] Docker์—์„œ ๋„์šด mysql์ด DataGrip์—์„œ ์ ‘์†๋˜์ง€ ์•Š์„ ๋•Œ

์ž์ฃผ ๋งˆ์ฃผ์น˜๋Š” ์˜ค๋ฅ˜๋‹ค.   ๐Ÿ‘€ ์˜ค๋ฅ˜ ๋‚ด์šฉํŒจ์Šค์›Œ๋“œ๋ฅผ ์ž˜๋ชป ์ž…๋ ฅํ•˜์—ฌ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ด์ง€๋งŒ, ์ •ํ™•ํžˆ ์ž…๋ ฅํ–ˆ๋‹ค. ๋‹ค๋ฅธ ์ด์œ ๊ฐ€ ์žˆ์„๊นŒ ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€ ํฌํŠธ๋ฒˆํ˜ธ๊ฐ€ ๋™์ผํ•˜์—ฌ ์ถฉ๋Œํ•œ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.   ๐Ÿ‘ฉ‍๐Ÿ”ง ํ•ด๊ฒฐ๋ฐฉ๋ฒ•   docker-compose.yml ํŒŒ์ผ์—์„œ ์„ค์ •ํ–ˆ๋˜ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ์ˆ˜์ •ํ•œ๋‹ค.์›๋ž˜๋Š” 3306:3306 :์œผ๋กœ ์„ค์ •ํ–ˆ์—ˆ๋‹ค. ์ด๋ฏธ ๋กœ์ปฌ DB๊ฐ€ 3306 ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์–ด ํฌํŠธ๋ฒˆํ˜ธ๊ฐ€ ๊ฒน์น˜๋ฏ€๋กœ 3305๋กœ ์ˆ˜์ •ํ–ˆ๋‹ค. ํ˜ธ์ŠคํŠธ์˜ 3305 ํฌํŠธ๊ฐ€ ์ปจํ…Œ์ด๋„ˆ ๋‚ด์˜ 3306 ํฌํŠธ๋กœ ์—ฐ๊ฒฐ๋˜๋„๋ก ํ•œ ๊ฒƒ์ด๋‹ค .   ์—ฐ๊ฒฐ์— ํ•„์š”ํ•œ ์ •๋ณด๋“ค์„ ์ž…๋ ฅํ•œ ํ›„ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ์•ž์„œ ์„ค์ •ํ•œ 3305๋กœ ์ ‘์†ํ•˜๋„๋ก ์ž‘์„ฑํ•˜๋ฉด ์—ฐ๊ฒฐ์ด ์ž˜๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.      ์ฐธ๊ณ ์ž๋ฃŒhttps://hipopatamus.tistory.com/..

์•Œ๊ณ ๋ฆฌ์ฆ˜/๐Ÿ—‚๏ธ ์ •๋ฆฌ

Topological Sort (์œ„์ƒ์ •๋ ฌ)

์ˆœ์„œ๊ฐ€ ์ •ํ•ด์ ธ์žˆ๋Š” ์ž‘์—…์„ ์ฐจ๋ก€๋กœ ์ˆ˜ํ–‰ํ•ด์•ผํ•  ๋•Œ ๊ทธ ์ˆœ์„œ๋ฅผ ๊ฒฐ์ •ํ•ด์ฃผ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด๋ณด๋ฉด, ์œ„์™€ ๊ฐ™์€ ์ปค๋ฆฌํ˜๋Ÿผ์—์„œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ˆ˜๊ฐ•ํ•˜๊ณ ์ž ํ•˜๋ฉด ์„ ์ˆ˜๊ณผ๋ชฉ๋“ค์„ ์ˆ˜๊ฐ•ํ•œ ํ›„์— ๋“ค์–ด์•ผํ•œ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ, ์ด์‚ฐ์ˆ˜ํ•™ → Cํ”„๋กœ๊ทธ๋ž˜๋ฐ → ๊ฐ์ฒด์ง€ํ–ฅํ”„๋กœ๊ทธ๋ž˜๋ฐ → ์ž๋ฃŒ๊ตฌ์กฐ → ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆœ์„œ๋กœ ์ˆ˜๊ฐ•์‹ ์ฒญ์„ ํ•˜๋ฉด ๋œ๋‹ค. ์ด ์™ธ์—๋„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ˆœ์„œ๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์„ ํ›„ ๊ด€๊ณ„๊ฐ€ ๋ช…ํ™•ํ–ˆ์„ ๋•Œ ์ˆœ์„œ๋ฅผ ๊ฒฐ์ •ํ•˜์—ฌ ์ •๋ ฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ธ ๊ฒƒ์ด๋‹ค. ๐Ÿ”น ์œ„์ƒ ์ •๋ ฌ ํŠน์ง• ์‚ฌ์ดํด์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š” ๋ฐฉํ–ฅ์„ฑ ๊ทธ๋ž˜ํ”„์—์„œ์˜ ์ •๋ ฌ ๐Ÿ‘‰ ์‚ฌ์ดํด์ด ์žˆ๋‹ค๋ฉด ์œ„์ƒ ์ •๋ ฌ ์ˆ˜ํ–‰ X (์‹œ์ž‘์ ์„ ์ฐพ์„ ์ˆ˜ ์—†์œผ๋ฏ€๋กœ) ํ ๋˜๋Š” ์Šคํƒ ์‚ฌ์šฉ ์ง„์ž…์ฐจ์ˆ˜ ๊ณ ๋ ค ๐Ÿ•น๏ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณผ์ • ์ง„์ž… ์ฐจ์ˆ˜๋Š” ์ •์ ์— ๋“ค์–ด์˜ค๋Š” ๊ฐ„์„  ์ˆ˜์ด๊ณ , ๋นจ๊ฐ„์ƒ‰ ์ˆซ์ž๋Š” ์ง„์ž…์ฐจ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ด๋‹ค. ์ง„์ž…์ฐจ์ˆ˜..

์•Œ๊ณ ๋ฆฌ์ฆ˜/BOJ

[BOJ] 21609 ์ƒ์–ด ์ค‘ํ•™๊ต - Java

โœจ ๊ตฌํ˜„ & BFS https://www.acmicpc.net/problem/21609 21609๋ฒˆ: ์ƒ์–ด ์ค‘ํ•™๊ต ์ƒ์–ด ์ค‘ํ•™๊ต์˜ ์ฝ”๋”ฉ ๋™์•„๋ฆฌ์—์„œ ๊ฒŒ์ž„์„ ๋งŒ๋“ค์—ˆ๋‹ค. ์ด ๊ฒŒ์ž„์€ ํฌ๊ธฐ๊ฐ€ N×N์ธ ๊ฒฉ์ž์—์„œ ์ง„ํ–‰๋˜๊ณ , ์ดˆ๊ธฐ์— ๊ฒฉ์ž์˜ ๋ชจ๋“  ์นธ์—๋Š” ๋ธ”๋ก์ด ํ•˜๋‚˜์”ฉ ๋“ค์–ด์žˆ๊ณ , ๋ธ”๋ก์€ ๊ฒ€์€์ƒ‰ ๋ธ”๋ก, ๋ฌด์ง€๊ฐœ ๋ธ”๋ก, ์ผ๋ฐ˜ ๋ธ”๋ก www.acmicpc.net ๐Ÿ“ ๊ณ ๋ คํ•ด์•ผํ•  ์  ๊ทธ๋ฃน์— ์†ํ•˜๋Š” ๋ธ”๋ก์˜ ์กฐ๊ฑด ์ผ๋ฐ˜ ๋ธ”๋ก์ด ์ ์–ด๋„ ํ•˜๋‚˜ ์ด์ƒ ์ผ๋ฐ˜ ๋ธ”๋ก์˜ ์ƒ‰์€ ๋ชจ๋‘ ๊ฐ™์•„์•ผํ•จ ๊ฒ€์€์ƒ‰ ๋ธ”๋ก ํฌํ•จ X ๋ฌด์ง€๊ฐœ์ƒ‰ ๋ธ”๋ก์€ ๋ช‡๊ฐœ๋“  ์ƒ๊ด€ X ๋ธ”๋ก์˜ ๊ฐœ์ˆ˜๋Š” 2๊ฐœ ์ด์ƒ ๋ธ”๋ก ๊ทธ๋ฃน์˜ ๊ธฐ์ค€ ๋ธ”๋ก = ๋ฌด์ง€๊ฐœ ๋ธ”๋ก์ด ์•„๋‹Œ ๋ธ”๋ก ์ค‘์—์„œ ํ–‰์˜ ๋ฒˆํ˜ธ๊ฐ€ ๊ฐ€์žฅ ์ž‘์€ ๋ธ”๋ก. ๊ทธ๋Ÿฌํ•œ ๋ธ”๋ก์ด ์—ฌ๋Ÿฌ ๊ฐœ์ด๋ฉด ์—ด์˜ ๋ฒˆํ˜ธ๊ฐ€ ๊ฐ€์žฅ ์ž‘์€ ๋ธ”๋ก .. ์˜คํ† ํ”Œ๋ ˆ์ด ๊ธฐ๋Šฅ โž” ๋ธ”๋ก ๊ทธ๋ฃน์ด ์—†์„ ๋•Œ..

์•Œ๊ณ ๋ฆฌ์ฆ˜/๐Ÿ—‚๏ธ ์ •๋ฆฌ

Simulation - 2์ฐจ์› ๋‹ฌํŒฝ์ด ๋ฐฐ์—ด ๐ŸŒ

2์ฐจ์› ๋ฐฐ์—ด์—์„œ ๋‹ฌํŒฝ์ด๋กœ ์ด๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•œ๋‹ค. ๐ŸŒ ์‹œ์ž‘ํ•˜๋Š” ๊ณณ์—์„œ ์ƒํ•˜์ขŒ์šฐ ๋ฐฉํ–ฅ (๋ฐ˜์‹œ๊ณ„ ๋˜๋Š” ์‹œ๊ณ„๋ฐฉํ–ฅ)์— ๋”ฐ๋ผ ๋‹ฌํŒฝ์ด ๋ฐฐ์—ด์˜ ํ˜•ํƒœ๊ฐ€ ๋‹ฌ๋ผ์ง„๋‹ค. ๋ฐฐ์—ด ์ค‘์•™ (N/2, N/2) ์—์„œ๋ถ€ํ„ฐ ์‹œ์ž‘ ์ค‘์•™(N/2, N/2)์—์„œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์•ผํ•˜๋ฏ€๋กœ N์ด ํ™€์ˆ˜์ด์–ด์•ผ ํ•œ๋‹ค. ←, ↓์ผ ๋•Œ๋Š” 1, 3, 5, 7 .... ๋งŒํผ ์ด๋™ํ•˜๋Š” ์นธ์ด ์ฆ๊ฐ€ํ•œ๋‹ค. →, ↑์ผ ๋•Œ๋Š” 2, 4, 6, 8 .... ๋งŒํผ ์ด๋™ํ•˜๋Š” ์นธ์ด ์ฆ๊ฐ€ํ•œ๋‹ค. 2๋ฒˆ ๋ฐฉํ–ฅ์„ ๋ฐ”๊ฟ€ ๋•Œ๋งˆ๋‹ค ์ด๋™ํ•˜๋Š” ์นธ์„ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค. ๐Ÿ‘‰ moveCnt++ ํ˜„์žฌ๋Š” ์ค‘์•™์—์„œ ์™ผ์ชฝ๋ฐฉํ–ฅ์œผ๋กœ ์‹œ์ž‘ํ•ด์„œ ๋ฐ˜์‹œ๊ณ„๋ฐฉํ–ฅ์œผ๋กœ ๋Œ๊ณ  ์žˆ์ง€๋งŒ, ์™ผ์ชฝ ์™ธ์— ์ƒ, ํ•˜, ์šฐ ๋ฐฉํ–ฅ์œผ๋กœ ์‹œ์ž‘ํ•ด์„œ ๋ฐ˜์‹œ๊ณ„ ๋˜๋Š” ์‹œ๊ณ„๋ฐฉํ–ฅ์œผ๋กœ ๊ฐ€๋Š” ๊ฒƒ๋„ ๋™์ผํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์ง„ํ–‰ํ•˜๋ฉด ๋œ๋‹ค. ๋ฐฉํ–ฅ์„ ๋‘ ๊ฐœ์”ฉ ์ง๋งŒ ์ง€์–ด์ฃผ๋ฉด ๊ฐ€๋Šฅ ! impor..

์•Œ๊ณ ๋ฆฌ์ฆ˜/๐Ÿ—‚๏ธ ์ •๋ฆฌ

DP - Knapsack (๋ฐฐ๋‚ญ๋ฌธ์ œ)

https://www.acmicpc.net/problem/12865 12865๋ฒˆ: ํ‰๋ฒ”ํ•œ ๋ฐฐ๋‚ญ ์ฒซ ์ค„์— ๋ฌผํ’ˆ์˜ ์ˆ˜ N(1 ≤ N ≤ 100)๊ณผ ์ค€์„œ๊ฐ€ ๋ฒ„ํ‹ธ ์ˆ˜ ์žˆ๋Š” ๋ฌด๊ฒŒ K(1 ≤ K ≤ 100,000)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‘ ๋ฒˆ์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ๊ฑฐ์ณ ๊ฐ ๋ฌผ๊ฑด์˜ ๋ฌด๊ฒŒ W(1 ≤ W ≤ 100,000)์™€ ํ•ด๋‹น ๋ฌผ๊ฑด์˜ ๊ฐ€์น˜ V(0 ≤ V ≤ 1,000) www.acmicpc.net ๐Ÿ•น๏ธ Knapsack ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณผ์ • DP ๋ฌธ์ œ ์ค‘ ํ•˜๋‚˜๋กœ, ๋ฐฐ๋‚ญ์˜ ํฌ๊ธฐ k์™€ n๊ฐœ์˜ ๋ฌผ๊ฑด์˜ ๋ฌด๊ฒŒ(w)์™€ ๊ฐ€์น˜(v)๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ฐ€๋ฐฉ์— ๋ฌผ๊ฑด์„ k์— ๋„˜์ง€ ์•Š๋„๋ก ๋„ฃ๊ณ  ์ตœ๋Œ€ ๊ฐ€์น˜์˜ ํ•ฉ์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ex) ๋ฐฐ๋‚ญ์˜ ํฌ๊ธฐ๋Š” k์ด๊ณ , 5๊ฐœ์˜ ๋ฌผ๊ฑด์˜ ๋ฌด๊ฒŒ์™€ ๊ฐ€์น˜๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ตœ๋Œ€ ๊ฐ€์น˜์˜ ํ•ฉ์„ ๊ตฌํ•˜๊ธฐ ๋ฌผ๊ฑด 1 : w =..

Server/๐Ÿ“› ์—๋Ÿฌ ๊ธฐ๋ก

[๐Ÿ“› Error] Redis Master ↔๏ธŽ Replica ์—ฐ๊ฒฐ ์˜ค๋ฅ˜ - Error condition on socket for SYNC: Connection refused

์˜ค๋ฅ˜ ๋‚ด์šฉ์ธ์Šคํ„ด์Šค ๋ณด์•ˆ๊ทธ๋ฃน์— 6379 ํฌํŠธ๋ฅผ ํฌํ•จํ–ˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  Connection refused ์—๋Ÿฌ๊ฐ€ ๋‚ฌ๋‹ค. ๋ณต์ œ ์„ค์ •์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋ผ๋Š”๋ฐ ์„œ๋ฒ„๊ฐ€ ์ œ๋Œ€๋กœ ์„ค์ •๋˜์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•ด๋ณด์ž.     ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• Master ์„œ๋ฒ„์˜ ์„ค์ •์„ ์ˆ˜์ •ํ•œ๋‹ค. Master ์„œ๋ฒ„์˜ Redis ์„ค์ • ํŒŒ์ผ('redis.conf')์„ ์—ด์–ด์„œ 'bind' ์— ๋งˆ์Šคํ„ฐ ์„œ๋ฒ„์˜ ์‚ฌ์„ค IP ์ฃผ์†Œ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. 'bind' ์„ค์ •์„ ํ†ตํ•ด Redis๊ฐ€ ์ˆ˜์‹  ๋Œ€๊ธฐํ•  ์ฃผ์†Œ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์œ„์˜ ์„ค์ • ๋ณ€๊ฒฝ ํ›„์—๋Š” Redis๋ฅผ ์žฌ์‹œ์ž‘ํ•˜์—ฌ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ ์šฉํ•ด์•ผํ•œ๋‹ค.  Replica ์„œ๋ฒ„๋กœ ๋Œ์•„์™€์„œ ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด ์ •์ƒ์ ์œผ๋กœ ์—ฐ๊ฒฐ์ด ์„ฑ๊ณต๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

soogoori
'๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (15 Page)