์ ์ฒด ๊ธ
-
[OS] Race ConditionComputer Science/OS 2023. 1. 17. 22:02
Race Condition ๋ ๊ฐ ์ด์์ cocurrentํ ํ๋ก์ธ์ค(ํน์ ์ค๋ ๋)๋ค์ด ํ๋์ ์์(๋ฆฌ์์ค)์ ์ ๊ทผํ๊ธฐ ์ํด ๊ฒฝ์ํ๋ ์ํ โ ๋์ ์ ๊ทผ ์ ์๋ฃ์ ์ผ๊ด์ฑ์ ํด์น๋ ๊ฒฐ๊ณผ๊ฐ ๋ํ๋จ! e.g) ๊ณต์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ํ๋ก์ธ์ค๋ฅผ ์ปค๋ ๋ด๋ถ ๋ฐ์ดํฐ๋ฅผ ์ ๊ทผํ๋ ๋ฃจํด๋ค ๊ฐ (์: ์ปค๋๋ชจ๋ ์ํ ์ค ์ธํฐ๋ฝํธ๋ก ์ปค๋๋ชจ๋ ๋ค๋ฅธ ๋ฃจํด ์ํ ์) OS์์ race condition์ ์ธ์ ๋ฐ์ํ๋ ๊ฐ? kernel ์ํ ์ค ์ธํฐ๋ฝํธ ๋ฐ์ - ๋ฌธ์ ์ : ์ปค๋๋ชจ๋์์ ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ์ฌ ์์ ์ ์ํํ๋ค๊ฐ ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํ์ฌ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ๋ ๊ฒฝ์ฐ - ํด๊ฒฐ๋ฒ: ์ปค๋๋ชจ๋์์ ์์ ์ ์ํํ๋ ๋์, ์ธํฐ๋ฝํธ๋ฅผ disable ์์ผ CPU ์ ์ด๊ถ์ ๊ฐ์ ธ๊ฐ์ง ๋ชปํ๋๋ก ํ๋ค. Process ๊ฐ system call์ ํ๋ฉฐ k..
-
[OS] CPU ์ค์ผ์ค๋ง - 2 (์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ)Computer Science/OS 2023. 1. 17. 21:48
์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ 1. ์ ์ ์ ์ถ ์ค์ผ์ค๋ง(First-Come First-Servied: FCFS) ํ๋ก์ธ์ค๊ฐ ์ค๋น ํ์ ๋์ฐฉํ ์๊ฐ ์์๋๋ก CPU๋ฅผ ํ ๋นํ๋ ์๊ฐ ๋จผ์ ๋์ฐฉํ ํ๋ก์ธ์ค์ ์ฑ๊ฒฉ์ ๋ฐ๋ผ ํ๊ท ๋๊ธฐ์๊ฐ์ด ํฌ๊ฒ ๋ฌ๋ผ์ง๋ค ์ฝ๋ณด์ด ํ์์ด ๋ํ๋ ์ ์๋ค. ์ฝ๋ณด์ด ํ์ ? CPU ๋ฒ์คํธ๊ฐ ์งง์ ํ๋ก์ธ์ค๊ฐ CPU ๋ฒ์คํธ๊ฐ ๊ธด ํ๋ก์ธ์ค๋ณด๋ค ๋์ค์ ๋์ฐฉํด ์ค๋ ์๊ฐ์ ๊ธฐ๋ค๋ ค์ผํ๋ ํ์ 2. ์ต๋จ์์ ์ฐ์ ์ค์ผ์ค๋ง(Shortest-Job First: SJF) CPU ๋ฒ์คํธ๊ฐ ๊ฐ์ฅ ์งง์ ํ๋ก์ธ์ค์๊ฒ ์ ์ผ ๋จผ์ CPU๋ฅผ ํ ๋นํ๋ ๋ฐฉ์ SJF ์๊ณ ๋ฆฌ์ฆ์ ๋น์ ์ ํ ๋ฐฉ์๊ณผ ์ ์ ํ ๋ฐฉ์ ๋ ๊ฐ์ง๋ก ๊ตฌํ๋ ์ ์๋ค. ๋น์ ์ ํ ๋ฐฉ์(nonpreemptive) : ์ผ๋จ CPU๋ฅผ ํ๋ํ๋ฉด ๊ทธ ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ์์ง ๋ฐ๋ฉํ..
-
[OS] CPU ์ค์ผ์ค๋ง - 1 (CPU ์ค์ผ์ค๋ฌ, ์ค์ผ์ค๋ง ์ฑ๋ฅํ๊ฐ)Computer Science/OS 2023. 1. 17. 21:32
CPU ํ๋ก๊ทธ๋จ์ ๊ธฐ๊ณ์ด ๋ช ๋ น์ ์ค์ ๋ก ์ํํ๋ ์ปดํจํฐ ๋ด์ ์ค์ ์ฒ๋ฆฌ ์ฅ์น ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด ์ํ๋๋ ๊ณผ์ = CPU ๊ณผ์ + I/O ์์ ์ ๋ฐ๋ณต(์ ์ถ๋ ฅ ์์ ) CPU ๋ฒ์คํธ(burst) ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด CPU๋ฅผ ์ง์ ๊ฐ์ง๊ณ ๋น ๋ฅธ ๋ช ๋ น์ ์ํํ๋ ์ผ๋ จ์ ๋จ๊ณ I/O ๋ฒ์คํธ(burst) I/O ์์ฒญ์ด ๋ฐ์ํด ์ปค๋์ ์ํด ์ ์ถ๋ ฅ ์์ ์ด ์์ฒญ ๋ ํ ์๋ฃ๋์ด ๋ค์ CPU ๋ฒ์คํธ๋ก ๋์๊ฐ๊ธฐ๊น์ง ์ผ์ด๋๋ ์ผ๋ จ์ ์์ CPU ์ค์ผ์ค๋ฌ ์ค๋น ์ํ์ ์๋ ํ๋ก์ธ์ค๋ค ์ค ์ด๋ ํ ํ๋ก์ธ์ค์๊ฒ CPU๋ฅผ ํ ๋นํ ์ง ๊ฒฐ์ ํ๋ ์ด์์ฒด์ ์ ์ฝ๋ CPU ์ค์ผ์ค๋ฌ ๋ฐฉ์ ๋น์ ์ ํ ๋ฐฉ์ : ํ๋ก์ธ์ค ์ข ๋ฃ or I/O ๋ฑ์ ์ด๋ฒคํธ๊ฐ ์์ ๋๊น์ง ์คํ ๋ณด์ฅ(์ฒ๋ฆฌ์๊ฐ ์์ธก ์ฉ์ดํจ) ์ ์ ํ ๋ฐฉ์ : OS๊ฐ CPU์ ์ฌ์ฉ๊ถ์ ์ ์ ํ ์ ์๋ ๊ฒฝ..
-
[OS] ํ๋ก์ธ์ค์ ์์ฑ๊ณผ ํ๋ก์ธ์ค ๊ฐ์ ํ๋ ฅComputer Science/OS 2023. 1. 12. 18:56
์์คํ ์ด ๋ถํ ๋ ํ ์ต์ด์ ํ๋ก์ธ์ค๋ ์ด์์ฒด์ ๊ฐ ์ง์ ์์ฑํ์ง๋ง ๊ทธ ๋ค์๋ถํฐ๋ ์ด๋ฏธ ์กด์ฌํ๋ ํ๋ก์ธ์ค๊ฐ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ฅผ ๋ณต์ ์์ฑํ๊ฒ ๋ฉ๋๋ค. ์ด ๋ ํ๋ก์ธ์ค๋ฅผ ์์ฑํ ํ๋ก์ธ์ค๋ฅผ ๋ถ๋ชจ ํ๋ก์ธ์ค๋ผ๊ณ ํ๊ณ , ์๋กญ๊ฒ ์์ฑ๋ ํ๋ก์ธ์ค๋ฅผ ์์ ํ๋ก์ธ์ค๋ผ๊ณ ํ๋ค. ํ๋ก์ธ์ค์ ์ธ๊ณ์์ , ์์์ด ๋จผ์ ์ฃฝ๊ณ ์ด์ ๋ํ ์ฒ๋ฆฌ๋ ์์์ ์์ฑํ๋ ๋ถ๋ชจ ํ๋ก์ธ์ค๊ฐ ๋ด๋นํ๋ ๋ฐฉ์์ผ๋ก ์งํ๋๋ค. ํ๋ก์ธ์ค ์์ฑ(Process Creation) ๋ถ๋ชจ ํ๋ก์ธ์ค๊ฐ ์์ ํ๋ก์ธ์ค ์์ฑ ํ๋ก์ธ์ค์ ํธ๋ฆฌ(๊ณ์ธต ๊ตฌ์กฐ) ํ์ฑ ํ๋ก์ธ์ค๋ ์์ ์ ์ํํ๊ธฐ ์ํด์๋ ์์์ ํ์๋ก ํจ ์์ ํ๋ ๋ฐฉ๋ฒ ์ด์์ฒด์ ๋ก๋ถํฐ ๋ฐ๋๋ค ๋ถ๋ชจ์ ๊ณต์ ํ๋ค ์์์ ๊ณต์ ๋ถ๋ชจ์ ์์์ด ๋ชจ๋ ์์์ ๊ณต์ ํ๋ ๋ชจ๋ธ ์ผ๋ถ๋ฅผ ๊ณต์ ํ๋ ๋ชจ๋ธ ์ ํ ๊ณต์ ํ์ง ์๋ ๋ชจ๋ธ ์ํ(Execu..
-
[OS] ์ฐ๋ ๋์ ๋ฉํฐ์ฐ๋ ๋Computer Science/OS 2023. 1. 5. 14:25
http://www.kocw.net/home/cview.do?lid=29d9a718cff884c3 ์ด์์ฒด์ ์ด์์ฒด์ ๋ ์ปดํจํฐ ํ๋์จ์ด ๋ฐ๋ก ์์ ์ค์น๋๋ ์ํํธ์จ์ด ๊ณ์ธต์ผ๋ก์ ๋ชจ๋ ์ปดํจํฐ ์์คํ ์ ํ์์ ์ธ ๋ถ๋ถ์ด๋ค. ๋ณธ ๊ฐ์ข์์๋ ์ด์ ๊ฐ์ ์ด์์ฒด์ ์ ๊ฐ๋ ๊ณผ ์ญํ , ์ด์์ฒด์ ๋ฅผ ๊ตฌ์ฑํ๋ ๊ฐ www.kocw.net Process2 ๋๊ธฐ์ ์ ์ถ๋ ฅ๊ณผ ๋น๋๊ธฐ์ ์ ์ถ๋ ฅ, ํ๋ก์ธ์ค ์ค์ผ์ค๋ง ํ์ ๋ชจ์ต, Thread http://www.kocw.net/home/cview.do?lid=54e1a4abcd59272d ์ด์์ฒด์ ์ด์์ฒด์ ๋ ์ปดํจํฐ ํ๋์จ์ด ๋ฐ๋ก ์์ ์ค์น๋๋ ์ํํธ์จ์ด ๊ณ์ธต์ผ๋ก์ ๋ชจ๋ ์ปดํจํฐ ์์คํ ์ ํ์์ ์ธ ๋ถ๋ถ์ด๋ค. ๋ณธ ๊ฐ์ข์์๋ ์ด์ ๊ฐ์ ์ด์์ฒด์ ์ ๊ฐ๋ ๊ณผ ์ญํ , ์ด์์ฒด์ ๋ฅผ ๊ตฌ์ฑํ๋ ๊ฐ www.kocw...
-
[OS] ์ด์์ฒด์ ํ๋ก์ธ์ค, ์ค์ผ์ค๋ฌComputer Science/OS 2022. 12. 29. 19:02
http://www.kocw.net/home/cview.do?lid=b31830a2b3cf1e60 ์ด์์ฒด์ ์ด์์ฒด์ ๋ ์ปดํจํฐ ํ๋์จ์ด ๋ฐ๋ก ์์ ์ค์น๋๋ ์ํํธ์จ์ด ๊ณ์ธต์ผ๋ก์ ๋ชจ๋ ์ปดํจํฐ ์์คํ ์ ํ์์ ์ธ ๋ถ๋ถ์ด๋ค. ๋ณธ ๊ฐ์ข์์๋ ์ด์ ๊ฐ์ ์ด์์ฒด์ ์ ๊ฐ๋ ๊ณผ ์ญํ , ์ด์์ฒด์ ๋ฅผ ๊ตฌ์ฑํ๋ ๊ฐ www.kocw.net Process 1 ํ๋ก์ธ์ค์ ๊ฐ๋ , ํ๋ก์ธ์ค์ ์ํ(Process State), ํ๋ก์ธ์ค์ ๊ฐ๋ , ํ๋ก์ธ์ค ์ํ๋, Process Control Block(PCB), ๋ฌธ๋งฅ๊ตํ(Context Switch), ํ๋ก์ธ์ค๋ฅผ ์ค์ผ์ค๋งํ๊ธฐ ์ํ ํ, Ready Queue์ ๋ค์ํ Device Queue, ์ค์ผ์ค๋ฌ(Scheduler) ํ๋ก์ธ์ค ์คํ ์ค์ธ ํ๋ก๊ทธ๋จ ํ๋ก์ธ์ค์ ๋ฌธ๋งฅ ํ๋ก์ธ์ค๊ฐ ํ์ฌ ์ด๋ค ์ํ์์ ..
-
[OS] ์์คํ ๊ตฌ์กฐ์ ํ๋ก๊ทธ๋จ ์คํComputer Science/OS 2022. 12. 29. 14:24
https://core.ewha.ac.kr/assets/publish/C0101020140314151238067290 ๋ฐํจ๊ฒฝ [์ด์์ฒด์ ] 4. System Structure & Program Execution 2 ์ค๋ช ์ด ์์ต๋๋ค. core.ewha.ac.kr System Structure & Program Execution 2 ์ปดํจํฐ ์์คํ ๊ตฌ์กฐ, ์ธํฐ๋ฝํธ(Interrupt), ๋๊ธฐ์ ์ ์ถ๋ ฅ๊ณผ ๋น๋๊ธฐ์ ์ ์ถ๋ ฅ, ์์คํ ์ฝ(System Call), DMA(Direct Memory Access), ์๋ก ๋ค๋ฅธ ์ ์ถ๋ ฅ ๋ช ๋ น์ด, ์ ์ฅ์ฅ์น ๊ณ์ธต ๊ตฌ์กฐ, ํ๋ก๊ทธ๋จ์ ์คํ(๋ฉ๋ชจ๋ฆฌ load), ์ปค๋ ์ฃผ์ ๊ณต๊ฐ์ ๋ด์ฉ, ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด ์ฌ์ฉํ๋ ํจ์, ํ๋ก๊ทธ๋จ์ ์คํ ์ปดํจํฐ ์์คํ ์ ๊ตฌ์กฐ interrupt๊ฐ ๋ค์ด์๋์ง ์ฒดํฌ..
-
[Python] 1744 ์๋ฌถ๊ธฐAlgorithm/๋ฐฑ์ค 2022. 12. 28. 21:22
1. ๋ฌธ์ ๐ https://www.acmicpc.net/problem/1744 2. ์ ์ถ๋ ฅ ์ ๐ 3. ์๊ณ ๋ฆฌ์ฆ โ - ์ต๋๊ฐ ๋์ค๊ธฐ ์ํด์ ์์์์ ๊ฒฝ์ฐ์ ์ 1) ์์ * ์์ ๊ฒฝ์ฐ์ ์ 2) ์์ + ์์ ๊ฒฝ์ฐ์ ์ 3) ์์ * 0 ๊ฒฝ์ฐ์ ์ 4) ์์ 4๊ฐ์ง ์ค์ ์ต๋ ๊ฐ์ ์์๋ ๊ฒฝ์ฐ์ ์ 1) ์์ * ์์ ๊ฒฝ์ฐ์ ์ 2) ์์ + ์์ ๊ฒฝ์ฐ์ ์ 3) ์์ 3๊ฐ์ง ์ค์ ์ต๋ ๊ฐ์ ๋ํด์ผํ๋ค ๋ฐ๋ผ์ ์ธํ์ ๋ฐ๋ก ๋ฐ๋ก ๋ฐ์์ฃผ์ด ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ฐ์ ธ์ค๋น 4. ์์ค์ฝ๋ ๐ป import sys input = sys.stdin.readline N = int(input().strip()) negative_arr = [] zero_arr = [] positive_arr = [] for i in ran..