Critical Section

Critical Section 임계 구역 (Critical Section) 은 여러 실행 흐름이 공유 자원을 안전하게 사용할 수 있도록 동시 접근을 제어하는 코드 블록이다. 상호 배제, 진행성, 유한 대기의 세 원칙을 기반으로 하며, mutex, semaphore, monitor, atomic 연산 등으로 보호된다. Dekker 와 Peterson 알고리즘 같은 고전적 해법부터 현대 언어의 동기화 추상화까지 폭넓게 활용되며, 데드락, 기아, 경쟁 상태를 예방한다. 등장 배경 및 발전 과정 Critical Section은 단일 흐름 환경에서는 문제가 되지 않았지만, 멀티프로세스/멀티스레드/멀티코어 환경이 도입되면서 **경쟁 조건 (Race Condition)**을 해결하기 위한 동기화 문제의 핵심 개념으로 발전했다. Dekker, Peterson 등의 초기 알고리즘에서 시작해, 세마포어, 모니터, 뮤텍스 등의 운영체제 기반 기술로 이어졌고, 현재는 락프리 구조, 메모리 일관성 모델, 고수준 언어 내장 기법 등으로 진화하고 있다. ...

May 20, 2025 · 35 min · Me

Concurrency vs.Parallelism

Concurrency vs.Parallelism 동시성과 병렬성은 현대 시스템 설계에서 성능 최적화의 핵심 개념이다. 동시성은 작업 간 전환을 통해 단일 자원으로 다수 작업을 논리적으로 처리하며, 병렬성은 다중 코어 또는 분산 환경에서 여러 작업을 실제 동시에 실행해 처리량을 극대화한다. 두 개념은 멀티스레딩, 비동기 I/O, GPU 병렬 처리, 분산 시스템 등 다양한 분야에서 상호 보완적으로 사용되며, 시스템의 응답성, 확장성, 자원 효율성을 크게 향상시킨다. 등장 배경 및 발전 과정 시기 기술 발전 흐름 주요 내용 요약 1950~1960 년대 초기 컴퓨팅 구조 - 단일 프로그램 실행 환경 (batch processing) - CPU 유휴 시간 발생, 자원 활용 비효율성 문제 대두 1960 년대 중후반 시분할 시스템 및 멀티프로그래밍 도입 - Multiprogramming: 여러 작업을 메모리에 상주시켜 CPU 활용 극대화 - Time-Sharing System: 사용자 간 자원 공유 지원 1970~1980 년대 멀티태스킹 운영체제, GUI 시대 개막 - Preemptive Scheduling 기반의 멀티태스킹 OS 등장 - 사용자 인터페이스가 GUI 로 진화하며, 백그라운드 동작 (Concurrency) 중요성 증가 1990 년대 네트워크 기반 시스템 확산 - 클라이언트 - 서버 구조 확산 - 웹 서비스 및 이벤트 처리 요구 증가 - 스레드 기반 모델 활성화 2000 년대 초반 멀티코어 프로세서 상용화 - Dual/Quad Core CPU 등장 - 병렬 처리를 위한 물리적 인프라 확보 - 멀티스레딩의 하드웨어적 기반 제공 2010 년대 이후 클라우드, 분산 시스템, 비동기 모델 확산 - Cloud-native 시스템 확산 - 대규모 데이터 처리, 이벤트 기반 아키텍처 필요성 증가 - Async/Await, Reactive, Actor Model 도입 2020 년대~현재 AI, IoT, 엣지 컴퓨팅 시대 - 병렬화 가능한 작업 증가 (딥러닝, 센서 데이터 등) - GPGPU 병렬 처리, 서버리스 기반 동시성 처리 활용 확대 Concurrency 의 필요성은 CPU 의 유휴 자원 방지와 사용자 응답성 확보에서 출발했으며, 멀티태스킹 OS, GUI 환경, 네트워크 서비스로 이어지며 발전했다. Parallelism 의 발전은 물리적 제약 (CPU 단일코어) 의 극복을 위한 하드웨어 진보 (멀티코어, GPU) 와 맞물려 성능 향상을 목적으로 발전해왔다. 최근에는 클라우드, 분산 시스템, AI/ML, IoT 환경의 확산으로 병렬성과 동시성을 동시에 활용하는 설계가 일반화되었다. 특히, 비동기 처리 모델(Promise, async/await, Rx, coroutine 등) 과 Actor Model, Dataflow 등의 설계 패턴은 실시간성과 확장성을 동시에 요구하는 현대 시스템에서 핵심 기술로 자리잡고 있다. 목적 및 필요성 성능 향상 및 처리량 극대화 ...

October 5, 2024 · 61 min · Me