Segmentation
Segmentation Architecture
Segmentation with Paging
ํ๋ก๊ทธ๋จ์ ์๋ฏธ ๋จ์์ธ ์ฌ๋ฌ ๊ฐ์ segment๋ก ๊ตฌ์ฑ
- ์๊ฒ๋ ํ๋ก๊ทธ๋จ์ ๊ตฌ์ฑํ๋ ํจ์ ํ๋ํ๋๋ฅผ ์ธ๊ทธ๋จผํธ๋ก ์ ์
- ํฌ๊ฒ๋ ํ๋ก๊ทธ๋จ ์ ์ฒด๋ฅผ ํ๋์ ์ธ๊ทธ๋จผํธ๋ก ์ ์
- ์ผ๋ฐ์ ์ผ๋ก๋
code,data,stack๋ถ๋ถ์ด ํ๋์ฉ์ ์ธ๊ทธ๋จผํธ๋ก ์ ์๋จ
Segment๋ ๋
ผ๋ฆฌ์ ์ธ ํ๋ํ๋์ ๋จ์์ด๋ค.
- main()
- function
- global variables
- stack
- symbol table, arrays
๋ผ์ง๋ฅผ ๋์ถํ ๋, ํ์ด์ง์ ๋ผ์ง๋ฅผ ๊ฐ์ ํฌ๊ธฐ๋ก ์๋ผ์ ๋ณด๊ดํ๋ ๊ฒ์ด๋ผ๋ฉด, ์ธ๊ทธ๋ฉํ ์ด์ ์ ๋ถ์๋ณ๋ก ์๋ผ์ ๋ณด๊ดํ๋ ๊ฒ์ด๋ค
์ธ๊ทธ๋ฉํ ์ด์ (Segmentation)
- ํ๋ก์ธ์ค๋ฅผ ๋ฌผ๋ฆฌ์ ๋จ์์ธ ํ์ด์ง๊ฐ ์๋ ๋ ผ๋ฆฌ์ ๋จ์์ธ ์ธ๊ทธ๋จผํธ๋ก ๋ถํ ํด์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌํ๋ ๋ฐฉ์
- Logical address๋ ๋๊ฐ์ง๋ก ๊ตฌ์ฑ
- <
Segement-number,offset>
- <
- Segment table
- base: starting physical address of the segment
- limit: length of the segment
- Segment-table base register(STBR)
- ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์์์ segment table์ ์์น
- Segment-table length register(STLR)
- ํ๋ก๊ทธ๋จ์ด ์ฌ์ฉํ๋ segment์ ์
- ๊ฐ์์ฃผ์๋ ์ธ๊ทธ๋จผํธ ๋ฒํธ(s)์ ์ธ๊ทธ๋จผํธ ๋ด์ ์์น ๊ฐ(d)์ผ๋ก ํํ๋๊ณ , ์ธ๊ทธ๋จผํธ ํ ์ด๋ธ์ ์์์ฃผ์์ s๋ฅผ ๋ํด ํด๋น ์ํธ๋ฆฌ๋ฅผ ์ฐพ๋ ๊ณผ์ ์ ํ์ด์ง๊ณผ ๋ค๋ฅผ๊ฒ์ด ์๋ค.
- ์ธ๊ทธ๋จผํธ ํ
์ด๋ธ์์ ํ ์ํธ๋ฆฌ๊ฐ ๊ฐ์ง๋ ์ ๋ณด๋
์กด์ฌ ๋นํธ,์กด์ฌ ๋นํธ์ ๊ฐ์ ๋ฐ๋ผ ์ ํจํ ๋์คํฌ ์ฃผ์์๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๊ฐ๋ ํ๋๋ค์ด ์๋ค.- ์ฌ๊ธฐ์ ํ์ด์ง๊ณผ ๋ค๋ฅธ ์ ์ (ํ์ด์ง ๋์ ํ๋ ์ ๋ฒํธ์ ๊ฐ์ด ์ค์ฃผ์๋ฅผ ์ํด ๊ณ์ฐ์ ์๊ตฌํ๋ ํํ๊ฐ ์๋)์ค์ฃผ์๋ผ๋ ์ ์ด๋ค.
- ์ํธ๋ฆฌ์ ํด๋น ์ธ๊ทธ๋จผํธ๊ฐ ์ ์ฌ๋ ๋ฉ๋ชจ๋ฆฌ์ ์์์ฃผ์๊ฐ ์ ํ์๋ค.
- ์กด์ฌ ๋นํธ๊ฐ 0์ธ ๊ฒฝ์ฐ(segment fault) swap device๋ก ๋ถํฐ ํด๋น segment๋ฅผ ๋ฉ๋ชจ๋ฆฌ๋ก ์ ์ฌ segment map table ๊ฐฑ์
- ๋ค์์ผ๋ก **์ธ๊ทธ๋จผํธ์ ๊ธธ์ด(Length)**๊ฐ ์ ํ ์๋ ํ๋๊ฐ ์๋๋ฐ ์ด๊ฒ์ ์ธ๊ทธ๋จผํธ์ ํฌ๊ธฐ๊ฐ ์๋ก ๋ค๋ฆ์ผ๋ก ์ธํด ํ์ํ ์กฐ์น๋ฅผ ์ํด ์ฌ์ฉ๋๋ค. - d๊ฐ segment ๊ธธ์ด๋ณด๋ค ํฐ ๊ฒฝ์ฐ (d>length)์๋ segment overflow exception ์ฒ๋ฆฌ ๋ชจ๋ ํธ์ถ
- ์ธ๊ทธ๋จผํธ์ ์คํ์ ์ ์ดํ ๋ ์ฌ์ฉํ๋ ๋ช ๊ฐ์ ๋นํธ๋ค์ ๊ตฌํ์ ๋ฐ๋ผ ์ค์ ํ ์ ์๋ค.
- ์ฆ ์ฝ๊ธฐ, ์ฐ๊ธฐ, ์คํ, ์ถ๊ฐ์ ๊ฐ์ ์์
์ ๊ฐ ๋นํธ๋ฅผ 1 ๋๋ 0์ผ๋ก ์ง์ ํ๊ณ ๊ทธ ์กฐํฉ์ผ๋ก ํด๋น ์ธ๊ทธ๋จผํธ์ ๋ํด ์ ๊ตํ๊ฒ ์ ์ดํ ์ ์๋๋ฐ ์ด๋ฐ ๋นํธ๋ค์
์ ๊ทผ ์ ์ด ํค(Access Control Key)๋ผ ๋ถ๋ฅธ๋ค. - ํ๊ฐ๋์ง ์์ ์ฐ์ฐ์ผ ๊ฒฝ์ฐ(protection bit ๊ฒ์ฌ) segment protection exception ์ฒ๋ฆฌ ๋ชจ๋์ ํธ์ถ
- ์ฆ ์ฝ๊ธฐ, ์ฐ๊ธฐ, ์คํ, ์ถ๊ฐ์ ๊ฐ์ ์์
์ ๊ฐ ๋นํธ๋ฅผ 1 ๋๋ 0์ผ๋ก ์ง์ ํ๊ณ ๊ทธ ์กฐํฉ์ผ๋ก ํด๋น ์ธ๊ทธ๋จผํธ์ ๋ํด ์ ๊ตํ๊ฒ ์ ์ดํ ์ ์๋๋ฐ ์ด๋ฐ ๋นํธ๋ค์
segement๋ ์๋ฏธ ๋จ์์ด๊ธฐ ๋๋ฌธ์ ๊ณต์ (sharing)์ ๋ณด์(protection)์ ์์ด paging๋ณด๋ค ํจ์ฌ ํจ๊ณผ์ ์ด๋ค.
- Protection
- ๊ฐ ์ธ๊ทธ๋จผํธ ๋ณ๋ก protection bit๊ฐ ์์
- (์์) ์ฌ์์์ ์ค์ฃผ์๋ฅผ ์ํด ๋ํด์ง๋ ์์น ๊ฐ(d)์ด ์ธ๊ทธ๋จผํธ์ ๊ธธ์ด ๊ฐ์ ์ด๊ณผํ๋ฉด, ํธ๋ฉ์ ํตํด ํ๋ก์ธ์ค์ ์คํ์ ์ค์ง์์ผ ์ฌ์ฉ์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๋ณดํธ๊ฐ ๊ฐ๋ฅํ๋ค.
- ์ ๊ทผ ์ ์ด ํค๋ฅผ ์ฌ์ฉํ์ฌ ์ธ๊ทธ๋จผํธ ๋ณ๋ก ํ์ฉ๋๋ ์์ ์ ์ ์ดํ์ฌ, ์ฌ์ฉ์์ ์๋ชป๋ ์ ๊ทผ์ผ๋ก๋ถํฐ ๋ณดํธ๋ ์ ์๋ค.
- Sharing
- shared segment
- same segment number
- ๊ณต์ ํ๋ ๋ฐฉ๋ฒ์ ์ํธ๋ฆฌ์์ ๊ฐ์ ์ฃผ์ ๊ฐ์ ๊ฐ์ง๋๋กํ๋ฉด ๋๋ค.
- segment๋ ๋ ผ๋ฆฌ์ ์ผ๋ก ๋๋ ์ ธ์๊ธฐ ๋๋ฌธ์ ํด๋น ๋ ผ๋ฆฌ์์ branch์ ๊ฒฝ์ฐ ๋ด๋ถ์ ์ผ๋ก ์ผ๋ง ๋งํผ ์ด๋ํด์ผํ๋์ง ์๋ ค์ค๋ค. ์ด๋์ segment ๋ด๋ถ์์ ์ด๋ค์ง๊ธฐ ๋๋ฌธ์ ์๋ก ๋ค๋ฅธ ํ๋ก์ธ์ค๋ผ๋ ๋ฌธ์ ๊ฐ ๋์ง ์๋๋ค.
- Allocation
- first fit/ best fit
- external fragmentation ๋ฐ์
- segmentation์ ๊ธธ์ด๊ฐ ๋์ผํ์ง ์์ผ๋ฏ๋ก ๊ฐ๋ณ๋ถํ ๋ฐฉ์์์์ ๋์ผํ ๋ฌธ์ ์ ๋ค์ด ๋ฐ์
- ๋ณดํธ์ ๊ณต์ ๋ฉด์์ ํจ๊ณผ์
- ๋ user process๊ฐ ๋์ผํ ์ฝ๋(text segment)๋ฅผ ๊ณต์ ํ๊ธฐ ์ฉ์ด
- ๊ฐ memory section๋ค์๊ฒ ๊ฐ๊ธฐ ๋ค๋ฅธ read/write ๊ถํ ์ค์ ํ ์ ์์
- ์ธ๊ทธ๋จผํธ๋ ๊ฐ๋ณ์ ์ด๋ผ ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ํด์ผํจ ->
์ธ๋ถ ๋จํธํ๋ฐ์ํ ์ ์๋ค. - ํ๊ท ์ธ๊ทธ๋จผํธ ํฌ๊ธฐ๊ฐ ์์์๋ก ์ธ๋ถ ๋จํธํ ์์
ํ์ด์ง์ ํธ๋ฆฌํจ๊ณผ ์ธ๊ทธ๋จผํ ์ด์ ์ ๋ ผ๋ฆฌ์ ์ฅ์ ์ ํจ๊ป ๊ฐ์ง๊ธฐ ์ํ ๊ธฐ๋ฒ์ด๋ค.
- ํ๋ก๊ทธ๋จ์ ๋จผ์ ์ธ๊ทธ๋จผํธ๋ก ๋๋ ํ, ๊ฐ ์ธ๊ทธ๋จผํธ๋ ๋ค์ ํ์ด์ง๋ค๋ก ๋๋๋ค.
- ์ฆ ๊ฐ๊ฐ์ ์ธ๊ทธ๋จผํธ๋ ์ฌ๋ฌ ๊ฐ์ ํ์ด์ง๋ค๋ก ์ด๋ฃจ์ด์ง ๊ฒ์ด๊ณ , ์ฌ์์ ์ต์ข ๋จ์๋ ํ์ด์ง์ด๋ฏ๋ก (ํ์ด์ง์ ํ ๋์ ๊ฐ์ด) ๋ฉ๋ชจ๋ฆฌ๋ ํ์ด์ง์ ๊ฐ์ ํฌ๊ธฐ์ ํ๋ ์๋ค๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
- ์ฌ์์ ์ํด
์ธ๊ทธ๋จผํธ ํ ์ด๋ธ์ด ํ๋ํ์ํ๊ณ ,์ธ๊ทธ๋จผํธ ํ ์ด๋ธ์ ์ํธ๋ฆฌ ๊ฐ์๋งํผ ํ์ด์ง ํ ์ด๋ธ์ด ํ์ํด์ง๋ค.
๊ฐ์์ฃผ์๋์ธ๊ทธ๋จผํธ ๋ฒํธ(s),ํ์ด์ง ๋ฒํธ(p), ๊ทธ๋ฆฌ๊ณํ์ด์ง ๋ด์ ์์น ๊ฐ(d)์ผ๋ก ํํ๋๋๋ฐ, ์ธ๊ทธ๋จผํธ ํ ์ด๋ธ์ ๊ฐ ์ํธ๋ฆฌ๋ ๋๋์ด์ง ์์ ์ ํ์ด์ง๋ค์ ์ํ ํ์ด์ง ํ ์ด๋ธ์ ์์์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์๋ค.- ๊ฐ์์ฃผ์ <s,p,d>๊ฐ ์ฐธ์กฐ๋๋ฉด, ์ธ๊ทธ๋จผํธ ํ
์ด๋ธ์ ์์์ฃผ์๋ฅผ ๊ฐ์ง๋ ๊ธฐ์ค๋ ์ง์คํฐ ๊ฐ์ s๋ฅผ ๋ํด ์ธ๊ทธ๋จผํธ s๋ฅผ ์ํ ์ํธ๋ฆฌ๋ฅผ ๊ฒ์ํ ํ s๋ฅผ ์ํ ํ์ด์ง ํ
์ด๋ธ์ ์์์ฃผ์๋ฅผ ์๊ฒ ๋๋ค.
- ์ด๋ ์ํธ๋ฆฌ์ ํ์๋ ์ ๊ทผ ์ ์ด ํค์ ์๋ฐ ์ฌ๋ถ์ ๋ฐ๋ผ ์คํ์ด ์ค์ง๋ ์๋ ์์ผ๋ฉฐ, ์ ์ฌ๋ ํ์ด์ง ๋จ์์ด๋ฏ๋ก ์กด์ฌ ๋นํธ๋ฅผ ๋ ํ์๋ ์๋ค.
- ํ์ด์ง ํ ์ด๋ธ์ ์์์ฃผ์๋ฅผ ์ป์ ํ ๊ฐ์์ฃผ์์ p๋ฅผ ๋ํด p๋ฅผ ์ํ ์ํธ๋ฆฌ๋ฅผ ๊ฒ์ํ๋ฉด(์กด์ฌ ๋นํธ๊ฐ 0์ผ ๊ฒฝ์ฐ ๋จผ์ ์ ์ฌ ๊ณผ์ ์ ๊ฑฐ์ณ์ผ ํ๋ค.) p๊ฐ ์ ์ฌ๋ ํ๋ ์ ๋ฒํธ๋ฅผ ์ ์ ์๋ค. ๊ทธ ๋ค์์ (ํ๋ ์ ๋ฒํธ์ ํ์ด์ง ํฌ๊ธฐ๋ฅผ ๊ณฑํ ํ ๊ฐ์ ์ฃผ์์ ์์น ๊ฐ d๋ฅผ ๋ํด์ ์ป๊ฒ ๋๋) ์ค์ฃผ์๋ฅผ ์ ๊ทผํ๋ฉด ๋๋ค.
์ด ๊ธฐ๋ฒ์ ์ฌ์์ ์ํ ํ ์ด๋ธ์ ์ ์ฒด ํฌ๊ธฐ๊ฐ ์ปค์ง๊ณ ์ค์ฃผ์๋ก์ ์ ๊ทผ๊น์ง ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ด ๋ ์๊ตฌ๋๋ ๋จ์ ์ ์์ผ๋, ์ ๊ตฌํ ํ์ ๋์ ์ฅ์ ๋๋ฌธ์ OS/2 ์ด์์ฒด์ ๋ฑ์์ ์ฌ์ฉ๋๊ณ ์๋ค.
- segment-table entry๊ฐ segment์ base address๋ฅผ ๊ฐ์ง๊ณ ์๋ ๊ฒ์ด ์๋๋ผ segment๋ฅผ ๊ตฌ์ฑํ๋ page table์ base address๋ฅผ ๊ฐ์ง๊ณ ์์
- ๊ฐ ํ๋ก์ธ์ค๋ ํ๋ ์๋ค๊ณผ ๊ฐ์ ๊ธธ์ด๋ฅผ ๊ฐ์ง ๊ท ๋ฑ ํ์ด์ง๋ก ๋๋จ
- ์ธ๋ถ ๋จํธํ๊ฐ ์๊ธฐ์ง ์์
- ์๋์ ๋ด๋ถ ๋จํธํ ์กด์ฌ
- ๊ฐ ํ๋ก์ธ์ค๋ ์ฌ๋ฌ ์ธ๊ทธ๋ฉํธ๋ค๋ก ๋๋จ
- ๋ด๋ถ ๋จํธํ๊ฐ ์๊ธฐ์ง ์์
- ๋ฉ๋ชจ๋ฆฌ ํจ์จ ๊ฐ์
- ๋์ ๋ถํ ์ ํตํ ์ค๋ฒํค๋ ๊ฐ์
- ์ธ๋ถ ๋จํธํ ์กด์ฌ
- ๋จ์ ํ์ด์ง๊ณผ ๋น๊ตํด ํ๋ก์ธ์ค ํ์ด์ง ์ ๋ถ๋ฅผ ๋ก๋ ์ํฌ ํ์๊ฐ ์์
- ํ์ํ ํ์ด์ง๊ฐ ์์ผ๋ฉด ๋์ค์ ์๋์ผ๋ก ๋ถ๋ฌ๋ค์
- ์ธ๋ถ ๋จํธํ๊ฐ ์๊ธฐ์ง ์์
- ๋ณต์กํ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ก ์ค๋ฒํค๋๊ฐ ๋ฐ์
- ํ์ํ์ง ์์ ์ธ๊ทธ๋จผํธ๋ค์ ๋ก๋๋์ง ์์
- ํ์ํ ์ธ๊ทธ๋จผํธ๊ฐ ์์ ๋ ๋์ค์ ์๋์ผ๋ก ๋ถ๋ฌ๋ค์
- ๋ด๋ถ ๋จํธํ๊ฐ ์๊ธฐ์ง ์์
- ๋ณต์กํ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ก ์ค๋ฒํค๋ ๋ฐ์
ํ์ด์ง๊ณผ ์ธ๊ทธ๋ฉํ ์ด์ ๋ชจ๋ ํ๋ก๊ทธ๋จ์ ์คํํ๊ธฐ ์ํด ๋์คํฌ์ ์๋ ๋ด์ฉ์ ๋ถํ ํ์ฌ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌํ๋ ๋ถ์ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฒ์ ๋๋ค.
๋์ ์ฐจ์ด๋ ํ๋ก๊ทธ๋จ์ ์ด๋ป๊ฒ ๋ถํ ํ ๊ฒ์ธ๊ฐ์ ๋๋ค. ํ์ด์ง์ ๊ฒฝ์ฐ ํ๋ก๊ทธ๋จ์ ๊ฐ์ ํฌ๊ธฐ์ ํ์ด์ง๋ก ๋ถํ ํ๋ ๋ฐ์ ๋นํด, ์ธ๊ทธ๋ฉํ ์ด์ ์ ๋ ผ๋ฆฌ์ ์๋ฏธ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ธ๊ทธ๋จผํธ๋ฅผ ๋ถํ ํฉ๋๋ค.
๋ฐํจ๊ฒฝ ๊ต์๋ ์ด์์ฒด์ ๊ฐ์
[OS?Oh Yes!์ฑ ]
ํ์ด์ง(Paging)๊ณผ ์ธ๊ทธ๋ฉํ ์ด์ (Segmentation)
์ธ๊ทธ๋ฉํ ์ด์ ์ด๋?
์ธ๊ทธ๋ฉํ ์ด์ ์ ์ฅ๋จ์ ์?
ํ์ด์ง๊ณผ ์ธ๊ทธ๋ฉํ ์ด์ ์ ์ฐจ์ด๋ ๋ฌด์์ธ๊ฐ?
์ธ๊ทธ๋ฉํ ์ด์ ๊ณผ ํ์ด์ง์ ์ฌ์ฉํ๋ ์ธ๊ทธ๋ฉํ ์ด์ ์ ์ฐจ์ด์ ์๋ ๋ฌด์์ด ์์๊น?




