정보기술(84)
-
운영체제 락 개념과 동기화 기법 (Mutex, RLock, RWLock, 스핀락, 세마포어 비교 요약 정리)
🔍 Mutex, RLock, RWLock, 스핀락, 세마포어 비교 요약 정리운영체제(OS)에서 멀티스레딩 동기화 기법으로 사용되는 뮤텍스(Mutex), 재진입 가능 락(RLock), 읽기-쓰기 락(RWLock), 스핀락(Spinlock), 세마포어(Semaphore) 의 차이를 정리했습니다.1. 개념 요약 동기화 기법 개념 특징사용 예시Mutex (뮤텍스)하나의 스레드만 임계 영역 접근 가능다른 스레드는 Lock이 해제될 때까지 대기 (Blocking)단순한 공유 자원 보호RLock (재진입 가능 락)같은 스레드가 여러 번 Lock 가능Lock 획득 횟수만큼 Unlock 필요재귀 호출, OOP에서 동일 객체 내 여러 메서드 사용RWLock (읽기-쓰기 락)여러 개의 스레드가 동시에 읽기 가능, 쓰기는 ..
2025.02.26 -
운영체제 락 개념과 동기화 기법 (3. 고급 락(Spinlock & Semaphore) / 스핀락(Spinlock)과 세마포어(Semaphore))
📖 스핀락(Spinlock)과 세마포어(Semaphore)운영체제에서 멀티스레딩(Multithreading) 환경에서는 공유 자원(Shared Resource)에 대한 동기화(Synchronization) 가 필수적입니다.스핀락(Spinlock) 과 세마포어(Semaphore) 는 동기화를 위한 중요한 기법으로, 각각의 목적과 사용 방식이 다릅니다.✅ 스핀락(Spinlock)🔹 스핀락이란?락(🔒)이 해제될 때까지 CPU가 계속 바쁜 대기(Busy-Waiting)하면서 반복적으로 확인하는 방식.pthread_spinlock_t을 사용하여 구현.빠른 락 해제가 예상되는 경우 뮤텍스(Mutex)보다 성능이 좋을 수 있음.멀티코어 CPU 환경에서 커널 락과 같은 저수준 동기화에서 자주 사용.🔹 스핀락의 ..
2025.02.26 -
운영체제 락 개념과 동기화 기법 (2. 기본 락(Lock) / 2-3. 읽기-쓰기 락(Read-Write Lock, RWLock))
📖 2-3. 읽기-쓰기 락(Read-Write Lock, RWLock)읽기-쓰기 락(Read-Write Lock, RWLock)은 읽기 작업은 여러 개의 스레드가 동시에 수행할 수 있지만, 쓰기 작업은 오직 하나의 스레드만 수행할 수 있도록 제한하는 동기화 기법입니다.멀티스레딩 환경에서 읽기 작업이 많고, 쓰기 작업이 상대적으로 적은 경우 성능을 향상시키는 데 유용합니다.✅ 읽기-쓰기 락이란?🔹 기본 개념읽기(Read) 락: 여러 개의 스레드가 동시에 공유 자원을 읽을 수 있음.쓰기(Write) 락: 하나의 스레드만 공유 자원을 수정할 수 있으며, 쓰기 중에는 어떤 스레드도 접근할 수 없음.pthread_rwlock_t 를 사용하여 구현.🔹 읽기-쓰기 락의 필요성일반 Mutex를 사용하면 쓰기뿐만 ..
2025.02.26 -
운영체제 락 개념과 동기화 기법 (2. 기본 락(Lock) / 2-2. 재진입 가능 락(Reentrant Lock, RLock))
📖 2-2. 재진입 가능 락(Reentrant Lock, RLock)재진입 가능 락(Reentrant Lock, RLock) 은 같은 스레드가 여러 번 Lock을 획득할 수 있도록 허용하는 락입니다.일반적인 Mutex는 한 번만 Lock을 획득할 수 있으며, 같은 스레드가 다시 Lock을 시도하면 데드락(Deadlock) 이 발생합니다.하지만, RLock을 사용하면 동일한 스레드가 여러 번 Lock을 획득해도 데드락 없이 정상적으로 실행됩니다.✅ 재진입 가능 락이란?🔹 기본 개념같은 스레드가 여러 번 Lock을 획득할 수 있도록 허용하는 락.락을 획득한 횟수만큼 Unlock을 호출해야 해제됨.PTHREAD_MUTEX_RECURSIVE 속성을 설정하여 사용할 수 있음.🔹 일반 Mutex와 RLock ..
2025.02.26 -
운영체제 락 개념과 동기화 기법 (2. 기본 락(Lock) / 2-1. 뮤텍스(Mutex))
📖 2-1. 뮤텍스(Mutex)뮤텍스(Mutex, Mutual Exclusion)는 여러 개의 스레드가 동시에 공유 자원에 접근하는 것을 방지하는 동기화 기법입니다.운영체제(OS) 내부에서 지원하는 기본적인 동기화 기법으로, 한 번에 하나의 스레드만 자원에 접근할 수 있도록 보장합니다.✅ 뮤텍스란?🔹 뮤텍스의 개념Mutex는 상호 배제(Mutual Exclusion) 를 의미하며, 한 번에 오직 하나의 스레드만 공유 자원(임계 영역)에 접근할 수 있도록 보장합니다.스레드가 Mutex를 획득(lock)하면, 다른 스레드는 Mutex가 해제(unlock)될 때까지 대기 상태에 머뭅니다.pthread_mutex_t를 사용하여 구현되며, 운영체제가 직접 제공하는 동기화 도구 중 하나입니다.🔹 뮤텍스의 특징..
2025.02.26 -
운영체제 락 개념과 동기화 기법 (1. 운영체제에서 동기화 / 1-2. 임계 영역(Critical Section)과 해결 방법)
📖 1-2. 임계 영역(Critical Section)과 해결 방법멀티스레딩 환경에서 여러 개의 스레드가 동시에 실행될 때 공유 자원(Shared Resource)에 동시에 접근하면 데이터 손상(Data Corruption) 또는 예상치 못한 동작이 발생할 수 있습니다.이러한 문제가 발생하는 코드 영역을 임계 영역(Critical Section) 이라고 하며, 이를 해결하기 위해 동기화 기법(Synchronization Techniques) 이 필요합니다.✅ 임계 영역(Critical Section)이란?🔹 정의임계 영역(Critical Section)이란 여러 개의 스레드가 동시에 실행될 경우, 충돌이나 오류가 발생할 가능성이 있는 코드 영역을 의미합니다.예제: 임계 영역이 필요한 상황데이터베이스 ..
2025.02.26