[C++] friend ํค์๋
friend class ํ class์์ ๋ค๋ฅธ class์ field๋ฅผ public์ผ๋ก ์ฐธ์กฐํ๋๋ก ํ์ฉ
friend class ํ class์์ ๋ค๋ฅธ class์ field๋ฅผ public์ผ๋ก ์ฐธ์กฐํ๋๋ก ํ์ฉ
์๋ธ๋ฃจํด(Subroutine) C์ธ์ด ๋ฑ์์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉํ๋ ํจ์ ์์ํ ๋ ์ง์ ํ๋ ์ง์ ์ด ํ๋ ์กด์ฌํ๊ณ , ์ข ๋ฃ๋๋ ์ง์ ์ ์ค์ ํ ์ ์๋ค. ์๋ธ๋ฃจํด์ ์์์ ๊ณผ ์ข ๋ฃ์ ์ด 1๊ฐ์ธ ์ฝ๋ฃจํด์ ํฌํจ
Synchronization ๋๊ธฐํ ๋ณต์ ์ด๋ฒคํธ์ ์ ์ฐํ ์คํ ๋ฐ ์กฐํ๋ฅผ ์ํด ์กฐ์ ์ ๊ฐํ๋ ๊ฒ ๊ตฌ์ ์กฐ๊ฑด์ ์๋์ ๊ฐ๋ค Serialization: ํ๋์ ์ด๋ฒคํธ๊ฐ ๋๋ ๋ค์์ ๋ค๋ฅธ ์ด๋ฒคํธ๊ฐ ๋ฐ์ Mutual Exclusion: ๋ ๊ฐ์ ์ด๋ฒคํธ๊ฐ ํ ์์ ์ ๋์์ ๋ฐ์ํ๊ณ ์์ง ์์
lock-base ์ฝ๋์ ๋ช๊ฐ์ง ๋ฌธ์ ์ lock ์์๋ฅผ ์ ๋๋ก ๊ด๋ฆฌํ์ง ์์ผ๋ฉด ๋ฐ๋๋ฝ์ ๊ฐ๋ฅ์ฑ priority inversion - ๋ฎ์ ์ฐ์ ์์์ ์ค๋ ๋๊ฐ ์งํ๋๊ธฐ ์ํด ๋์ ์์์ ์ค๋ ๋ ๋ฝ์ ์๊ตฌํ๋ ๊ฒฝ์ฐ atomicํ operation์ด ์ค๋ ๊ฑธ๋ฆฌ๋ ๊ฒฝ์ฐ, ๋ค๋ฅธ ์ค๋ ๋๋ค์ ๊ธฐ๋ค๋ ค์ผ ํจ
ํ๋์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ธฐ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ง์ฐ๊ณ ๋ค์ ๊ธฐ๋กํ ์ ์๋ ๋นํ๋ฐ์ฑ ๋ฉ๋ชจ๋ฆฌ์ ๋๋ค.
๋ฐ๋์ฒด๋? ์ ๊ธฐ์ ์ผ๋ก ๋์ฒด์ ๋ถ๋์ฒด ์ฌ์ด์ ์ฑ์ง์ ๋ ๊ณ ์๋ ๋ฌผ์ง
๊ฐ์ ํ๋ก์ธ์ค๋ ๋ฉ๋ชจ๋ฆฌ ์์ ์คํ๋๊ณ ์๋ ํ๋ก๊ทธ๋จ ํ๋ก๊ทธ๋จ - ์์ ์ ์ํด ์คํํ ์ ์๋ ํ์ผ
๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ํ๋ก๊ทธ๋จ์ ์คํํ๊ธฐ ์ํด ๋ชจ๋ (๋๋ ์ผ๋ถ) ์คํ ๊ตฌ๋ฌธ๊ณผ ๋ฐ์ดํฐ์ ์ ๋ถ(๋๋ ์ผ๋ถ)์ ๋ฉ๋ชจ๋ฆฌ ์์ ์์ด์ผ ํจ CPU๊ฐ ์ ์ ์์ ์ ๋ฐ์ํ๊ณ ์ต์ ํํ๊ธฐ ์ํด ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ ์์ ๋ฃ์์ง๋ฅผ ์ ํ๋ ์์ Activities: ์ด๋ค ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ฐ์ด๋์ง, ๋๊ตฌ์ ์ํด ์ฌ์ฉ๋๋ ์ง๋ฅผ ํธ๋ํน ์ด๋ค ํ๋ก์ธ์ค,...
์ค์ผ์ค๋ง ํ๋ก์ธ์ค๊ฐ ์คํ๋๊ธฐ ์ํ์ฌ OS ์ค์ผ์ค๋ฌ์ ์ํด ์์์ ํ ๋น๋ฐ๋ ๊ฒ User processes System processes
OS๋? ์ฌ์ฉ์์ ์ปดํจํฐ ํ๋์จ์ด๋ฅผ ๋งค๊ฐํด์ฃผ๋ ์ค๊ฐ ํ๋ก๊ทธ๋จ ํ๋ก๊ทธ๋จ์ ์คํ์์ผ์ฃผ๊ณ ์ฌ์ฉ์๊ฐ ๋ฌธ์ ๋ฅผ ์ฝ๊ฒ ํ๋๋ก ๋์์ค ์ปดํจํฐ ์์คํ ์ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ๋ก ๋์ ์ปดํจํฐ ํ๋์จ์ด๋ฅผ ๋ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๋๋ก ๋์ Resource Allocator ๋ชจ๋ ๋ฆฌ์์ค๋ฅผ ๊ด๋ฆฌ ์ ์ด ...