CS/βοΈ μ΄μ체μ
μ€λ λ μ€λ λ νλ‘μΈμ€ λ΄λΆμ μμ. ν κ°μ νλ‘μΈμ€κ° μ¬λ¬ μ€λ λλ₯Ό κ°μ§ μ μμ β‘οΈ 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/βοΈ μ΄μ체μ
νλ‘μΈμ€ πΉ νλ‘μΈμ€ μ½λμ μΌλΆ. μ€ν μ€μΈ νλ‘κ·Έλ¨ μκΈ° λ
립μ μΈ 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/π μλ¬ κΈ°λ‘
μμ£Ό λ§μ£ΌμΉλ μ€λ₯λ€. π μ€λ₯ λ΄μ©ν¨μ€μλλ₯Ό μλͺ» μ
λ ₯νμ¬ λ°μνλ κ²μΌλ‘ 보μ΄μ§λ§, μ νν μ
λ ₯νλ€. λ€λ₯Έ μ΄μ κ° μμκΉ κ³ λ―Όνλ€κ° ν¬νΈλ²νΈκ° λμΌνμ¬ μΆ©λν κ² κ°λ€λ μκ°μ΄ λ€μλ€. π©π§ ν΄κ²°λ°©λ² docker-compose.yml νμΌμμ μ€μ νλ ν¬νΈ λ²νΈλ₯Ό μμ νλ€.μλλ 3306:3306 :μΌλ‘ μ€μ νμλ€. μ΄λ―Έ λ‘컬 DBκ° 3306 ν¬νΈλ₯Ό μ¬μ©νκ³ μμ΄ ν¬νΈλ²νΈκ° κ²ΉμΉλ―λ‘ 3305λ‘ μμ νλ€. νΈμ€νΈμ 3305 ν¬νΈκ° 컨ν
μ΄λ λ΄μ 3306 ν¬νΈλ‘ μ°κ²°λλλ‘ ν κ²μ΄λ€ . μ°κ²°μ νμν μ 보λ€μ μ
λ ₯ν ν ν¬νΈ λ²νΈλ₯Ό μμ μ€μ ν 3305λ‘ μ μνλλ‘ μμ±νλ©΄ μ°κ²°μ΄ μλ κ²μ νμΈν μ μλ€. μ°Έκ³ μλ£https://hipopatamus.tistory.com/..
μκ³ λ¦¬μ¦/ποΈ μ 리
μμκ° μ ν΄μ Έμλ μμ
μ μ°¨λ‘λ‘ μνν΄μΌν λ κ·Έ μμλ₯Ό κ²°μ ν΄μ£ΌκΈ° μν΄ μ¬μ©νλ μκ³ λ¦¬μ¦μ΄λ€. μλ₯Ό λ€μ΄λ³΄λ©΄, μμ κ°μ 컀리νλΌμμ μκ³ λ¦¬μ¦μ μκ°νκ³ μ νλ©΄ μ μκ³Όλͺ©λ€μ μκ°ν νμ λ€μ΄μΌνλ€κ³ νμ λ, μ΄μ°μν → Cνλ‘κ·Έλλ° → κ°μ²΄μ§ν₯νλ‘κ·Έλλ° → μλ£κ΅¬μ‘° → μκ³ λ¦¬μ¦ μμλ‘ μκ°μ μ²μ νλ©΄ λλ€. μ΄ μΈμλ μ¬λ¬ κ°μ μμκ° μ‘΄μ¬ν μ μλ€. μ ν κ΄κ³κ° λͺ
ννμ λ μμλ₯Ό κ²°μ νμ¬ μ λ ¬νλ μκ³ λ¦¬μ¦μΈ κ²μ΄λ€. πΉ μμ μ λ ¬ νΉμ§ μ¬μ΄ν΄μ΄ λ°μνμ§ μλ λ°©ν₯μ± κ·Έλνμμμ μ λ ¬ π μ¬μ΄ν΄μ΄ μλ€λ©΄ μμ μ λ ¬ μν X (μμμ μ μ°Ύμ μ μμΌλ―λ‘) ν λλ μ€ν μ¬μ© μ§μ
μ°¨μ κ³ λ € πΉοΈ μκ³ λ¦¬μ¦ κ³Όμ μ§μ
μ°¨μλ μ μ μ λ€μ΄μ€λ κ°μ μμ΄κ³ , λΉ¨κ°μ μ«μλ μ§μ
μ°¨μλ₯Ό λνλΈ κ²μ΄λ€. μ§μ
μ°¨μ..
μκ³ λ¦¬μ¦/BOJ
⨠ꡬν & BFS https://www.acmicpc.net/problem/21609 21609λ²: μμ΄ μ€νκ΅ μμ΄ μ€νκ΅μ μ½λ© λμ리μμ κ²μμ λ§λ€μλ€. μ΄ κ²μμ ν¬κΈ°κ° N×NμΈ κ²©μμμ μ§νλκ³ , μ΄κΈ°μ 격μμ λͺ¨λ μΉΈμλ λΈλ‘μ΄ νλμ© λ€μ΄μκ³ , λΈλ‘μ κ²μμ λΈλ‘, 무μ§κ° λΈλ‘, μΌλ° λΈλ‘ www.acmicpc.net π κ³ λ €ν΄μΌν μ κ·Έλ£Ήμ μνλ λΈλ‘μ 쑰건 μΌλ° λΈλ‘μ΄ μ μ΄λ νλ μ΄μ μΌλ° λΈλ‘μ μμ λͺ¨λ κ°μμΌν¨ κ²μμ λΈλ‘ ν¬ν¨ X 무μ§κ°μ λΈλ‘μ λͺκ°λ μκ΄ X λΈλ‘μ κ°μλ 2κ° μ΄μ λΈλ‘ κ·Έλ£Ήμ κΈ°μ€ λΈλ‘ = 무μ§κ° λΈλ‘μ΄ μλ λΈλ‘ μ€μμ νμ λ²νΈκ° κ°μ₯ μμ λΈλ‘. κ·Έλ¬ν λΈλ‘μ΄ μ¬λ¬ κ°μ΄λ©΄ μ΄μ λ²νΈκ° κ°μ₯ μμ λΈλ‘ .. μ€ν νλ μ΄ κΈ°λ₯ β λΈλ‘ κ·Έλ£Ήμ΄ μμ λ..
μκ³ λ¦¬μ¦/ποΈ μ 리
2μ°¨μ λ°°μ΄μμ λ¬ν½μ΄λ‘ μ΄λνλ λ°©λ²μ μ 리νλ€. π μμνλ κ³³μμ μνμ’μ° λ°©ν₯ (λ°μκ³ λλ μκ³λ°©ν₯)μ λ°λΌ λ¬ν½μ΄ λ°°μ΄μ ννκ° λ¬λΌμ§λ€. λ°°μ΄ μ€μ (N/2, N/2) μμλΆν° μμ μ€μ(N/2, N/2)μμλΆν° μμν΄μΌνλ―λ‘ Nμ΄ νμμ΄μ΄μΌ νλ€. ←, ↓μΌ λλ 1, 3, 5, 7 .... λ§νΌ μ΄λνλ μΉΈμ΄ μ¦κ°νλ€. →, ↑μΌ λλ 2, 4, 6, 8 .... λ§νΌ μ΄λνλ μΉΈμ΄ μ¦κ°νλ€. 2λ² λ°©ν₯μ λ°κΏ λλ§λ€ μ΄λνλ μΉΈμ μ¦κ°μν¨λ€. π moveCnt++ νμ¬λ μ€μμμ μΌμͺ½λ°©ν₯μΌλ‘ μμν΄μ λ°μκ³λ°©ν₯μΌλ‘ λκ³ μμ§λ§, μΌμͺ½ μΈμ μ, ν, μ° λ°©ν₯μΌλ‘ μμν΄μ λ°μκ³ λλ μκ³λ°©ν₯μΌλ‘ κ°λ κ²λ λμΌν λ°©λ²μΌλ‘ μ§ννλ©΄ λλ€. λ°©ν₯μ λ κ°μ© μ§λ§ μ§μ΄μ£Όλ©΄ κ°λ₯ ! impor..
μκ³ λ¦¬μ¦/ποΈ μ 리
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/π μλ¬ κΈ°λ‘
μ€λ₯ λ΄μ©μΈμ€ν΄μ€ 보μκ·Έλ£Ήμ 6379 ν¬νΈλ₯Ό ν¬ν¨νμμλ λΆκ΅¬νκ³ Connection refused μλ¬κ° λ¬λ€. 볡μ μ€μ μμ λ°μν μ μλ λ¬Έμ λΌλλ° μλ²κ° μ λλ‘ μ€μ λμ΄μλμ§ νμΈν΄λ³΄μ. ν΄κ²° λ°©λ² Master μλ²μ μ€μ μ μμ νλ€. Master μλ²μ Redis μ€μ νμΌ('redis.conf')μ μ΄μ΄μ 'bind' μ λ§μ€ν° μλ²μ μ¬μ€ IP μ£Όμλ₯Ό μΆκ°νλ€. 'bind' μ€μ μ ν΅ν΄ Redisκ° μμ λκΈ°ν μ£Όμλ₯Ό μ§μ ν μ μλ€. μμ μ€μ λ³κ²½ νμλ Redisλ₯Ό μ¬μμνμ¬ λ³κ²½ μ¬νμ μ μ©ν΄μΌνλ€. Replica μλ²λ‘ λμμμ λ‘κ·Έλ₯Ό νμΈν΄λ³΄λ©΄ μ μμ μΌλ‘ μ°κ²°μ΄ μ±κ³΅λμλ€λ κ²μ νμΈν μ μλ€.