Skip to main content

Command Palette

Search for a command to run...

#concurrency

Articles tagged with #concurrency

  1. 비동기 프로그래밍

    비동기 프로그래밍이란? 비동기 프로그래밍이란 무엇인가? 작성한 순서대로 작동하는 프로그래밍 모델을 동기 프로그래밍(synchronous programming) 이라고 부른다. 반대로 비동기 프로그래밍은 작성한 순서대로만 작동하는 것은 아님을 의미하게 되겠다. 정확히는 독립해서 발생하는 이벤트에 대한 처리를 기술하기 위한 동시성 프로그래밍 기법을 총칭해서 비동기 프로그래밍이라고 한다. 비동기 프로그래밍을 이용하면 전화가 울리면 전화를 받는 것과 ...

    Jun 15, 20253 min read29
    비동기 프로그래밍
  2. 동기 처리 1-2

    의사 각성 의사 각성의 정의는 다음과 같다. 의사 각성: 특정한 조건이 만족될 때까지 대기 중이어야 하는 프로세스가 해당 조건이 만족되지 않았음에도 실행 상태로 변경되는 것 의사 각성은 어떤 경우에 일어나는가? 다음 코드는 의사 각성을 일으키는 C 코드 예시이다. #include <pthread.h> #include <signal.h> #include <stdio.h> #include <stdlib.h> #include <sys/types.h>...

    Jun 15, 20256 min read16
  3. 동기 처리+동시성에서의 문제점

    여기서는 배리어 동기, readers-writers lock, 동시성 특유의 문제점과 버그 일부분에 대해 다룬다. 배리어 동기 배리어 동기란 공유 변수를 증가시키다 공유 변수가 어떤 일정한 수에 도달하면 배리어를 벗어나 처리를 수행하는 방식이다. 이러한 배리어 동기를 사용하면 진행 순서를 보장할 수 있는데 예컨대 스레드 A가 스레드 B보다 먼저 넘어가면 안 된다고 가정하자. 이러한 경우에 A가 포함된 모든 1단계 스레드가 배리어에 도달해야만 ...

    Jun 8, 202512 min read16
  4. 동기 처리 1

    여기서는 동기 처리가 필요한 이유(레이스 컨디션)을 설명하고 뮤텍스에서 조건 변수까지를 설명한다. 레이스 컨디션(race condition) 레이스 컨디션은 한국어로는 경합 상태라고 불리며 여러 프로세스가 동시에 공유하는 자원에 접근함에 따라 일어나는 예상치 않은 이상이나 상태를 의미한다. 레이스 컨디션의 예로 아래 그림을 들 수 있다. 아래 그림은 공유 메모리상의 변수를 여러 프로세스가 증가시키는 상황을 나타낸다, 프로세스 B가 2를 쓰는 ...

    Jun 1, 20258 min read11