Microsoft PowerPoint - 병렬프로그래밍세미나_TBB_ _v1.5.pptx

Size: px
Start display at page:

Download "Microsoft PowerPoint - 병렬프로그래밍세미나_TBB_ _v1.5.pptx"

Transcription

1 ROCK YOUR CODE Intel Software Conference 2010 Parallel Programming using Intel Parallel Studio Threading Building Blocks in Action Oct 12, 2010 EL Tower, Seoul TBB 역자이창재 net

2 Goal Important Parallel programming trend and status in Korea Key challenges for developers How to enhance the performance of parallel application by using TBB TBB 를이용한병렬프로그래밍실무 Slide No. 2

3 Agenda Motivation Background TBB Overview TBB Basic TBB in Action Vision Image Analysis Reference Summary TBB 를이용한병렬프로그래밍실무 Slide No. 3

4 Motivation 슈퍼컴퓨터, 병렬컴퓨터분야에서만연구되어온병렬프로그래밍 슈퍼컴퓨터 병렬컴퓨터 멀티코어프로세서의대중화병렬프로그래밍가능영역이확장되었다! 개인용컴퓨터 그러나, 코어가늘어난다고프로그램의성능이저절로증가하는것이아님 멀티코어프로그래밍필요 TBB 를이용한병렬프로그래밍실무 Slide No. 4

5 Motivation 병렬처리기술을실무에쉽게도입할수있는가? 병렬프로그래밍기술이필요하지만 어려워서도입부에서포기 배우기쉬운기술이면좋겠다! 스레드를직접생성, 관리, 동기화하는 복잡함과불편함때문에포기 스레드를직접관리하지않는 추상화된기술이면좋겠다! 모두의기술이될수없음으로인해포기 개발자간공유와인수인계가쉬우면좋겠다! 역시불편하고어렵다는 공감대를형성하기에이르고 기존개발환경에쉽게도입할수있는 라이브러리형태면좋겠다! TBB!!! TBB 를이용한병렬프로그래밍실무 Slide No. 5

6 Background Single Core vs. Multi Core Single Core 대안기술 Multi Core CPU Core Cache C CPU C C C 펜티엄 4 프레스캇 2.8GHz 펜티엄 4 노스우드 3.0 GHz 동시멀티스레딩 (SMT) 하나의 CPU를외부에서 2개처럼보이게함. 하이퍼스레딩에서사용 싱글코어의대안으로 제시됨 Cache 성능은클록속도에비례 속도가빨라지면전력소모가커지고발열이많아더이상속도를늘리기가어려웠다. 여러개의코어를탑재하기때문에보다낮은주파수에서작동성능향상 싱글코어에서소모되는전력을여러코어에분산 TBB 를이용한병렬프로그래밍실무 Slide No. 6

7 Background 헥사코어, 옥타코어 6 코어걸프타운 (Gulftown) 8 코어네할렘 (Nehalem) 6 8 TBB 를이용한병렬프로그래밍실무 Slide No. 7

8 Background 멀티스레딩 vs. 병렬처리 1. 멀티스레딩 스레드스위칭을통해병렬처리효과를구현하고, 결국은동시성에도달하려는기술 스레드 스레드 스레드 2. 병렬처리 멀티스레딩은하나의프로세서에서여러프로세서를사용하는효과를볼수있지만, 진정한병렬처리를위해서는스레드들을각프로세서에분배하여실행해야한다. 병렬컴퓨터 CPU CPU CPU 스레드스레드스레드 멀티코어컴퓨터 Core Core Core 스레드스레드스레드 TBB 를이용한병렬프로그래밍실무 Slide No. 8

9 Background CPU 사용비교 하나의코어만사용될때 두개의코어에부하가분산된상태 TBB 를이용한병렬프로그래밍실무 Slide No. 9

10 Background 데이터병렬화 vs. 작업병렬화 1. 데이터병렬화 대문자변환 2. 작업병렬화 TBB 를이용한병렬프로그래밍실무 Slide No. 10

11 Background Embarrassingly Parallelism 당황스러운병렬처리 Parallelism는문맥에따라 병렬성, 병렬처리 및 병렬이론 등으로번역됨. 병렬컴퓨팅에서, ' 당황스러운병렬처리 ' 란작업간에의존성이없이독립적이어서그냥병렬화가되는경우를말함. 예 : 화면에있는각픽셀이독립적으로렌더링되는그래픽처리 이와같이병렬성이너무풍부하여그냥병렬화구현이되는경우를 ' 당황스럽다 ' 고표현한것임. 김민장님 (minjang@gatech.edu) 께서번역에도움을주셨습니다. TBB 를이용한병렬프로그래밍실무 Slide No. 11

12 Background 고려사항 1. 불확실성문제 리소스를동시접근하는병렬프로그래밍에서동시성에대한대가로발생하는문제 대표적인경우 데드락 (deadlock) 레이스컨디션 (race condition) [ 해결책 ] 고전적인방법 LOCK 상호배제의원리이다. 명시적잠금 : 동시에한스레드만해당데이터에접근하도록중앙관리 단점 : 일일이관리해야하는불편, 부하문제발생가능 보다나은방법 암시적잠금을사용한다. Fine-grained 잠금을사용한다. 명시적잠금은최후의수단으로한다. TBB에서제공하는상호배제기능 뮤텍스 (Mutex) : 여러태스크들이접근할수있는전역변수 원자적연산 (Atomic Operation) : 하드웨어에서제공하는원자적연산에기반을둠 인터럽트의영향을받지않으려는시도 TBB를이용한병렬프로그래밍실무 Slide No. 12

13 Background 고려사항 2. 메모리거짓공유 (False-Sharing) 병렬프로그램에서캐시를이용한데이터동기화가일어나는과정에서발생할수있는성능저하문제 (Worst 100x) 캐시라인 : 캐시메모리의접근단위 ( 프로세서마다다름. 보통은 64바이트 ) 1. Core 1이데이터 1을사용하면 2. 동일한캐시라인에있다는이유만으로 Core 2의데이터 2가무효화되는데 Core 1 사용 데이터 1 Core 1 데이터 1 이러한불필요한동작이끊임없이발생 Core 2 데이터 2 Core 2 데이터 2 이때데이터 2 는메모리에저장 불필요한동작이발생 해결책 : 서로다른코어의데이터를인접영역에생성하지않거나, TBB 의 cache_aligned_allocator 사용 TBB 를이용한병렬프로그래밍실무 Slide No. 13

14 TBB Overview Mind Map 스레드가아닌 태스크 개념도입 Intel 제작 더높은수준, 더단순한해결책제공 기존병렬처리기술과호환 특징 일반 최초출시 2006 년 8 월 ver 1.0 최신버전 2010 년 4 월 ver 3.0 TBB 오픈 C++ 라이브러리 병렬처리기술 목표 성능 Performance 스레드추상화기술 기술관점 조정성 Scalability TBB 를이용한병렬프로그래밍실무 Slide No. 14

15 TBB Overview 역사적배경 TBB 를이용한병렬프로그래밍실무 Slide No. 15

16 TBB Overview 타스레딩기술과비교 Challenges for parallel programming Windows threads OpenMP Threading Build Blocks Task level O O Cross-platform support O O Scalable runtime libraries O Threads Control O Pre-tested and validated O O C Development support O O Intel Threading Tools support O O O Maintenance for tomorrow O O Scalable memory allocator light mutex O O Processor affinity O Thread affinity [ 참고 ] TBB 를이용한병렬프로그래밍실무 Slide No. 16

17 TBB Overview 전체기술구조 기본알고리즘 고급알고리즘 parallel_for parallel_for_each parallel_reduce parallel_scan parallel_while parallel_do parallel_preorder pipeline parallel_pipeline parallel_sort parallel_invoke 컨테이너 concurrent_queue concurrent_vector concurrent_hash_map concurrent_unordered_map 상호배제 뮤텍스 spin_mutex queuing_mutex spin_rw_mutex queuing_rw_mutex 조정성있는메모리할당자 scalable_malloc scalable_free scalable_realloc scalable_calloc scalable_allocator cache_aligned_allocator 원자적연산 recursive_mutex null_mutex null_rw_mutex fetch_and_add fetch_and_swap fetch_and_store fetch_and_increment zero_allocator fetch_and_decrement 태스크스케줄러 타이밍 TBB 를이용한병렬프로그래밍실무 Slide No. 17

18 TBB Overview 태스크 (Task) 태스크란? 병렬화될작업단위 (Raw thread 대신에 ) 에서정의한단어일뿐, 특정기술개념은아님 C++ 함수객체 (Functor, function object) 로정의 태스크에대한정확한이해를위한두가지선행지식 스레드추상화 : 직접스레드를생성하고일감을효율적으로분배하고관리하는복잡함을뒤에감추는논리적접근 함수객체 : 평소에익숙하지못할경우 TBB 의태스트를이해하는데도장애가될수있음 TBB 를이용한병렬프로그래밍실무 Slide No. 18

19 TBB Overview 함수객체 (Function Object) // 함수객체를구현하기위한클래스예 class FunctionA { void operator()(int x) { // 구현코드 } }; 코드를보면함수객체는 함수처럼동작하는클래스 임을알수있다. 함수는함수이름과괄호로구성되어있다는점에착안 C++ 기술중에연산자 (operator) 중복을사용 operator() 를중복하는클래스를객체로인스턴스화한다음괄호만붙여주면함수처럼인수를넘겨동작할수있게함 // 함수객체를사용하는예 FunctionA f; f(10); // 일반함수를호출하는것과동일 TBB에서는태스크를기술적인용어로 Body 객체 라고부르며, Body라는말은 C언어의 Function Body" 에서따왔음 클래스로구현해야복사생성을통해분신술처럼일꾼들을복제해낼수있음. 이복사본들을얼만큼생성할지, 각코어에효율적으로할당하면서병렬화효과를최대화할지에대한역할은 TBB의 태스크스케줄러 가담당 TBB 를이용한병렬프로그래밍실무 Slide No. 19

20 TBB Overview 태스크스케줄러 (Task Scheduler) 태스크스케줄러가 Blocked Range라는 Range 객체를통해태스크를각코어에분배 (Work Stealing) 병렬프로그래밍에서각스레드에게균형있게작업량을주는것이중요 parallel_for와같은 TBB 알고리즘은태스크스케줄러에기반을두고실행 TBB는생성될개별태스크들의개수를런타임에결정하며, Range 객체를통해전체범위를재귀적으로분할하여분할된하위범위를생성된태스크에할당하고실제스레드에잘들어맞도록스케줄링 Core 스레드 태스크스케줄러 TBB Blocked Range 태스크 Pool 태스크태스크태스크 Core 스레드 Core 스레드 TBB 를이용한병렬프로그래밍실무 Slide No. 20

21 TBB Overview 조정성 (Scalability) 조정성이란? 프로세서코어개수에비례하여프로그램성능이자동으로결정되는특성 확장과축소모두를포함하는개념 ( 단순히 확장성 으로번역되면안되는이유 ) 듀얼코어에서는두개의코어가모두사용, 쿼드코어에서는네개의코어가모두사용 All Cores are Busy TBB에서는타스레딩패키지처럼직접조정성처리를해줄필요가없다. TBB 를이용한병렬프로그래밍실무 Slide No. 21

22 TBB Overview Grain 크기 하나의코어에합리적인크기의작업덩어리 (grain) 를분배하기위한개념 과도한병렬처리에대한부하를막아준다. 처리할전체범위가 grain 크기보다클동안, TBB는이범위를독립적으로스케줄링되는개별하위범위들로계속 ( 재귀적으로 ) 분할한다. 지정방법 ( 경험적방법론 - 휴리스틱 ) 1단계 : 충분히큰값으로시작. 보통은 10,000으로설정하는것이좋다. 2단계 : 프로그램실행후결과관찰 3단계 : 값을절반으로줄이고프로그램속도변화관찰 최적치를찾을때까지반복 TBB 를이용한병렬프로그래밍실무 Slide No. 22

23 TBB Overview 알고리즘템플릿 루프병렬화알고리즘 parallel_for, parallel_reduce 고정된개수의루프반복들에대해부하분산이고려된병렬실행지원 parallel_scan 스캔 (scan) 이라고도알려진 prefix 계산을병렬로실행 (y[i] = y[i-1] op x[i]) 하는템플릿함수 스트림에대한병렬알고리즘 parallel_while pipeline 비정형적인스트림또는작업더미 (dummy) 에사용실행중에작업더미에다른작업을추가하기위한기능제공 작업단계들의선형시퀀스가있을때사용전송중에있을수있는항목들의최대개수를지정 병렬정렬 parallel_sort 단일프로세서에서 O(n log n) 을넘지않고프로세서개수가늘어날수록 O(N) 에근접하는평균시간복잡성을가진비교정렬 TBB 를이용한병렬프로그래밍실무 Slide No. 23

24 TBB Basic 초기화 절차 1단계 : 헤더파일 task_scheduler_init.h 포함 2단계 : 네임스페이스 tbb 사용선언 3단계 : task_scheduler_init 형식객체선언 Example #include "tbb\task_scheduler_init.h" using namespace tbb; int main() { task_scheduler_init init; return 0; } 위와같이선언만으로초기화가되며, 소멸은기본소멸자실행시컴파일러가자동으로호출해준다. TBB 를이용한병렬프로그래밍실무 Slide No. 24

25 TBB Basic 루프병렬화절차 1단계태스크정의 = Body 객체를위한 Class 작성 2 단계 알고리즘에인수로대입할 Range 객체정의 3 단계 앞에서정의한 Body 객체와 Range 객체를알고리즘에대입 TBB 를이용한병렬프로그래밍실무 Slide No. 25

26 TBB Basic parallel_for 고정개수의독립적인반복에사용하는알고리즘템플릿 Form 1 범위객체 void parallel_for(const Range& range, const Body& body); #include "tbb\parallel_for.h" #include "tbb\blocked_range.h" void ParallelCalculation (float a[], size_t n) { ParallelCalculation body; parallel_for( blocked_range<size_t>(0, n, 10000), body(a) ); } 바디객체 TBB 를이용한병렬프로그래밍실무 Slide No. 26

27 TBB Basic parallel_for 자동분할사용하기 Form 2 범위객체 void parallel_for(const Range& range, const Body& body, Partitioner& partitioner); 분할자 바디객체 #include "tbb\parallel_for.h" #include "tbb\blocked_range.h" void ParallelCalculation (float a[], size_t n) { ParallelCalculation body; parallel_for( blocked_range<size_t>(0, n), body(a), auto_partitioner() ); } TBB 를이용한병렬프로그래밍실무 Slide No. 27

28 TBB Basic parallel_for parallel_for 를사용하여직렬코드를병렬화하는방법 1단계태스크정의 = Body 객체를위한 Class 작성 Body Class 를구성하는코딩스타일의허들을거뜬히넘어가십시오!!! 직렬코드의 for 루프 Body 에있는구현로직을적절히재활용하십시오!!! 2 단계 parallel_for 에인수로대입할 Range 객체정의 3 단계 앞에서정의한 Body 객체와 Range 객체를 parallel_for 에대입 TBB 를이용한병렬프로그래밍실무 Slide No. 28

29 TBB Basic parallel_for 1 단계 : 직렬코드를활용하여태스크정의하기 직렬방식루프코드 void SerialCalculation(float a[], size_t n) { for (size_t i = 0; i < n; ++i) MyCalculation(a[i]); } 태스크정의 = Body 클래스정의 class ParallelCalculation { float* const my_a; public: void operator()(const blocked_range<size_t>& r) const { float* a = my_a; for (size_t i = r.begin(); i!= r.end(); ++i) MyCalculation(a[i]); } ParallelCalculation(float a[]) : my_a(a) { } }; TBB 를이용한병렬프로그래밍실무 Slide No. 29

30 TBB Basic parallel_for Body 클래스작성법 STL 스타일의함수객체, 연산자오버로딩, const class ParallelCalculationBody 클래스이름 { private: 데이터멤버선언 float* my_a; public: 생성자 ParallelCalculationBody(float a[]) : my_a(a) {} }; operator() void operator()(const 연산자오버로딩 blocked_range<size_t>& r)const { float* a = my_a; }; for(size_t i = MyCalulation(a[i]); r.begin(); i!= r.end(); i++) TBB 를이용한병렬프로그래밍실무 Slide No. 30

31 TBB Basic parallel_for 2 단계 : Range 객체정의하기 blocked_range 0부터 n-1까지전체반복간격을나타낸다. parallel_for가각프로세서에대해하위간격들로나눈것이다. 생성자원형 blocked_range<t>(begin, end, grainsize) T는값형식을지정 begin과 end는반개구간 [begin, end) 을의미하는 STL 스타일의반복간격을지정 예를들어, 만일 blocked_range<int>(0, 3000, 1000) 에서 3개의프로세서 ( 코어 ) 를가동할수있다면, 각프로세서에는 1000개의반복문이할당된다. blocked_range<size_t>(0, n, 10000) TBB 를이용한병렬프로그래밍실무 Slide No. 31

32 TBB Basic parallel_reduce 리덕션 (reduction) 연산을수행하기위한알고리즘템플릿 reduction 은 감소 라는의미가아니라 데이터정리 의의미를가지며, 한그룹에있는모든멤버들에 sum, max, min 또는논리 AND 와같은함수를적용하는것을리덕션연산 (reduction operation) 이라고함. parallel_reduce( blocked_range<t>(begin, end, grainsize), BodyObject ); 바디객체 범위객체 #include "tbb\parallel_reduce.h" #include "tbb\blocked_range.h" void ParallelSum(float a[], size_t n) { ParallelSumBody body(a); parallel_reduce( blocked_range<float*>(0, n, 10000), body ); } TBB 를이용한병렬프로그래밍실무 Slide No. 32

33 TBB Basic parallel_reduce 1 단계 : 직렬코드를활용하여태스크정의하기 직렬방식루프코드 float SerialSum(float a[], size_t n) { float sum = 0; for (size_t i = 0; i!= n; ++i) sum += Calculation(a[i]); return sum; } 태스크정의 = Body 클래스정의 class ParallelSum{ float* my_a; public: float sum; void operator()(const blocked_range<size_t>& r) { float* a = my_a; for (size_t i = r.begin(); i!= r.end(); ++i) sum += Calculation(a[i]); } ParallelSum(ParallelSumBody& x, split) : my_a(x.my_a), sum(0) { } void join(const ParallelSumBody& y) { sum += y.sum; } ParallelSum(float a[]) : my_a(a), sum(0) { } }; TBB 를이용한병렬프로그래밍실무 Slide No. 33

34 TBB Basic parallel_reduce Body 클래스작성법 Class SumBody{ float* my_a; public: float sum; void operator()(const blocked_range<size_t>& r) const { float* a = my_a; for (size_t i = r.begin(); i!= r.end(); ++i) sum += Calculation(a[i]); } SumBody(SumBody& x, split) : my_a(x.my_a), sum(0) { } SumBody(float a[]) : my_a(a), sum(0) { } }; void join(const SumBody& y) { sum += y.sum; } 1. sum을업데이트하기위해 operator() 의마지막에 const를붙이지않는다. 2. 스레드에대응하는각객체복사본의결과를병합하기위해 join 메서드추가 (split-join 메커니즘 ) 3. 분할생성자를추가로정의 split는더미인수이며복사생성자와구분하기위해역할 TBB를이용한병렬프로그래밍실무 Slide No. 34

35 TBB in Action 설치 (1/4) [Downloads] [Stable Release] TBB 3.0 다운로드! TBB 를이용한병렬프로그래밍실무 Slide No. 35

36 TBB in Action 설치 (2/4) 윈도우운영체제일경우 tbb30_ oss_win.zip 다운로드 클릭! TBB 를이용한병렬프로그래밍실무 Slide No. 36

37 TBB in Action 설치 (3/4) 다운로드한파일을원하는폴더에압축해제 TBB 를이용한병렬프로그래밍실무 Slide No. 37

38 TBB in Action 설치 (4/4) 환경변수설정 TBB_INSTALL_DIR 사용자변수로추가 TBB 버전에관계없이동일한변수명을사용하면편리 TBB 를이용한병렬프로그래밍실무 Slide No. 38

39 TBB in Action 개발환경셋팅 (1/4) 포함디렉터리설정 [ 모든구성 ] [C/C++] > [ 일반 ] > [ 추가포함디렉터리 ] $(TBB_INSTALL_DIR) include TBB 를이용한병렬프로그래밍실무 Slide No. 39

40 TBB in Action 개발환경셋팅 (2/4) 라이브러리디렉터리설정 [ 모든구성 ] [ 링커 ] > [ 일반 ] > [ 추가라이브러리디렉터리 ] $(TBB_INSTALL_DIR) ia32 vc9 lib TBB 를이용한병렬프로그래밍실무 Slide No. 40

41 TBB in Action 개발환경셋팅 (3/4) 종속성설정 각구성별 > [ 링커 ] > [ 입력 ] > [ 추가종속성 ] 구성별로각각 tbb_debug.lib, tbb.lib 입력 TBB 를이용한병렬프로그래밍실무 Slide No. 41

42 TBB in Action 개발환경셋팅 (4/4) TBB DLL 파일복사 방법 1 : 프로젝트의각구성별디렉터리에해당 DLL 복사 ( ia32 vc9 bin 에있는 ) [Debug] 폴더에 tbb_debug.dll 복사 [Release] 폴더에 tbb.dll 복사 방법 2 : System32 디렉터리에두파일모두복사 TBB 를이용한병렬프로그래밍실무 Slide No. 42

43 TBB in Action 기본실습 1 (parallel_for) 용도 루프의각반복에가해지는행위가독립적일때 문제정의 입력배열에있는각원소의제곱값을결과배열에저장 실험방법 실험 (1) : 배열개수를변경해가면서직렬및병렬버전의속도비교 실험 (2) : 배열개수를고정하고, Grain 크기를변경하면서최적값찾기 실습순서 1. 직렬버전작성 2. 병렬버전작성 1 태스크정의 = Body 클래스작성 2 parallel_for 구문작성 3. 실험 (1) 수행 4. 실험 (2) 수행 실습 TBB 를이용한병렬프로그래밍실무 Slide No. 43

44 TBB in Action 기본실습 2 (parallel_reduce) 용도 루프의모든반복이하나의결과값에영향을끼칠때 ( 여러입력값으로부터하나의결과값산출 (reduce)) 문제정의 입력배열에있는모든원소의평균값구하기 실험방법 배열개수를변경해가면서직렬및병렬버전의속도비교 실습순서 1. 직렬버전작성 2. 병렬버전작성 1 태스크정의 = Body 클래스작성 2 parallel_reduce 구문작성 3. 실험수행 실습 TBB 를이용한병렬프로그래밍실무 Slide No. 44

45 TBB in Action Vision Image Analysis 개요 Wafer Edge에있는 Crack, Chipping을자동검사하는 Vision 장치의이미지처리 MFC 애플리케이션의성능을향상시키기위해병렬화가능부분을식별하고병렬구현으로변경하는과정을실습을통해알아본다. TBB 를이용한병렬프로그래밍실무 Slide No. 45

46 TBB in Action Vision Image Analysis 실험방법 비전장치에의해획득된 60 개의 Edge 이미지를분석하여 Defect 크기와위치를찾아내는루프로직을 parallel_for 알고리즘으로변경하고, 직렬실행과병렬실행결과를 CPU 점유율과속도향상율로비교해본다. 실습순서 1. 직렬버전설명 2. 병렬버전작성 1 태스크정의 = Body 클래스작성 2 parallel_for 구문작성 3. 실험수행 실습 TBB 를이용한병렬프로그래밍실무 Slide No. 46

47 TBB in Action Vision Image Analysis 결과 for 루프를병렬알고리즘으로변경한것만으로도상당한성능개선효과가있었다. 발전사항 중첩된 parallel_for 구조로한층더병렬화 이미지획득과동시에처리하기위해동시적컨테이너 (concurrent_vector) 를사용 CPU 사용율 50% 처리속도 3124 ms x2 x1.7 CPU 사용율 100% 처리속도 1850 ms TBB 를이용한병렬프로그래밍실무 Slide No. 47

48 Reference 도서 TBB 를이용한병렬프로그래밍실무 Slide No. 48

49 Reference 문서 1. 또는 에서다운로드 2. 월간마소 2009 년 2 월호 프로세서아키텍처의변화로본병렬프로그래밍 / 김민장 TBB 를이용한병렬프로그래밍실무 Slide No. 49

50 Reference 웹사이트 2. TBB 를이용한병렬프로그래밍실무 Slide No. 50

51 Reference 웹사이트 3. (TBB 도서테크니컬리뷰어블로그 ) TBB 를이용한병렬프로그래밍실무 Slide No. 51

52 Reference 웹사이트 4. TBB 를이용한병렬프로그래밍실무 Slide No. 52

53 Summary 1. 기존병렬처리기술은스레드 (Thread) 를직접다루는방식이었다. 스레드추상화기술로발전했다 ( 예 : OpenMP, PPL). 2. 스레딩빌딩블록 (TBB) 은인텔이출시한최신스레드추상화기술이다. 3. TBB는 태스크 를사용하는데, 함수객체와스레드추상화의이해가선행되어야한다. 4. TBB는 STL과같이형식제약이최소화된템플릿라이브러리형태를취한다. 5. TBB 를이용한병렬프로그래밍실무의목적은동시성 (Concurrency) 과성능및조정성이다. 6. 조정성 (scalability) 은 스케일러빌리티 로도읽으며, 코어개수가변할때그에비례하여성능도조정된다는의미의용어이며 조정성 으로번역된다. 7. 코딩스타일의생소함을넘어서실무에자신있게도입하시기바랍니다! TBB 를이용한병렬프로그래밍실무 Slide No. 53

54 Thank You! TBB 를이용한병렬프로그래밍실무 Slide No. 54

목차 병렬프로그래밍이해및 TBB 기초 TBB 글로벌사례및국내동향 TBB 실무적용 TIPS

목차 병렬프로그래밍이해및 TBB 기초 TBB 글로벌사례및국내동향 TBB 실무적용 TIPS 일시 : 2012-05-10( 목 ) 17:00~17:50 장소 : 삼성동섬유센터 3 층이벤트홀 발표 : 이창재부장 C++ 개발자를위한하이퍼포먼스개발전략 글로벌활용사례와함께하는 TBB 도입전략 목차 병렬프로그래밍이해및 TBB 기초 TBB 글로벌사례및국내동향 TBB 실무적용 TIPS 1 15 병렬프로그래밍기초 분 병렬화를위한상식적접근, 전문연구, 인텔의병렬기술

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout <<  양수입력 : ; cin >> *p; if (*p <= 0) cout <<  양수를입력해야합니다  << endl; return; 동적할 15 장기타주제들 auto_ptr 변환함수 cast 연산자에의한명시적형변환실행시간타입정보알아내기 (RTTI) C++ 프로그래밍입문 1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout > *p; if (*p

More information

Microsoft PowerPoint - AMP_ pptx

Microsoft PowerPoint - AMP_ pptx C++ AMP(Accelerated Massive Parallelism) 2013-03-29 고형호 hyungho.ko@gmail.com http://hhko.tistory.com 목차 Part 1. 다중프로세서 Part 2. 연산자원 Part 3. GPU 특징 Part 4. 병렬화프로그래밍기술 Part 5. AMP Portability( 이식성 ) Part

More information

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - chap01-C언어개요.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을

More information

Microsoft PowerPoint - additional01.ppt [호환 모드]

Microsoft PowerPoint - additional01.ppt [호환 모드] 1.C 기반의 C++ part 1 함수 오버로딩 (overloading) 디폴트매개변수 (default parameter) 인-라인함수 (in-line function) 이름공간 (namespace) Jong Hyuk Park 함수 Jong Hyuk Park 함수오버로딩 (overloading) 함수오버로딩 (function overloading) C++ 언어에서는같은이름을가진여러개의함수를정의가능

More information

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,

More information

PowerPoint Template

PowerPoint Template 16-1. 보조자료템플릿 (Template) 함수템플릿 클래스템플릿 Jong Hyuk Park 함수템플릿 Jong Hyuk Park 함수템플릿소개 함수템플릿 한번의함수정의로서로다른자료형에대해적용하는함수 예 int abs(int n) return n < 0? -n : n; double abs(double n) 함수 return n < 0? -n : n; //

More information

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

슬라이드 1

슬라이드 1 핚국산업기술대학교 제 14 강 GUI (III) 이대현교수 학습안내 학습목표 CEGUI 라이브러리를이용하여, 게임메뉴 UI 를구현해본다. 학습내용 CEGUI 레이아웃의로딩및렌더링. OIS 와 CEGUI 의연결. CEGUI 위젯과이벤트의연동. UI 구현 : 하드코딩방식 C++ 코드를이용하여, 코드내에서직접위젯들을생성및설정 CEGUI::PushButton* resumebutton

More information

Microsoft PowerPoint - Chap12-OOP.ppt

Microsoft PowerPoint - Chap12-OOP.ppt 객체지향프로그래밍 (Object Oriented Programming) 12 장강사 강대기 차례 (Agenda) 멤버에대한동적메모리할당 암시적 / 명시적복사생성자 암시적 / 명시적오버로딩대입연산자 생성자에 new 사용하기 static 클래스멤버 객체에위치지정 new 사용하기 객체를지시하는포인터 StringBad 클래스 멤버에포인터사용 str static 멤버

More information

Microsoft PowerPoint - C++ 5 .pptx

Microsoft PowerPoint - C++ 5 .pptx C++ 언어프로그래밍 한밭대학교전자. 제어공학과이승호교수 연산자중복 (operator overloading) 이란? 2 1. 연산자중복이란? 1) 기존에미리정의되어있는연산자 (+, -, /, * 등 ) 들을프로그래머의의도에맞도록새롭게정의하여사용할수있도록지원하는기능 2) 연산자를특정한기능을수행하도록재정의하여사용하면여러가지이점을가질수있음 3) 하나의기능이프로그래머의의도에따라바뀌어동작하는다형성

More information

슬라이드 1

슬라이드 1 -Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역

More information

C++ Programming

C++ Programming C++ Programming 연산자다중정의 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 연산자다중정의 C++ 스타일의문자열 2 연산자다중정의 연산자다중정의 단항연산자다중정의 이항연산자다중정의 cin, cout 그리고 endl C++ 스타일의문자열 3 연산자다중정의 연산자다중정의 (Operator

More information

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 객체지향프로그래밍 IT CookBook, 자바로배우는쉬운자료구조 q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 q 객체지향프로그래밍의이해 v 프로그래밍기법의발달 A 군의사업발전 1 단계 구조적프로그래밍방식 3 q 객체지향프로그래밍의이해 A 군의사업발전 2 단계 객체지향프로그래밍방식 4 q 객체지향프로그래밍의이해 v 객체란무엇인가

More information

<4D F736F F F696E74202D20BAB4B7C4C7C1B7CEB1D7B7A1B9D6BCBCB9CCB3AA5F F FB0EDC7FCC8A32E >

<4D F736F F F696E74202D20BAB4B7C4C7C1B7CEB1D7B7A1B9D6BCBCB9CCB3AA5F F FB0EDC7FCC8A32E > 미래로시스템고형호 hyungho.ko@gmail.com, http://hhko.tistory.com 2011.06.25( 토 ) 포스코센터서관 5 층 목차 2 1. ArBB 특징 2. ArBB 기초문법 3. ArBB 설치 4. 만델브로집합예제 3 1. ArBB 특징 벡터합구하기 배열 A a1 a2 a3 a4 a5 a6 a7 a8 배열 B b1 b2 b3 b4

More information

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a 6 장복사생성자 객체의생성과대입객체의값에의한전달복사생성자디폴트복사생성자복사생성자의재정의객체의값에의한반환임시객체 C++ 프로그래밍입문 1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y;

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

PowerPoint Presentation

PowerPoint Presentation Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 5 장생성자와접근제어 1. 객체지향기법을이해한다. 2. 클래스를작성할수있다. 3. 클래스에서객체를생성할수있다. 4. 생성자를이용하여객체를초기화할수 있다. 5. 접근자와설정자를사용할수있다. 이번장에서만들어볼프로그램 생성자 생성자 (constructor) 는초기화를담당하는함수 생성자가필요한이유 #include using namespace

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include

More information

C++ Programming

C++ Programming C++ Programming 예외처리 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 예외처리 2 예외처리 예외처리 C++ 의예외처리 예외클래스와객체 3 예외처리 예외를처리하지않는프로그램 int main() int a, b; cout > a >> b; cout

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 9 강. 클래스의활용목차 멤버함수의외부정의 this 포인터 friend 선언 static 멤버 임시객체 1 /17 9 강. 클래스의활용멤버함수의외부정의 멤버함수정의구현방법 내부정의 : 클래스선언내에함수정의구현 외부정의 클래스선언 : 함수프로토타입 멤버함수정의 : 클래스선언외부에구현

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3

More information

슬라이드 1

슬라이드 1 마이크로컨트롤러 2 (MicroController2) 2 강 ATmega128 의 external interrupt 이귀형교수님 학습목표 interrupt 란무엇인가? 기본개념을알아본다. interrupt 중에서가장사용하기쉬운 external interrupt 의사용방법을학습한다. 1. Interrupt 는왜필요할까? 함수동작을추가하여실행시키려면? //***

More information

Microsoft Word - 3부A windows 환경 IVF + visual studio.doc

Microsoft Word - 3부A windows 환경 IVF + visual studio.doc Visual Studio 2005 + Intel Visual Fortran 9.1 install Intel Visual Fortran 9.1 intel Visual Fortran Compiler 9.1 만설치해서 DOS 모드에서실행할수있지만, Visual Studio 2005 의 IDE 를사용하기위해서는 Visual Studio 2005 를먼저설치후 Integration

More information

Microsoft PowerPoint - chap10-함수의활용.pptx

Microsoft PowerPoint - chap10-함수의활용.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 중 값에 의한 전달 방법과

More information

JVM 메모리구조

JVM 메모리구조 조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.

More information

Chapter #01 Subject

Chapter #01  Subject Device Driver March 24, 2004 Kim, ki-hyeon 목차 1. 인터럽트처리복습 1. 인터럽트복습 입력검출방법 인터럽트방식, 폴링 (polling) 방식 인터럽트서비스등록함수 ( 커널에등록 ) int request_irq(unsigned int irq, void(*handler)(int,void*,struct pt_regs*), unsigned

More information

Microsoft PowerPoint - CSharp-10-예외처리

Microsoft PowerPoint - CSharp-10-예외처리 10 장. 예외처리 예외처리개념 예외처리구문 사용자정의예외클래스와예외전파 순천향대학교컴퓨터학부이상정 1 예외처리개념 순천향대학교컴퓨터학부이상정 2 예외처리 오류 컴파일타임오류 (Compile-Time Error) 구문오류이기때문에컴파일러의구문오류메시지에의해쉽게교정 런타임오류 (Run-Time Error) 디버깅의절차를거치지않으면잡기어려운심각한오류 시스템에심각한문제를줄수도있다.

More information

슬라이드 1

슬라이드 1 정적메모리할당 (Static memory allocation) 일반적으로프로그램의실행에필요한메모리 ( 변수, 배열, 객체등 ) 는컴파일과정에서결정되고, 실행파일이메모리에로드될때할당되며, 종료후에반환됨 동적메모리할당 (Dynamic memory allocation) 프로그램의실행중에필요한메모리를할당받아사용하고, 사용이끝나면반환함 - 메모리를프로그램이직접관리해야함

More information

Microsoft Word - PLC제어응용-2차시.doc

Microsoft Word - PLC제어응용-2차시.doc 과정명 PLC 제어응용차시명 2 차시. 접점명령 학습목표 1. 연산개시명령 (LOAD, LOAD NOT) 에대하여설명할수있다. 2. 직렬접속명령 (AND, AND NOT) 에대하여설명할수있다. 3. 병렬접속명령 (OR, OR NOT) 에대하여설명할수있다. 4.PLC의접점명령을가지고간단한프로그램을작성할수있다. 학습내용 1. 연산개시명령 1) 연산개시명령 (LOAD,

More information

C 언어 프로그래밊 과제 풀이

C 언어 프로그래밊 과제 풀이 과제풀이 (1) 홀수 / 짝수판정 (1) /* 20094123 홍길동 20100324 */ /* even_or_odd.c */ /* 정수를입력받아홀수인지짝수인지판정하는프로그램 */ int number; printf(" 정수를입력하시오 => "); scanf("%d", &number); 확인 주석문 가필요한이유 printf 와 scanf 쌍

More information

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 학습내용 1. Java Development Kit(JDK) 2. Java API 3. 자바프로그래밍개발도구 (Eclipse) 4. 자바프로그래밍기초 2 자바를사용하려면무엇이필요한가? 자바프로그래밍개발도구 JDK (Java Development Kit) 다운로드위치 : http://www.oracle.com/technetwork/java/javas

More information

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074>

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074> 객체지향프로그램밍 (Object-Oriented Programming) 1 C++ popular C 객체지향 (object oriented) C++ C : 상위계층언어특징 + 어셈블리언어특징 C++ : 소프트웨어개발플랫폼에객체지향개념제공 객체지향 : 자료와이들자료를어떻게다룰것인지따로생각하지않고단지하나의사물로생각 형 변수가사용하는메모리크기 변수가가질수있는정보

More information

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch07 - 포인터 pm0415 2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자

More information

제11장 프로세스와 쓰레드

제11장 프로세스와 쓰레드 제9장자바쓰레드 9.1 Thread 기초 (1/5) 프로그램 명령어들의연속 (a sequence of instruction) 프로세스 / Thread 실행중인프로그램 (program in execution) 프로세스생성과실행을위한함수들 자바 Thread 2 9.1 Thread 기초 (2/5) 프로세스단위작업의문제점 프로세스생성시오버헤드 컨텍스트스위치오버헤드

More information

Microsoft PowerPoint - o4.pptx

Microsoft PowerPoint - o4.pptx 목표 쓰레드 (thread) 개념소개 Thread API Multithreaded 프로그래밍관련이슈 4 장. 쓰레드 2 4.1 개요 쓰레드 쓰레드 (Thread ) CPU 이용의기본실행단위 단일쓰레드 (Single threaded) Processes 전통적인프로세스 한개의실행단위로구성 다중쓰레드 (Multithreaded) Process 여러개의실행쓰레드를갖는프로세스

More information

Microsoft PowerPoint - Chapter 6.ppt

Microsoft PowerPoint - Chapter 6.ppt 6.Static 멤버와 const 멤버 클래스와 const 클래스와 static 연결리스트프로그램예 Jong Hyuk Park 클래스와 const Jong Hyuk Park C 의 const (1) const double PI=3.14; PI=3.1415; // 컴파일오류 const int val; val=20; // 컴파일오류 3 C 의 const (1)

More information

Microsoft PowerPoint - Windows CE Programming_2008 [호환 모드]

Microsoft PowerPoint - Windows CE Programming_2008 [호환 모드] Programming 고재관 Microsoft Mobile Device MVP Speaker 고재관 myaustin@korea.com Microsoft MVP 2006-2008 2008 Mobile Devices 분야 500 시간세미나 / 강의 실무경력 15 년메신저 Portable Device since 1995 집필도서 커뮤니티 http://myaustin.egloos.com

More information

adfasdfasfdasfasfadf

adfasdfasfdasfasfadf C 4.5 Source code Pt.3 ISL / 강한솔 2019-04-10 Index Tree structure Build.h Tree.h St-thresh.h 2 Tree structure *Concpets : Node, Branch, Leaf, Subtree, Attribute, Attribute Value, Class Play, Don't Play.

More information

Microsoft PowerPoint - CHAP_03 - 복쇬본.pptx

Microsoft PowerPoint - CHAP_03 - 복쇬본.pptx 컴퓨터하드웨어 Computer Hardware PC 일반 Lecture 3 1. CPU 2. 메인보드 3. 동작원리 2 1 CPU 의 IQ? 컴퓨터하드웨어와컴퓨터구성 3 CPU??? 컴퓨터시스템전체를제어하는장치 다양한입력장치로부터자료를받아서처리한후, 그결과를출력장치로보내는일련의과정을제어하고 조정하는일을수행 4 2 CPU 의기본구조 CPU 논리연산장치 Arithmetic

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을

구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을 (structures) 구조체정의 구조체선언및초기화 구조체배열 구조체포인터 구조체배열과포인터 구조체와함수 중첩된구조체 구조체동적할당 공용체 (union) 1 구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined

More information

Slide 1

Slide 1 SeoulTech 2011-2 nd 프로그래밍입문 (2) Chapter 11. 분리컴파일과 네임스페이스 박종혁교수 (http://www.parkjonghyuk.net) Tel: 970-6702 Email: jhpark1@snut.ac.kr 분리컴파일 프로그램부분 분리된파일에저장 분리되어컴파일 프로그램이실행되기전에상호간에링크됨 클래스정의 사용프로그램에서분리됨

More information

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - Java7.pptx HPC & OT Lab. 1 HPC & OT Lab. 2 실습 7 주차 Jin-Ho, Jang M.S. Hanyang Univ. HPC&OT Lab. jinhoyo@nate.com HPC & OT Lab. 3 Component Structure 객체 (object) 생성개념을이해한다. 외부클래스에대한접근방법을이해한다. 접근제어자 (public & private)

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 08 함수 01 함수의개요 02 함수사용하기 03 함수와배열 04 재귀함수 함수의필요성을인식한다. 함수를정의, 선언, 호출하는방법을알아본다. 배열을함수의인자로전달하는방법과사용시장점을알아본다. 재귀호출로해결할수있는문제의특징과해결방법을알아본다. 1.1 함수의정의와기능 함수 (function) 특별한기능을수행하는것 여러가지함수의예 Page 4 1.2

More information

JAVA PROGRAMMING 실습 08.다형성

JAVA PROGRAMMING 실습 08.다형성 2015 학년도 2 학기 1. 추상메소드 선언은되어있으나코드구현되어있지않은메소드 abstract 키워드사용 메소드타입, 이름, 매개변수리스트만선언 public abstract String getname(); public abstract void setname(string s); 2. 추상클래스 abstract 키워드로선언한클래스 종류 추상메소드를포함하는클래스

More information

2002년 2학기 자료구조

2002년 2학기 자료구조 자료구조 (Data Structures) Chapter 1 Basic Concepts Overview : Data (1) Data vs Information (2) Data Linear list( 선형리스트 ) - Sequential list : - Linked list : Nonlinear list( 비선형리스트 ) - Tree : - Graph : (3)

More information

PowerPoint Presentation

PowerPoint Presentation public class SumTest { public static void main(string a1[]) { int a, b, sum; a = Integer.parseInt(a1[0]); b = Integer.parseInt(a1[1]); sum = a + b ; // 두수를더하는부분입니다 System.out.println(" 두수의합은 " + sum +

More information

Slide 1

Slide 1 SeoulTech 2011-2 nd 프로그래밍입문 (2) Chapter 16. 템플릿 박종혁교수 (http://www.parkjonghyuk.net) Tel: 970-6702 Email: jhpark1@snut.ac.kr Learning Objectives 함수템플릿 구문, 정의 컴파일합병 클래스템플릿 문법 예 : 배열템플릿클래스 템플릿및상속 예 : 부분적으로채워진배열템플릿클래스

More information

untitled

untitled 시스템소프트웨어 : 운영체제, 컴파일러, 어셈블러, 링커, 로더, 프로그래밍도구등 소프트웨어 응용소프트웨어 : 워드프로세서, 스프레드쉬트, 그래픽프로그램, 미디어재생기등 1 n ( x + x +... + ) 1 2 x n 00001111 10111111 01000101 11111000 00001111 10111111 01001101 11111000

More information

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다. Eclipse 개발환경에서 WindowBuilder 를이용한 Java 프로그램개발 이예는 Java 프로그램의기초를이해하고있는사람을대상으로 Embedded Microcomputer 를이용한제어시스템을 PC 에서 Serial 통신으로제어 (Graphical User Interface (GUI) 환경에서 ) 하는프로그램개발예를설명한다. WindowBuilder:

More information

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조 - Part2- 제 2 장다차원배열이란무엇인가 학습목차 2.1 다차원배열이란 2. 2 2 차원배열의주소와값의참조 2.1 다차원배열이란 2.1 다차원배열이란 (1/14) 다차원배열 : 2 차원이상의배열을의미 1 차원배열과다차원배열의비교 1 차원배열 int array [12] 행 2 차원배열 int array [4][3] 행 열 3 차원배열 int array [2][2][3]

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 3 장함수와문자열 1. 함수의기본적인개념을이해한다. 2. 인수와매개변수의개념을이해한다. 3. 함수의인수전달방법 2가지를이해한다 4. 중복함수를이해한다. 5. 디폴트매개변수를이해한다. 6. 문자열의구성을이해한다. 7. string 클래스의사용법을익힌다. 이번장에서만들어볼프로그램 함수란? 함수선언 함수호출 예제 #include using

More information

Microsoft PowerPoint - chap11-포인터의활용.pptx

Microsoft PowerPoint - chap11-포인터의활용.pptx #include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 포인터를 사용하는 다양한 방법에

More information

(Microsoft PowerPoint - 07\300\345.ppt [\310\243\310\257 \270\360\265\345])

(Microsoft PowerPoint - 07\300\345.ppt [\310\243\310\257 \270\360\265\345]) 클래스의응용 클래스를자유자재로사용하자. 이장에서다룰내용 1 객체의치환 2 함수와클래스의상관관계 01_ 객체의치환 객체도변수와마찬가지로치환이가능하다. 기본예제 [7-1] 객체도일반변수와마찬가지로대입이가능하다. 기본예제 [7-2] 객체의치환시에는조심해야할점이있다. 복사생성자의필요성에대하여알아보자. [ 기본예제 7-1] 클래스의치환 01 #include

More information

C# Programming Guide - Types

C# Programming Guide - Types C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든

More information

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2>

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2> 게임엔진 제 4 강프레임리스너와 OIS 입력시스템 이대현교수 한국산업기술대학교게임공학과 학습내용 프레임리스너의개념 프레임리스너를이용한엔터티의이동 OIS 입력시스템을이용한키보드입력의처리 게임루프 Initialization Game Logic Drawing N Exit? Y Finish 실제게임루프 오우거엔진의메인렌더링루프 Root::startRendering()

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 6 강. 함수와배열, 포인터, 참조목차 함수와포인터 주소값의매개변수전달 주소의반환 함수와배열 배열의매개변수전달 함수와참조 참조에의한매개변수전달 참조의반환 프로그래밍연습 1 /15 6 강. 함수와배열, 포인터, 참조함수와포인터 C++ 매개변수전달방법 값에의한전달 : 변수값,

More information

유니티 변수-함수.key

유니티 변수-함수.key C# 1 or 16 (Binary or Hex) 1:1 C# C# (Java, Python, Go ) (0101010 ). (Variable) : (Value) (Variable) : (Value) ( ) (Variable) : (Value) ( ) ; (Variable) : (Value) ( ) ; = ; (Variable) : (Value) (Variable)

More information

4 장클래스와객체 클래스와객체 public과 private 구조체와클래스객체의생성과생성자객체의소멸과소멸자생성자와소멸자의호출순서디폴트생성자와디폴트소멸자멤버초기화멤버함수의외부정의멤버함수의인라인함수선언 C++ 프로그래밍입문

4 장클래스와객체 클래스와객체 public과 private 구조체와클래스객체의생성과생성자객체의소멸과소멸자생성자와소멸자의호출순서디폴트생성자와디폴트소멸자멤버초기화멤버함수의외부정의멤버함수의인라인함수선언 C++ 프로그래밍입문 4 장클래스와객체 클래스와객체 public과 private 구조체와클래스객체의생성과생성자객체의소멸과소멸자생성자와소멸자의호출순서디폴트생성자와디폴트소멸자멤버초기화멤버함수의외부정의멤버함수의인라인함수선언 C++ 프로그래밍입문 1. 클래스와객체 추상데이터형 : 속성 (attribute) + 메서드 (method) 예 : 자동차의속성과메서드 C++ : 주로 class

More information

2 병렬성 vs 동시성 시분할 시스템에서 선점형 멀티태스킹 두 개 프로세서 코어에서의 동시 작업

2 병렬성 vs 동시성 시분할 시스템에서 선점형 멀티태스킹 두 개 프로세서 코어에서의 동시 작업 1 동시성런타임을이용한 Actor- Based Programming Asynchronous Agents Library 김용현 (drvoss@gmail.com) http:// 2 병렬성 vs 동시성 시분할 시스템에서 선점형 멀티태스킹 두 개 프로세서 코어에서의 동시 작업 3 언어적차원에서의병렬성지원 X 0041594E cmp dword ptr [CSingleton::instance_

More information

JAVA PROGRAMMING 실습 02. 표준 입출력

JAVA PROGRAMMING 실습 02. 표준 입출력 # 메소드의구조자주반복하여사용하는내용에대해특정이름으로정의한묶음 반환형메소드이름 ( 매개변수 ) { 실행문장 1; : 실행문장 N; } 메소드의종류 Call By Name : 메서드의이름에의해호출되는메서드로특정매개변수없이실행 Call By Value : 메서드를이름으로호출할때특정매개변수를전달하여그값을기초로실행하는메서드 Call By Reference : 메서드호출시매개변수로사용되는값이특정위치를참조하는

More information

OCW_C언어 기초

OCW_C언어 기초 초보프로그래머를위한 C 언어기초 4 장 : 연산자 2012 년 이은주 학습목표 수식의개념과연산자및피연산자에대한학습 C 의알아보기 연산자의우선순위와결합방향에대하여알아보기 2 목차 연산자의기본개념 수식 연산자와피연산자 산술연산자 / 증감연산자 관계연산자 / 논리연산자 비트연산자 / 대입연산자연산자의우선순위와결합방향 조건연산자 / 형변환연산자 연산자의우선순위 연산자의결합방향

More information

비디오 / 그래픽 아답터 네트워크 만약에 ArcGolbe를 사용하는 경우, 추가적인 디스크 공간 필요. ArcGlobe는 캐시파일을 생성하여 사용 24 비트 그래픽 가속기 Oepn GL 2.0 이상을 지원하는 비디오카드 최소 64 MB 이고 256 MB 이상을 메모리

비디오 / 그래픽 아답터 네트워크 만약에 ArcGolbe를 사용하는 경우, 추가적인 디스크 공간 필요. ArcGlobe는 캐시파일을 생성하여 사용 24 비트 그래픽 가속기 Oepn GL 2.0 이상을 지원하는 비디오카드 최소 64 MB 이고 256 MB 이상을 메모리 ArcGIS for Desktop 10.4 Single Use 설치가이드 Software: ArcGIS for Desktop 10.4 Platforms: Windows 10, 8.1, 7, Server 2012, Server 2008 ArcGIS for Desktop 10.4 시스템 요구사항 1. 지원 플랫폼 운영체제 최소 OS 버전 최대 OS 버전 Windows

More information

11장 포인터

11장 포인터 누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리

More information

[Brochure] KOR_TunA

[Brochure] KOR_TunA LG CNS LG CNS APM (TunA) LG CNS APM (TunA) 어플리케이션의 성능 개선을 위한 직관적이고 심플한 APM 솔루션 APM 이란? Application Performance Management 란? 사용자 관점 그리고 비즈니스 관점에서 실제 서비스되고 있는 어플리케이션의 성능 관리 체계입니다. 이를 위해서는 신속한 장애 지점 파악 /

More information

슬라이드 1

슬라이드 1 Pairwise Tool & Pairwise Test NuSRS 200511305 김성규 200511306 김성훈 200614164 김효석 200611124 유성배 200518036 곡진화 2 PICT Pairwise Tool - PICT Microsoft 의 Command-line 기반의 Free Software www.pairwise.org 에서다운로드후설치

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 10 포인터 01 포인터의기본 02 인자전달방법 03 포인터와배열 04 포인터와문자열 변수의주소를저장하는포인터에대해알아본다. 함수의인자를값과주소로전달하는방법을알아본다. 포인터와배열의관계를알아본다. 포인터와문자열의관계를알아본다. 1.1 포인터선언 포인터선언방법 자료형 * 변수명 ; int * ptr; * 연산자가하나이면 1 차원포인터 1 차원포인터는일반변수의주소를값으로가짐

More information

Microsoft Word - DELL_PowerEdge_TM_ R710 서버 성능분석보고서.doc

Microsoft Word - DELL_PowerEdge_TM_ R710 서버 성능분석보고서.doc DELL PowerEdge R710 Server 성능분석보고서 본자료는 클루닉스에서자사통합시뮬레이션시스템구성제품인 GridCenter를이용하여 Dell PowerEdge R710 서버의성능을분석한보고서입니다. 클루닉스와 DELL의협의없이발췌및배포를금합니다. BMT 환경 : GridCenter-CAP, GridCenter-HPC, CAE 어플리케이션 Abaqus,Fluent,Gaussian

More information

Microsoft PowerPoint - 권장 사양

Microsoft PowerPoint - 권장 사양 Autodesk 제품컴퓨터사양 PRONETSOFT.CO 박경현 1 AutoCAD 시스템사양 시스템요구사양 32 비트 AutoCAD 2009 를위한시스템요구사항 Intel Pentium 4 프로세서 2.2GHz 이상, 또는 Intel 또는 AMD 듀얼 코어프로세서 16GH 1.6GHz 이상 Microsoft Windows Vista, Windows XP Home

More information

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074> SIMATIC S7 Siemens AG 2004. All rights reserved. Date: 22.03.2006 File: PRO1_17E.1 차례... 2 심벌리스트... 3 Ch3 Ex2: 프로젝트생성...... 4 Ch3 Ex3: S7 프로그램삽입... 5 Ch3 Ex4: 표준라이브러리에서블록복사... 6 Ch4 Ex1: 실제구성을 PG 로업로드하고이름변경......

More information

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 6.1 함수프로시저 6.2 서브프로시저 6.3 매개변수의전달방식 6.4 함수를이용한프로그래밍 3 프로시저 (Procedure) 프로시저 (Procedure) 란무엇인가? 논리적으로묶여있는하나의처리단위 내장프로시저 이벤트프로시저, 속성프로시저, 메서드, 비주얼베이직내장함수등

More information

Microsoft PowerPoint - chap05-제어문.pptx

Microsoft PowerPoint - chap05-제어문.pptx int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); 1 학습목표 제어문인,, 분기문에 대해 알아본다. 인 if와 switch의 사용 방법과 사용시 주의사항에 대해 알아본다.

More information

강의계획서 1. 강의개요 학습과목명 객체지향프로그래밍 Ⅰ 학점 3 학점교 강사명교 강사전화번호 강의시간 4시간강의실수강대상 2. 교과목학습목표 4차산업혁명시대의도래로컴퓨터와프로그래밍에대한관심이커지고있으며, 여러분야에서소프트웨어의중요성을강조하며, 새시대를이끌

강의계획서 1. 강의개요 학습과목명 객체지향프로그래밍 Ⅰ 학점 3 학점교 강사명교 강사전화번호 강의시간 4시간강의실수강대상  2. 교과목학습목표 4차산업혁명시대의도래로컴퓨터와프로그래밍에대한관심이커지고있으며, 여러분야에서소프트웨어의중요성을강조하며, 새시대를이끌 강의계획서. 강의개요 학습과목명 객체지향프로그래밍 Ⅰ 학점 학점교 강사명교 강사전화번호 강의시간 시간강의실수강대상 E-mail. 교과목학습목표 차산업혁명시대의도래로컴퓨터와프로그래밍에대한관심이커지고있으며, 여러분야에서소프트웨어의중요성을강조하며, 새시대를이끌어나갈핵심기술의기초로프로그래밍에주목하고있다. 이에본교과목에서객체지향언어의기본개념을학습한후구조적프로그래밍언어와의차이점을학습한다.

More information

CUDA Programming Tutorial 2 - Memory Management – Matrix Transpose

CUDA Programming Tutorial 2 - Memory Management – Matrix Transpose CUDA Programming Tutorial 2 Memory Management Matrix Transpose Sungjoo Ha April 20th, 2017 Sungjoo Ha 1 / 29 Memory Management 병렬연산장치를활용하기위해하드웨어구조의이해를바탕에둔메모리활용이필요 CUDA 프로그래밍을하며알아야하는두가지메모리특성을소개 전치행렬계산을예제로

More information

Design Issues

Design Issues 11 COMPUTER PROGRAMMING INHERIATANCE CONTENTS OVERVIEW OF INHERITANCE INHERITANCE OF MEMBER VARIABLE RESERVED WORD SUPER METHOD INHERITANCE and OVERRIDING INHERITANCE and CONSTRUCTOR 2 Overview of Inheritance

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 5 강. 배열, 포인터, 참조목차 배열 포인터 C++ 메모리구조 주소연산자 포인터 포인터연산 배열과포인터 메모리동적할당 문자열 참조 1 /20 5 강. 배열, 포인터, 참조배열 배열 같은타입의변수여러개를하나의변수명으로처리 int Ary[10]; 총 10 개의변수 : Ary[0]~Ary[9]

More information

1. 상속의기본개념 다음과같은문제를위한클래스설계 자동차 속성 : 색상, 배기량, 현재속도 메서드 : 가속하라, 멈춰라, 시동을켜라 트럭 속성 : 색상, 배기량, 현재속도, 최대중량 메서드 : 가속하라, 멈춰라, 시동을켜라 택시 속성 : 색상, 배기량, 현재속도, 요금,

1. 상속의기본개념 다음과같은문제를위한클래스설계 자동차 속성 : 색상, 배기량, 현재속도 메서드 : 가속하라, 멈춰라, 시동을켜라 트럭 속성 : 색상, 배기량, 현재속도, 최대중량 메서드 : 가속하라, 멈춰라, 시동을켜라 택시 속성 : 색상, 배기량, 현재속도, 요금, 8 장상속 상속의기본개념상속관련문제제기 base 클래스의접근제어와 protected 멤버상속관계에서의생성자와소멸자함수재정의 (function overriding) 디폴트액세스지정자와구조체 derived 클래스로부터의상속다중상속 virtual base 클래스 derived 클래스의디폴트복사생성자와디폴트대입연산자 private 생성자의사용 C++ 프로그래밍입문

More information

Slide 1

Slide 1 SeoulTech 2011-2 nd 프로그래밍입문 (2) Chapter 14. 상속 박종혁교수 (http://www.parkjonghyuk.net) Tel: 970-6702 Email: jhpark1@snut.ac.kr Learning Objectives 상속의기본 파생클래스와생성자 protected: 제한자 멤버함수의재정의 상속되지않는함수들 상속을이용한프로그래밍

More information

chap x: G입력

chap x: G입력 재귀알고리즘 (Recursive Algorithms) 재귀알고리즘의특징 문제자체가재귀적일경우적합 ( 예 : 피보나치수열 ) 이해하기가용이하나, 비효율적일수있음 재귀알고리즘을작성하는방법 재귀호출을종료하는경계조건을설정 각단계마다경계조건에접근하도록알고리즘의재귀호출 재귀알고리즘의두가지예 이진검색 순열 (Permutations) 1 장. 기본개념 (Page 19) 이진검색의재귀알고리즘

More information

17장 클래스와 메소드

17장 클래스와 메소드 17 장클래스와메소드 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 1 / 18 학습내용 객체지향특징들객체출력 init 메소드 str 메소드연산자재정의타입기반의버전다형성 (polymorphism) 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 2 / 18 객체지향특징들 객체지향프로그래밍의특징 프로그램은객체와함수정의로구성되며대부분의계산은객체에대한연산으로표현됨객체의정의는

More information

슬라이드 1

슬라이드 1 한국산업기술대학교 제 4 강프레임리스너 (Frame Listener) 이대현교수 학습안내 학습목표 프레임리스너를이용하여게임루프를구현하는방법을이해한다. 오우거엔짂의키입력처리방식을이해한다. 학습내용 프레임리스너의개념프레임리스너를이용한게임캐릭터의이동캐릭터의이동속도조절 OIS 입력시스템을이용한키보드입력의처리 기본게임루프 Initialization Game Logic

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 13 장파일처리 1. 스트림의개념을이해한다. 2. 객체지향적인방법을사용하여파일입출력을할수있다. 3. 텍스트파일과이진파일의차이점을이해한다. 4. 순차파일과임의접근파일의차이점을이해한다. 이번장에서만들어볼프로그램 스트림 (stream) 스트림 (stream) 은 순서가있는데이터의연속적인흐름 이다. 스트림은입출력을물의흐름처럼간주하는것이다. 입출력관련클래스들 파일쓰기

More information

Gray level 변환 및 Arithmetic 연산을 사용한 영상 개선

Gray level 변환 및 Arithmetic 연산을 사용한 영상 개선 Point Operation Histogram Modification 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 HISTOGRAM HISTOGRAM MODIFICATION DETERMINING THRESHOLD IN THRESHOLDING 2 HISTOGRAM A simple datum that gives the number of pixels that a

More information

C++ Programming

C++ Programming C++ Programming 상속과다형성 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 상속의이해 상속과다형성 다중상속 2 상속과다형성 객체의이해 상속클래스의객체의생성및소멸 상속의조건 상속과다형성 다중상속 3 상속의이해 상속 (Inheritance) 클래스에구현된모든특성 ( 멤버변수와멤버함수 )

More information

Microsoft PowerPoint - additional08.ppt [호환 모드]

Microsoft PowerPoint - additional08.ppt [호환 모드] 8. 상속과다형성 (polymorphism) 상속된객체와포인터 / 참조자의관계 정적바인딩과동적바인딩 virtual 소멸자 Jong Hyuk Park 상속의조건 public 상속은 is-a 관계가성립되도록하자. 일반화 ParttimeStd 구체화 2 상속의조건 잘못된상속의예 현실세계와완전히동떨어진모델이형성됨 3 상속의조건 HAS-A( 소유 ) 관계에의한상속!

More information

PowerPoint Template

PowerPoint Template 7. 상속 (inheritance) 의이해 상속의기본개념 상속의생성자, 소멸자 protected 멤버 Jong Hyuk Park 상속의기본개념 Jong Hyuk Park 상속의기본개념 상속의예 1 " 철수는아버지로부터좋은목소리와큰키를물려받았다." 상속의예 2 "Student 클래스가 Person 클래스를상속한다." 아버지 Person 철수 Stduent 3

More information

Microsoft PowerPoint - chap04-연산자.pptx

Microsoft PowerPoint - chap04-연산자.pptx int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); } 1 학습목표 수식의 개념과 연산자, 피연산자에 대해서 알아본다. C의 를 알아본다. 연산자의 우선 순위와 결합 방향에

More information

슬라이드 1

슬라이드 1 UNIT 16 예외처리 로봇 SW 교육원 3 기 최상훈 학습목표 2 예외처리구문 try-catch-finally 문을사용핛수있다. 프로그램오류 3 프로그램오류의종류 컴파일에러 (compile-time error) : 컴파일실행시발생 럮타임에러 (runtime error) : 프로그램실행시발생 에러 (error) 프로그램코드에의해서해결될수없는심각핚오류 ex)

More information

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 Eclipse (IDE) JDK Android SDK with ADT IDE: Integrated Development Environment JDK: Java Development Kit (Java SDK) ADT: Android Development Tools 2 JDK 설치 Eclipse

More information

Microsoft PowerPoint - chap03-변수와데이터형.pptx

Microsoft PowerPoint - chap03-변수와데이터형.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num %d\n", num); return 0; } 1 학습목표 의 개념에 대해 알아본다.

More information

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 11 장상속 1. 상속의개념을이해한다. 2. 상속을이용하여자식클래스를작성할수있다. 3. 상속과접근지정자와의관계를이해한다. 4. 상속시생성자와소멸자가호출되는순서를이해한다. 이번장에서만들어볼프로그램 class Circle { int x, y; int radius;... class Rect { int x, y; int width, height;... 중복 상속의개요

More information

Microsoft PowerPoint - chap-03.pptx

Microsoft PowerPoint - chap-03.pptx 쉽게풀어쓴 C 언어 Express 제 3 장 C 프로그램구성요소 컴퓨터프로그래밍기초 이번장에서학습할내용 * 주석 * 변수, 상수 * 함수 * 문장 * 출력함수 printf() * 입력함수 scanf() * 산술연산 * 대입연산 이번장에서는 C프로그램을이루는구성요소들을살펴봅니다. 컴퓨터프로그래밍기초 2 일반적인프로그램의형태 데이터를받아서 ( 입력단계 ), 데이터를처리한후에

More information

ThisJava ..

ThisJava .. 자바언어에정확한타입을추가한 ThisJava 소개 나현익, 류석영 프로그래밍언어연구실 KAIST 2014 년 1 월 14 일 나현익, 류석영 자바언어에정확한타입을추가한 ThisJava 소개 1/29 APLAS 2013 나현익, 류석영 자바 언어에 정확한 타입을 추가한 ThisJava 소개 2/29 실제로부딪힌문제 자바스크립트프로그램분석을위한요약도메인 나현익,

More information

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D> 뻔뻔한 AVR 프로그래밍 The 4 th Lecture 유명환 ( yoo@netplug.co.kr) 1 시간 (Time) 에대한정의 INDEX 2 왜타이머 (Timer) 와카운터 (Counter) 인가? 3 ATmega128 타이머 / 카운터동작구조 4 ATmega128 타이머 / 카운터관련레지스터 5 뻔뻔한노하우 : 레지스터비트설정방법 6 ATmega128

More information

Microsoft PowerPoint - chap12-고급기능.pptx

Microsoft PowerPoint - chap12-고급기능.pptx #include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 가 제공하는 매크로 상수와 매크로

More information