티스토리 뷰
반응형
🔐 로킹 단위(Locking Granularity):
한번에 쓸 수 있는 범위를 어디까지로 정할까?
멀티스레드, 병렬 처리, 데이터베이스...
이런 환경에서 자주 듣는 말 중 하나가 바로 "락(Lock)"입니다.
공통된 데이터를 여러 작업이 동시에 만지면 충돌이 일어나니까,
먼저 쓰는 사람만 쓰도록 잠그는 장치가 필요한 것이죠.
그런데 이런 락(lock)을 걸 때 가장 중요한 선택이 있습니다.
🔍 “어디까지 잠글까?”
이 질문에 대한 답이 바로 오늘 이야기할 로킹 단위(Locking Granularity)입니다.
✅ 로킹 단위란?
로킹 단위는
"한번에 쓸 수 있도록 허용할 범위"를 어디까지로 정할지를 말합니다.
조금 더 기술적으로는,
락을 통해 보호하는 데이터 범위의 크기입니다.
🧃 쉽게 이해하는 비유 – 편의점 냉장고 자물쇠
편의점에 큰 냉장고가 있다고 생각해보세요.
사람들이 안 부딪치게 하려면, 자물쇠를 걸어야겠죠?
🧊 1. 큰 자물쇠 하나
- 냉장고 전체를 잠금
- 한 사람이 사용하면, 나머지는 기다려야 함
➡ 굵은 락(Coarse-Grained Lock)
➡ 병행성 낮음, 단순하고 안전함
🧊 2. 칸마다 자물쇠
- 콜라 칸, 사이다 칸, 주스 칸… 각각 자물쇠
- 서로 다른 칸은 동시에 여러 사람이 꺼낼 수 있음
➡ 가느다란 락(Fine-Grained Lock)
➡ 병행성 높음, 빠르지만 구현 복잡
💻 프로그래밍에서의 로킹 단위
✔ 큰 단위로 잠그기
std::mutex mtx;
void insert(int value) {
std::lock_guard lock(mtx); // 전체 잠금
my_vector.push_back(value);
}
- 모든 작업이 같은 락을 사용 → 병렬 처리 어려움
- 하지만 안전하고 단순
✔ 작은 단위로 잠그기
std::mutex locks[BUCKET_COUNT];
void insert(int key, int value) {
int i = hash(key) % BUCKET_COUNT;
std::lock_guard lock(locks[i]); // 일부만 잠금
buckets[i].insert(key, value);
}
- 서로 다른 데이터는 동시에 처리 가능
- 하지만 락이 많아지면 복잡하고 위험도↑
⚖️ 로킹 단위의 선택이 중요한 이유
- 너무 크게 잠그면: 안전하지만 느려요
- 너무 작게 잠그면: 빠르지만 복잡해져요
📘 시험에 나오는 표현으로 다시 보기
✔ 기출문제 예시
1. 로킹 단위가 크면 병행성 수준이 낮아진다. ✅
2. 로킹 단위가 크면 병행 제어 기법이 복잡해진다. ❌
3. 로킹 단위가 작으면 로크(lock)의 수가 적어진다. ❌
4. 로킹은 파일 단위로만 이루어지며, 레코드와 필드는 로킹 단위가 될 수 없다. ❌
👉 정답은 1번!
로킹 단위가 크면 동시에 쓸 수 있는 작업이 줄어들기 때문에
병행성(동시 처리 능력)이 낮아집니다.
🎯 요약
✍️ 한 문장으로 기억하기
“로킹 단위는, 한번에 쓸 수 있도록 허용하는 범위를 어디까지로 할지를 정하는 것”이다.
반응형
'자격증 > 정보처리기사' 카테고리의 다른 글
BCNF (Boyce-Codd Normal Form) 정규란? (0) | 2025.05.05 |
---|---|
관계 대수(Relational Algebra)란? (0) | 2025.05.05 |
형상 관리(Configuration Management)란? (0) | 2025.05.04 |
검증과 확인의 차이 - 소프트웨어 테스트의 핵심 (0) | 2025.05.04 |
마스터-슬레이브 프로세스란? 쉽게 이해하는 분산 시스템 구조 (0) | 2025.05.04 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 열혈프로그래밍
- 백준
- 행동심리학
- 파이썬
- 윤성우
- 학습이론
- 통계학
- 인지부조화
- 강화학습
- 코딩테스트
- C
- 일문따
- 보세사
- 통계
- 일본어문법무작정따라하기
- 데이터분석
- K-MOOC
- 학습심리학
- 티스토리챌린지
- c++
- 류근관
- Python
- 회계
- 물류관리사
- 정보처리기사
- 오블완
- 행동주의
- 조건형성
- 일본어
- 심리학
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
글 보관함
반응형