๋ณด๋ฌ์์ผ๋ฉด ๊ณต๊ฐ๋๋ฅด๊ณ ๊ฐ์
ใ
์กํ์ธ ํ์ดํ
ใ
ใ
ใ
13.1 ๋ณ๋ ฌ ์ฒ๋ฆฌ ์๊ฐ ๋ณ๋ ฌ ์ฒ๋ฆฌ ๋ค์์ ํ๋ก์ธ์๋ค์ด ์ฌ๋ฌ ํ๋ก๊ทธ๋จ๋ค ๋๋ ํ ํ๋ก๊ทธ๋จ์ ๋ถํ ๋ ๋ถ๋ถ๋ค์ ๋์์ ์ฒ๋ฆฌํ๋ ๊ธฐ์ ์ปดํจํฐ ์์คํ
๋ถ๋ฅ (Flynn์ ๋ถ๋ฅ) SISD SIMD(๋๊ฐ์ ์ฐ์ฐ, ์ฌ๋ฌ ๋ฐ์ดํฐ) : ๋ณ๋ ฌ ์ฒ๋ฆฌ MISD MIMD(์ฌ๋ฌ ์ฐ์ฐ, ์ฌ๋ฌ ๋ฐ์ดํฐ) : ๋ณ๋ ฌ ์ฒ๋ฆฌ ํ๋ก์ธ์๋ค์ด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์ : MIMD ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ (shared memory architecture) ๋ถ์ฐ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ (distributed memory architecture) ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ์์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ์ํธ ์ฐ๊ฒฐ๋ง / ๋ฒ์ค, ํฌ๋ก์ค๋ฐ ์ค์์น.. ์ฌ๋ฌ ํ๋ก์ธ์์์ ๊ฐ์ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ(critical section) ์ฝ๊ฑฐ๋ ..
๐ CS/ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก
10.1 ๊ฐ์ ๋ถ ํ๋ก๊ทธ๋จ ์ผ๋ จ์ ํ์๋ ๊ณ์ฐ์ ์ถ์ํํ๋ ๊ธฐ๋ฒ์ผ๋ก ์ ๊ณต ์คํ๊ณผ ๋ถ๋ฆฌํด์ ์ ์ธํ ์ ์๋ ๋ธ๋ก : ํธ์ถ ์๊ตฌ ํจ์(Function) : ํจ์ ์ด๋ฆ์ผ๋ก ๊ฐ์ ๋ฐํ ์๋ธ๋ฃจํด(Subroutine), ํ๋ก์์ (Procedure) : ๋งค๊ฐ๋ณ์๋ก ๊ฐ์ ๋ฐํ ๊ฐ ํ๋ก์์ ๋ ๋จ์ผ ์ง์
์ ์ ๊ฐ์ง Caller๋ Callee์ ์คํ ๋์ ์ค๋จ๋จ ๋ถ ํ๋ก๊ทธ๋จ ์ข
๋ฃ ์, ์ ์ด๋ ํธ์ถ์์๊ฒ ๋๋์๊ฐ 10.2 ๋งค๊ฐ๋ณ์ ํ๊ฐ์ ์ ๋ฌ ๊ธฐ๋ฒ ์ค ๋งค๊ฐ๋ณ์ ํธ์ถ ํ๋ก๊ทธ๋จ์ผ๋ก ์ ๋ฌํ๊ธฐ ์ํด ์ฌ์ฉ๋ ์ ๋๋ ์ด๋ฆ ํ์ ๋งค๊ฐ๋ณ์ ๋ถ ํ๋ก๊ทธ๋จ์ด ์คํ๋ ๋, ์ค ๋งค๊ฐ๋ณ์๋ฅผ ๋์ ํ์ฌ ์ฌ์ฉํ๋ ์ด๋ฆ ์ผ๋ฐ์ ์ผ๋ก ์ง์ญ ๋ณ์ ์ญํ a. ์ฐธ์กฐ ํธ์ถ (call by reference) ์ค ๋งค๊ฐ๋ณ์ ๊ฐ ๋์ ์ฃผ์๋ฅผ ํ์ ๋งค๊ฐ๋ณ์์ ๋ณด๋ด๋ ๋ฐฉ๋ฒ c..
9.1 ์ ์ ๋ฐ ๋์ ๊ธฐ์ต ์ฅ์ ๋ฐฐ๋น ์ ์ ๊ธฐ์ต ์ฅ์ ํ ๋น ๋ฒ์ญ ์๊ฐ์ ํ ๋น ๊ธฐ์ต์ฅ์ ํฌ๊ธฐ์ ์์น๊ฐ ์ ์ ์ผ๋ก ๊ณ ์ ๋ฐฐ์ด ์ ๊ทผ์ฝ๋๊ฐ ํจ์จ์ (ํฌ๊ธฐ๊ฐ ๊ณ ์ ๋์ด ์๊ธฐ ๋๋ฌธ์) ์๋ธํ๋ก๊ทธ๋จ์ recursion์ ์ํํ ์ ์์ ๋์ ๊ธฐ์ต ์ฅ์ ํ ๋น ์คํ ์๊ฐ์ ํ ๋น ๋ณ์ ์ ํ ์ํ (์๋ฃํ, ํฌ๊ธฐ ๋ฑ) ์ธํฐํ๋ฆฌํฐ ์ธ์ด.. c, c++ ๊ฐ์๊ฑด ์ ์ ๋์ ๋ค ํจ. static / auto 9.2 ๋จ์ ํ๋ก๊ทธ๋จ (module) ์ ์ธ ๊ฐ๋ฅ : ์ง์ญ ์๋ณ์ ๋์
์ง์ญ ๋ณ์ : ๋จ์ ํ๋ก๊ทธ๋จ์์ ์ ์ธํ์ฌ ์ฌ์ฉํ๋ ๋ณ์ (์ฆ, ํด๋น ๋ชจ๋์ ์๋ ๋ณ์๋ non-local ํน์ global ๋ณ์์ด๋ค) ํ์ฑํ ์ํ : ํ ๋จ์ ํ๋ก๊ทธ๋จ์ ์คํ ์์๋ถํฐ ์ข
๋ฃ๊น์ง ๋ธ๋ก๋ ๋จ์ ํ๋ก๊ทธ๋จ์ ์ํ๋ค. ๋จ์ ํ์ฑํ (unit activat..
8.1 ๋ธ๋ก๊ณผ ์์ญ ์์ญ ์๋ณ์์ ํจ๋ ฅ์ ๋ํ๋ผ ์ ์๋ ์์ญ (์ฉ์ด์ ๋ฆฌ) ํ๋ก๊ทธ๋จ ๋ด์์ ์ด๋ค ์ ์ธ์ด ์ ํจํ ๋ถ๋ถ ์๋ช
์๋ณ์(๋ณ์) ๊ฐ์ ๋ณด์ ํ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ฐฐ์ ๋์ด ์๋ ์คํ ์๊ฐ ๋ฉ๋ชจ๋ฆฌ ํ ๋น๋ถํฐ ํด์ ๊น์ง์ ์๊ฐ ์๋ณ์ ์์ญ ์ ๊ณต์ ๊ฐ๊ฒฐํ ๋ฐฉ๋ฒ ๊ทธ๋ฅ ๋ชจ๋ ์๋ณ์๋ฅผ ์ ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉ ๊ฐ๋ฅํ๊ฒ ํจ (์ ์ญ๋ณ์๋ก) ํ์ง๋ง, ์๋ณ์ ์ฌ์ฉ์ ๋ณต์กํ, ํผ๋, ํ๋ก๊ทธ๋จ ํฉ์ฑ ์ ๋ฌธ์ ์ ๋ฐ์ ํด๊ฒฐ์ฑ
: ๋จ์ ํ๋ก๊ทธ๋จ์ ์๋ณ์ ์ฌ์ฉ (localization ์๊ตฌ) 8.2 ๋์ ์์ญ๊ณผ ์ ์ ์์ญ ์ง์ญ๋ณ์ (local variable) : ํ์ฌ ๋ธ๋ก์์ ์ ์ธ๋ ๋ณ์, ํ์ ๋งค๊ฐ๋ณ์ ๋น์ง์ญ ๋ณ์ (non-local variable) : ํ์ฌ ๋ธ๋ก์์ ์ฌ์ฉ๋์ง๋ง, ๋ฐ๊นฅ ๋ธ๋ก์์ ์ ์ธ๋ ๋ณ์ ์ ์ญ ๋ณ์ (global) : ๋ชจ..
์๋ฃํ ์ ์๋ ๊ฐ์ฒด ์งํฉ + ์ฐ์ฐ (์์ฑ, ์์ฑ, ์๋ฉธ, ์์ , ๋ถํด) 7.1 ์๋ฃํ๊ณผ ์ ์ธ ๋ณ์, ์๋ฃํ ์ ์ธ ์ ์ ์๋ฃํ ๊ฒ์ฌ ๋ช
์ธ๋ถ๋ฅผ ๊ตฌํ๋ถ์ ๋ถ๋ฆฌ -> ์ถ์ ์๋ฃํ ํ๋ก๊ทธ๋จ ์ ๋ขฐ์ฑ, ํ๋
์ฑ ์ฆ๊ฐ ์์ ์ฌํญ ๋ฐ์ธ๋ฉ ์์ : ๋ฒ์ญ์๊ฐ or ์คํ์๊ฐ ๊ฐ์๋ฃํ : ์ฐ์ฐ์ด ์ํ๋๊ธฐ ์ ์ ๋ช
์์ ์ธ ํ ๋ณํ์ ์๊ตฌ (Ada ๊ฐ์๊ฑฐ) 7.x ๋จ์ํ ์ด๊ฑฐํ : pascal์ด ์ง์ฌ ๋ฐฐ์ด : ๋ณดํต์ ํ์ฐ์ . / ํฌํธ๋์ ์ด์ฐ์ ์ฐ์ ๋ฐฐ์ด ๋ ์ฝ๋ ํฌ์ธํฐ ์๋ฃํ : ์๋ฐ๋ ํฌ์ธํฐ ๋์ ํด๋์ค ์ธ์คํด์ค ์ฐธ์กฐ ์ด๋ช
: ๋ค์์ ํฌ์ธํฐ๊ฐ ๋์ผ ๊ฐ์ฒด ์ง์ garbage : ํฌ์ธํธ๋์ง ์์ ๊ฐ์ฒด ์กด์ฌ ํ์ ์ฐธ์กฐ : ๋น ๊ฐ(์ฅ์)์ ๊ฐ๋ฆฌํค๊ณ ์๋๊ฑฐ ์๋ฃํ ๋ณํ ์ถ์๋ณํ์ ๋ฌด์กฐ๊ฑด ๋ช
์๋ฅผ ํด์ค์ผํ๋ค. ์๋ฃํ ๋์น ์ด๋ฆ ๋์น / ๊ตฌ์กฐ ๋..
6.1 ๋ณ์ (X := 3.141592) ์ด๋ฆ : X ์์ฑ : ์์ฃผ์จ, ์ค์ ์ฐธ์กฐ : ๊ฐ์ด ์ ์ฅ๋ ์์น (๋ฉ๋ชจ๋ฆฌ ์ฃผ์) ๊ฐ : 3.14159 6.2 ๋ฐ์ธ๋ฉ ๋ณ์์ ์ 4๊ฐ์ง ์์์ ๊ฐ์ ํ์ ํ๋ ํ์. ์ด๋ฆ์ ํน์ ์์ฑ์ ์ฐ๊ฒฐ (์ถ์ํ) 1. ์คํ ์๊ฐ (runtime) : ๋์ ๋ฐ์ธ๋ฉ ๋ณ์์ ๊ฐ ๋ฐฐ์ , ๋ฉ๋ชจ๋ฆฌ ํ ๋น 2. ๋ฒ์ญ ์๊ฐ (translation time) : ์ ์ ๋ฐ์ธ๋ฉ ๋ณ์, ์๋ฃ๊ตฌ์กฐ, ๋ ์ฝ๋์ Data Type(์๋ฃํ)์ ํ์ 3. ์ธ์ด ๊ตฌํ ์๊ฐ ์ธ์ด๋ฅผ ์ปดํจํฐ์์ ๊ตฌํํ ๋ (์ปดํ์ผ๋ฌ๋ฅผ ์์ฑํ ๋..?) ์ธ์ด์ ํน์ง์ ๊ตฌํ intํ์
์ ํฌ๊ธฐ, ์ค์์ ์ ํจ์ซ์ ๊ฐ์ ๋ฑ๋ฑ์ ๊ตฌ์ฒด์ ์ผ๋ก ๋ฑ ์ง๋๊ฒ ์๋๋ผ ์์คํ
๋ง๋ค ๋ค๋ฆ 4. ์ธ์ด ์ ์ ์๊ฐ ์ธ์ด๋ฅผ ์ ์ํ ๋ ํ์ ํ๋ ๋ฐ์ธ๋ฉ. ์ธ์ด์ ๋๋ถ๋ถ์ ๊ตฌ์กฐ๊ฐ..
BNF ๊ตฌ๋ฌธ ํ์์ ์ ์ํ๋ ๊ฐ์ฅ ๋ณดํธ์ ์ธ ํ๊ธฐ ::= ์ ์ ๋น๋จ๋ง (nonterminal) : BNF ๊ท์จ๋ก ๋ค์ ์ ์๋ ๋์์ ์๋ฏธํ๋ค. ๋จ๋ง (terminal) : ํค๋ณด๋์์ ์
๋ ฅํ ์ ์๋ ๊ธฐํธ EBNF BNF๋ฅผ ํ์ฅํด์ ๋ณด๋ค ์ฝ๊ธฐ ์ฝ๊ณ ๊ฐ๋จํ๊ฒ ํํ ๋ฉํ๊ธฐํธ {} : 0๋ฒ ์ด์ ๋ฐ๋ณต {s}+ [] : 0๋ฒ ๋๋ 1๋ฒ ์ ํ () : ๋ฒ์์ค ํ1 BNF ::= + | - | * | / EBNF ::= ( + | - | * | / ) ::= ๊ฐ์๊ฑฐ(๋ฉํ๊ธฐํธ)๋ฅผ Terminal๋ก ์ธ๋ : ‘’๋ก ๊ฐ์ผ๋ค ::= '::=' ::= {'|' } ๊ตฌ๋ฌธ ๋ํ ์ค๋ฅธ์ชฝ์ผ๋ก ๊ฐ๋๊ฒ produce ์ผ์ชฝ์ผ๋ก ๊ฐ๋๊ฒ reduce ๋ชจํธ์ฑ ::= - | \* ์ผ ๋, 3 - 2 * 5 ์ ๊ฒฝ์ฐ ๋ค๋ฅธ ํ์ฑ ํธ๋ฆฌ๋ฅผ ๋๊ฐ ๋ง๋ค ์..
3.2 ๊ธฐ๋ณธ์์นํจ์จ์ฑ๋ชฉ์ ์ฝ๋์ ํจ์จ์ฑ : ๋ฒ์ญ๊ธฐ๊ฐ ํจ์จ์ ์ธ ์คํ ์ฝ๋๋ฅผ ์์ฑํด์ผํจ (์ปดํ์ผ๋ ํ์ผ)๋ฒ์ญ์ ํจ์จ์ฑ : ์ค๊ณ๋ ์ธ์ด๊ฐ ๋ฒ์ญ๊ธฐ์ ์ํด ๋น ๋ฅด๊ฒ ๋ฒ์ญ๋ ์ ์์ด์ผ ํจ (์ปดํ์ผ ๊ณผ์ )๊ตฌํ์ ํจ์จ์ฑ : ๋ฒ์ญ๊ธฐ ๊ตฌํ์ด ์ด๋ ต๊ฑฐ๋ ๋ณต์กํ์ง ์์ (์ปดํ์ผ๋ฌ ๊ตฌํ)ํ๋ก๊ทธ๋๋ฐ ํจ์จ์ฑ : ์ค๊ณ๋ ์ธ์ด๋ก ์ผ๋ง๋ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ์์ฑ ๊ฐ๋ฅํ์ง (์ฝ๋ ๊ตฌํ)์ผ๋ฐ์ฑํน๋ณํ ๊ฒฝ์ฐ๋ฅผ ํผํ๊ณ , ๋ฐ์ ํ๊ฒ ๊ด๋ จ์๋ ์ฌ๋ฌ ๊ฐ๋
๋ค์ ์ผ๋ฐ์ ์ธ ํ๋์ ๊ฐ๋
์ผ๋ก ํตํฉํด ์ป๋ ์ฑ์ง→ ๋น์ฐํ ์ง์ํด์ผ ํ๋ ๊ธฐ๋ฅ์ด ์๋๋์ด์ผ ํจ (๋ฒ์ฉ์ ์ผ๋ก)๋์
์ฐ์ฐ์ : ๋๋ถ๋ถ์ ์ธ์ด๋ ‘=’ ์ธ๋ฐ, ํ์ค์นผ์์๋ ‘:=’๋ก ์ฌ์ฉ๋งค๊ฐ๋ณ์ : Fortran์์๋ callby Reference๋ก๋ง ์ ๋ฌ (์ผ๋ฐ์ฑ x) / ADA๋ ๋ค ๋จ (์ผ๋ฐ์ฑ ใ
)์ผ๋ฐ์ฑ์ด ๊ฐ๋ ๋ฌธ์ ..