GoWoong의 개발 블로그
close
프로필 배경
프로필 로고

GoWoong의 개발 블로그

  • 분류 전체보기 (174)
    • 크래프톤 정글 (82)
    • 크래프톤 정글 (컴퓨터 시스템: CSAPP) (57)
      • 3장 프로그램의 기계수준 표현 (16)
      • 6장 메모리 계층구조 (6)
      • 7장 링커 (6)
      • 8장 예외적 제어 흐름 (7)
      • 9장 가상 메모리 (16)
      • 11장 네트워크 프로그래밍 (6)
    • 클라우드 (4)
      • [AWS] AWS IoT Core (4)
      • DevOps (0)
    • Deep Dive (16)
      • CS (15)
    • 백엔드 개발 (0)
      • 파이썬 (0)
      • 자바 스프링 (0)
    • 자격증 공부 (5)
      • AWS Cloud Practitioner (2)
      • 정보처리기사 (1)
      • AWS SAA-C03 (2)
    • 앱 개발 (5)
      • Flutter (5)
    • 문제 기록 (0)
    • 커뮤니티 참석 후기 (2)
    • 일상 기록 (1)
  • 홈
  • 글쓰기

[Deep Dive] 쓰레드와 병렬 프로그래밍 - 4탄 동기화 기법 : 읽기/쓰기 락 (Read-Write Lock)

pthread_rwlock_t: 읽기/쓰기 락 (Read-Write Lock)개념읽기 작업은 동시에 여러 개 가능,쓰기 작업은 오직 하나만 가능하도록 제어하는 락.다수의 reader는 동시에 접근 가능단 하나의 writer만 접근 가능하고, 이 동안 reader도 접근 불가읽기 작업이 많은 경우 성능 향상 가능.핵심 동작 원리락 요청허용 조건읽기 락쓰기 락이 잡혀 있지 않으면 여러 개 허용쓰기 락아무도 락을 잡고 있지 않아야 허용 (reader, writer 모두 없어야 함)관련 함수 (POSIX Threads)pthread_rwlock_t rwlock = PTHREAD_RWLOCK_INITIALIZER;pthread_rwlock_init(&rwlock, NULL);pthread_rwlock_rdlock..

  • format_list_bulleted Deep Dive/CS
  • · 2025. 5. 3.
  • textsms

[Deep Dive] 쓰레드와 병렬 프로그래밍 - 3탄 동기화 기법 조건 변수 (Condition Variable)

조건 변수란?조건 변수(Condition Variable)는 공유 자원의 상태가 어떤 조건을 만족할 때까지 쓰레드를 기다리게 하거나, 그 조건이 만족되면 다른 쓰레드를 깨우는 동기화 도구다.조건 변수의 동작 구조조건 변수는 반드시 mutex와 함께 사용된다.전형적인 흐름1. 쓰레드 A:pthread_mutex_lock(&mutex);while (조건이 false) pthread_cond_wait(&cond, &mutex); // 대기 상태 진입// 조건이 만족되면 계속 진행pthread_mutex_unlock(&mutex);2. 쓰레드 B (조건 만족시키는 측):pthread_mutex_lock(&mutex);// 조건을 true로 만드는 작업pthread_cond_signal(&cond); // ..

  • format_list_bulleted Deep Dive/CS
  • · 2025. 5. 3.
  • textsms

[Deep Dive] 쓰레드와 병렬 프로그래밍 - 2탄 동기화 기법 Mutex

1. pthread_mutex_t: 상호배제(Mutual Exclusion)개념여러 쓰레드가 공유 자원에 동시 접근하지 못하도록 막는 도구.한 번에 하나의 쓰레드만 임계구역(Critical Section)을 실행할 수 있도록 보장.주요 함수pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; // 정적 초기화pthread_mutex_init(&lock, NULL); // 동적 초기화pthread_mutex_lock(&lock); // 락 획득 (다른 쓰레드가 잡고 있으면 대기)pthread_mutex_unlock(&lock); // 락 해제pthread_mutex_destroy(&lock); // 소멸 (동적으로 생성..

  • format_list_bulleted Deep Dive/CS
  • · 2025. 5. 3.
  • textsms

[Deep Dive] 쓰레드와 병렬 프로그래밍 - 1탄 개념 이해

정글 8주차에 웹서버를 구현하다 보니 쓰레드를 사용해서 병렬 처리를 해야 했다. 그래서 당장 구현을 할 수준으로만 이해를 한 뒤 구현을 끝낸 지금 다시 쓰레드에 대해 깊게 이해를 하려고 한다. 그래서 이번 Deep Dive에서는 프로세스가 아닌 쓰레드를 주로 다룰 생각이다.1. 프로세스 vs 쓰레드 차이프로세스(Process)정의: 실행 중인 프로그램. 운영체제로부터 독립된 주소 공간, 자원(File descriptor, Stack, Heap 등)을 부여받음.특징:각각의 프로세스는 커널에서 독립적으로 관리됨 (PID, 메모리 맵 등).프로세스 간 데이터 공유가 어렵다 (보통 IPC, Shared Memory, Pipe 등 필요).생성/문맥전환 비용이 큼 (Context switch: PCB 저장/복원 포..

  • format_list_bulleted Deep Dive/CS
  • · 2025. 5. 3.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (174)
    • 크래프톤 정글 (82)
    • 크래프톤 정글 (컴퓨터 시스템: CSAPP) (57)
      • 3장 프로그램의 기계수준 표현 (16)
      • 6장 메모리 계층구조 (6)
      • 7장 링커 (6)
      • 8장 예외적 제어 흐름 (7)
      • 9장 가상 메모리 (16)
      • 11장 네트워크 프로그래밍 (6)
    • 클라우드 (4)
      • [AWS] AWS IoT Core (4)
      • DevOps (0)
    • Deep Dive (16)
      • CS (15)
    • 백엔드 개발 (0)
      • 파이썬 (0)
      • 자바 스프링 (0)
    • 자격증 공부 (5)
      • AWS Cloud Practitioner (2)
      • 정보처리기사 (1)
      • AWS SAA-C03 (2)
    • 앱 개발 (5)
      • Flutter (5)
    • 문제 기록 (0)
    • 커뮤니티 참석 후기 (2)
    • 일상 기록 (1)
최근 글
인기 글
최근 댓글
태그
  • #aws #iot
  • #AWS 자격증
  • #Cloud Practitioner
  • #IOT
  • #AWS
  • #CLF-C01
  • #serverless
  • #AWS Community Day
  • #AWSKRUG
  • #saa-c03
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바