๋๊ธฐ์ ์ ์ถ๋ ฅ๊ณผ ๋น๋๊ธฐ์ ์ ์ถ๋ ฅ
- 1) ๋๊ธฐ์ ์
์ถ๋ ฅ synchronous I/O
- I/O ์์ฒญ ํ ์ ์ถ๋ ฅ ์์ ์ด ์๋ฃ๋ ํ์์ผ ์ ์ด๊ฐ ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ ๋์ด๊ฐ.
- ํ๋ก์ธ์ค๊ฐ ์ ์ถ๋ ฅ์ ์ํํ๋ ๋์ ๊ธฐ๋ค๋ฆฌ๊ธฐ / ์ ์ถ๋ ฅ์ด ๋๋ ๋๊น์ง ์๋ฌด๊ฒ๋ ํ์ง ์๊ณ ๊ธฐ๋ค๋ ค์ผ ํจ
- ๊ตฌํ ๋ฐฉ๋ฒ1 : ์ผ์ ๋ชปํ๋ ๋์ CPU๋ฅผ ๊ฐ์ง๊ณ ์
- I/O๊ฐ ๋๋ ๋๊น์ง CPU๋ฅผ ๋ญ๋น์ํด
- ๋งค์์ ํ๋์ I/O๋ง ์ผ์ด๋ ์ ์์
- ๊ตฌํ ๋ฐฉ๋ฒ2 : ์ผ์ ๋ชปํ๋ ๋์ ๋ค๋ฅธ ํ๋ก์ธ์ค์๊ฒ CPU๋ฅผ ๋๊ฒจ์ค
- I/O๊ฐ ์๋ฃ๋ ๋๊น์ง ํด๋น ํ๋ก๊ทธ๋จ์๊ฒ์ CPU๋ฅผ ๋นผ์์
- I/O ์ฒ๋ฆฌ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์ค์ ๊ทธ ํ๋ก๊ทธ๋จ์ ์ค ์ธ์
- ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ CPU๋ฅผ ์ค -> ํ์ฌ ์์ ๋๋๋ฉด interrupt ๊ฑธ์ด์ CPU ๋ค์ ๊ฐ์ ธ์ด
- 2) ๋น๋๊ธฐ์ ์
์ถ๋ ฅ asynchronous I/O
- I/O๊ฐ ์์๋ ํ ์ ์ถ๋ ฅ ์์ ์ด ๋๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ์ ์ด๊ฐ ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ ์ฆ์ ๋์ด๊ฐ
- ์ ์ถ๋ ฅ ์์ฒญ์ ํ๊ณ ์งํ๋๋ ๋์์๋ instruction์ ์ํ
๋ ๊ฒฝ์ฐ ๋ชจ๋ I/O์ ์๋ฃ๋ ์ธํฐ๋ฝํธ๋ก ์๋ ค์ค
DMA (Direct Memory Access)
๋น ๋ฅธ ์ ์ถ๋ ฅ ์ฅ์น๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ๊น์ด ์๋๋ก ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ฌ์ฉ
CPU์ ์ค์ฌ ์์ด device controller๊ฐ device์ buffer storage์ ๋ด์ฉ์ ๋ฉ๋ชจ๋ฆฌ์ block ๋จ์๋ก ์ง์ ์ ์ก
! interrupt์ ํ์๋ฅผ ์ค์ด๊ธฐ ์ํด byte ๋จ์๊ฐ ์๋๋ผ block ๋จ์๋ก ์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์์ํด
์๋ก ๋ค๋ฅธ ์ ์ถ๋ ฅ ๋ช ๋ น์ด
1) ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผํ๋ instruction + I/O ์ ๊ทผํ๋ instruction
2) I/O ์ฅ์น์ memory ์ฐ์ฅ ์ฃผ์๋ฅผ ๋งค๊น -> ํ๋์ memory-mapped instruction ์ฌ์ฉ(memory-mapped I/O)
์ ์ฅ์ฅ์น ๊ณ์ธต ๊ตฌ์กฐ
- ์๋ก ๊ฐ์๋ก ์๋๊ฐ ๋น ๋ฅด๊ณ , ๊ฐ๊ฒฉ์ด ๋น์ธ๊ณ , ์ฉ๋์ด ์ ์
- secondary memory์ ๊ฒฝ์ฐ ๋นํ๋ฐ์ฑ, primary memory์ ๊ฒฝ์ฐ ํ๋ฐ์ฑ ๋งค์ฒด๋ก ๊ตฌ์ฑ๋์ด ์์
1) primary memory(executable)
CPU์์ ์ง์ ์ ๊ทผํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ(Byte ๋จ์๋ก ์ ๊ทผ ๊ฐ๋ฅ)
2) secondary(non-executable)
CPU์์ ์ง์ ์ ๊ทผํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ(sector ๋จ์)
Caching : copying information into faster storage system
CPU์ ์๋ ์ฐจ์ด๋ฅผ ์์ถฉํ๊ธฐ ์ํด ์ฌ์ด์ cache memory๋ฅผ ๋ฃ์ด๋์ง๋ง, ์ฉ๋์ด ์๋ค๋ ๋จ์ ์ด ์์
์์ฃผ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ๋ง main memory์ ์ฌ๋ ค ์ฌ์ฌ์ฉ์ฑ์ ๋์ธ๋ค
ํ๋ก๊ทธ๋จ์ ์คํ
1. ํ๋ก๊ทธ๋จ์ด ์์ฑ๋๋ฉด 0๋ฒ์ง๋ถํฐ ์์ํ๋ ๋ ์์ ์ธ ์ฃผ์๊ณต๊ฐ ์์ฑ(code, data, stack)
code : ํ๋ก๊ทธ๋จ์์ ์คํํ ๊ธฐ๊ณ์ด ์ฝ๋
data : ์ ์ญ ๋ณ์ ๋ฑ ์๋ฃ ๊ตฌ์กฐ
stack : ๋ฐ์ดํฐ๋ฅผ ์๋ ์์ญ
2. ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ๋ชจ๋ฆฌ(kernel)์ ์ฌ๋ ค์ ์คํ
- ํ๋ก๊ทธ๋จ์์ ๋น์ฅ ํ์ํ ๋ถ๋ถ๋ง ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ๊ณ , ๊ทธ๋ ์ง ์์ ๋ถ๋ถ์ ๋์คํฌ์ swap area์ ์ฌ๋ฆผ
- ์ฌ์ฉ์ ์ฃผ์ ๊ณต๊ฐ์ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋๋ผ virtual memory๋ผ๊ณ ๋ถ๋ฅธ๋ค.
- virtual memory -> physical memory๋ก ์ฌ๋ฆฌ๋ ๊ณผ์ ์์ address translation์ด ์ผ์ด๋๋ค.
* HDD
- file system : ์ ์์ด ๋๊ฐ๋ ํ์ผ ๋ด์ฉ์ ์ ์งํด์ผ ํจ(๋นํ๋ฐ์ฑ)
- swap area : ์ ์์ด ๋๊ฐ๋ฉด ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋๊ณ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ๋ด์ฉ๋ ์ฌ๋ผ์ง(ํ๋ฐ์ฑ) ๋ฉ๋ชจ๋ฆฌ ์ฌ์ ๊ณต๊ฐ์ผ๋ก ์ฌ์ฉ
์ปค๋ ์ฃผ์ ๊ณต๊ฐ์ ๋ด์ฉ
1. code : OS์ ์ญํ ๊ณผ ๊ด๋ จ๋ ์ฝ๋
- ์์คํ ์ฝ, interrupt ์ฒ๋ฆฌ ์ฝ๋(interrupt๊ฐ ๋ค์ด์ฌ ๊ฒฝ์ฐ ์ ์ด๊ถ OSํํ ๋ก ๋์ด์จ๋ค)
- ์์ ๊ด๋ฆฌ ๋ฐ ํธ๋ฆฌํ ์๋น์ค ์ ๊ณต์ ์ํ ์ฝ๋
2. data
- ์ด์์ฒด์ ๊ฐ ์ฌ์ฉํ๋ HDD ๋ณ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํ ์๋ฃ๊ตฌ์กฐ ์ ์ฅ
- PCB : ํ๋ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ์๋ฃ๊ตฌ์กฐ
ex) ์ผ๋ง๋ CPU๋ฅผ ์ผ๋์ง ๋ฑ๋ฑ
3. stack
ํจ์๋ฅผ ํธ์ถํ๊ฑฐ๋ ๋ฆฌํดํ ๋ ์ฌ์ฉ
์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด ์ฌ์ฉํ๋ ํจ์
1. ํ๋ก์ธ์ค Address space
์๊ธฐ๋ค๋ผ๋ฆฌ ์ ํ(virtual ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๋ฐ๊พธ๊ธฐ) ๊ฐ๋ฅ
* ์ฌ์ฉ์ ์ ์ ํจ์ : ์์ ์ ํ๋ก๊ทธ๋จ์์ ์ ์ํ ํจ์
* ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํจ์
- ์์ ์ ํ๋ก๊ทธ๋จ์์ ์ ์ํ์ง ์๊ณ ๊ฐ๋ค ์ด ํจ์
- ์์ ์ ํ๋ก๊ทธ๋จ์ ์คํ ํ์ผ์ ํฌํจ๋์ด ์๋ค
2. Kernel Address space
์ ํ ๋ถ๊ฐ๋ฅ(virtual -X-> physical memory)
* ์ปค๋ ํจ์
- ์ด์์ฒด์ ํ๋ก๊ทธ๋จ์ ํจ์
- ์ปค๋ ํจ์์ ํธ์ถ = ์์คํ ์ฝ
ํ๋ก๊ทธ๋จ์ ์คํ
'๐ป CS > ์ด์์ฒด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ด์์ฒด์ ] 5. CPU Scheduling (0) | 2022.11.27 |
---|---|
[์ด์์ฒด์ ] 4. Process Management (0) | 2022.11.27 |
[์ด์์ฒด์ ] 3. Process (0) | 2022.11.20 |
[์ด์์ฒด์ ] 2. System Structure & Program Execution 1 (0) | 2022.11.20 |
[์ด์์ฒด์ ] 1. Introduction to Operating Systems (0) | 2022.11.13 |
๋๊ธ