Modern Concurrent Programming for Multicode Environment

멀티코어 환경을 위한 현대 동시성 프로그래밍

  • Kim, Nam-gue (Dept. of Information and Communication Engineering, Dongseo University) ;
  • Kang, Young-Jin (Dept. of Ubiquitous IT Graduate School of Dongseo University) ;
  • Lee, HoonJae (Dept. of Computer Engineering, Dongseo University)
  • Published : 2016.10.27

Abstract

The period of the previous multi-core could be helped to improve program performance, based on the development of the hardware. However, one of the core performance enhancements for this encounter limitations and become the common way of multi-core with multiple cores. Modern programming concurrency that improves the conventional method for using threads of the kernel level in order to use the multi-core come to the fore. Using modern lightweight thread concurrency programming is to optimize the benefits of multi-core. Also sharing the absence of available data that can change is a major consideration when writing concurrent code. This paper describes the key considerations when creating a discussion concurrent code, and these issues are being supported in any way in the language of one 'go' of technologies that support the modern concurrency, and even how to write better code concurrency.

멀티코어 이전의 시대에는 하드웨어의 발전을 토대로 프로그램 성능 향상에 도움을 받을 수 있었다. 그러나 하나의 코어 대한 성능 향상이 한계에 봉착하며 여러 개의 코어를 사용하는 멀티코어라는 방법이 보편화되었다. 멀티코어를 사용하기 위해 커널 레벨의 스레드를 사용하는 기존의 방법을 발전시킨 현대적 동시성 프로그래밍이 대두되었다. 현대 동시성 프로그래밍이란 경량 스레드를 사용하여 멀티코어의 장점을 최적화한다. 또 공유 가능한 데이터가 변경할 수 있는지의 유무가 동시성 코드 작성 시 주요 고려사항이 된다. 본 논문은 동시성 코드 작성 시 주요 고려사항들을 설명하고, 이러한 사항들이 현대 동시성 기술을 지원하는 언어 중 하나인 '고'에서 어떤 식으로 지원되고, 나아가 어떻게 더 훌륭한 동시성 코드를 작성할 것인지 논의한다.

Keywords