HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🐣
프론트엔드 데브코스 3기 교육생
/
📚
3기 스터디 가이드
/
📒
CS 학습 스터디
/
📃
프로세스 동기화 (승준)
📃

프로세스 동기화 (승준)

개요

notion image
  • synchronization, 동기화 : 여러 프로세스 혹은 쓰레드가 거의 동시에 공유 데이터를 조작하기 위해 실행되어도, 공유 데이터의 일관성을 유지하는 것이다.(즉 기댓값에 맞게 데이터 결과가 나오도록 하는 것)
  • race condition, 경쟁 조건 : 여러 프로세스 혹은 쓰레드가 거의 동시에 같은 데이터를 조작할 때, 타이밍이나 접근 순서에 따라 데이터의 결과가 달라질 수 있는 상황이다.
  • critical section, 임계 영역 : 공유 데이터의 일관성을 보장하기 위해, 하나의 프로세스 혹은 쓰레드만 진입해서 실행할 수 있도록 하는 영역이다. 코드가 critical section이다. race condition은 경쟁하여 결과가 달라질 수 있는 상황 자체를 말한다.
 
critical section 문제를 해결하기 위한 3가지 조건
  • mutual exclusion, 상호 배제 : 한번에 하나의 프로세스 혹은 쓰레드만 임계 영역에서 실행 가능하다.(임계 영역으로 들어갈 수 있다)
  • progress, 진행 : 임계 영역에 들어간 프로세스 혹은 쓰레드가 없을 때, 프로세스들 혹은 쓰레드들이 임계 영역으로 들어가려고 할 때 그 중 하나는 들어갈 수 있게 해야 한다. 그냥 진행이 계속 될 수 있게 해야 한다고 이해하자.
  • bounded waiting, 한정된 대기 : 어떤 프로세스나 쓰레드가 임계 영역에 못 들어가고 무한하게 대기하고 있으면 안된다는 조건이다.
 

Spin Lock - busy waiting

notion image
  • test_and_set?
lock이라는 데이터의 현재 값을 읽어내고, lock이라는 데이터의 값을 true로 바꿔주는 과정을 하나의 인스트럭션으로 처리한다. 이렇게 하나의 인스트럭션(cpu가 실행할 수 있는 가장 작은 단위) 이렇게 함으로써 정말 동시에 두 개의 프로세스가 lock을 얻으려고 요청해도, cpu가 알아서 같은 메모리 영역에는 동기화시켜서 동시에 실행시키지 않는다.
notion image
 

Mutex - block/wakeup

notion image
 
  • 무조건 mutex가 spin lock에 비해 좋은가?
notion image
notion image
 

Semaphore - block/wakeup

notion image
 
  • mutex, 이진 semaphore의 차이
priority donation, priority inheritance
 
mutex
p1. - 10 lock
p2 - 10
 
priority inversion
 
세마포어는 순서 동기화가 가능하다.
notion image
 
 

 

참고

스핀락(spinlock) 뮤텍스(mutex) 세마포(semaphore) 각각의 특징과 차이 완벽 설명! 뮤텍스는 바이너리 세마포가 아니라는 것도 설명합니다!
#스핀락 #뮤텍스 #세마포 #동기화 #spinlock #mutex #semaphore #synchronization 프로세스나 스레드의 동기화를 위해 자주 사용되는 세 가지 종류의 락 매카니즘! * 스핀락 * 뮤텍스 * 세마포 각각의 특징과 차이를 자세하게 설명합니다!! 혹시 뮤텍스와 바이너리 세마포는 같은 것으로 알고 계신가요? (저도 한 때는 그랬습니다만) 사실은 그렇지 않습니다! 요 내용도 자세히 설명드려요~! 00:00 오프닝 00:10 race condition, 동기화, 임계 영역 뜻 00:51 mutual exclusion 어떻게 보장할 수 있나? 01:19 spinlock (feat. CPU의 도움) 07:08 spinlock의 단점 07:31 mutex 11:12 mutex가 spinlock 보다 항상 좋은가? 13:05 semaphore 18:03 mutex와 binary semaphore는 같은가? 21:47 참고사항 22:13 클로징
스핀락(spinlock) 뮤텍스(mutex) 세마포(semaphore) 각각의 특징과 차이 완벽 설명! 뮤텍스는 바이너리 세마포가 아니라는 것도 설명합니다!
https://www.youtube.com/watch?v=gTkvX2Awj6g
스핀락(spinlock) 뮤텍스(mutex) 세마포(semaphore) 각각의 특징과 차이 완벽 설명! 뮤텍스는 바이너리 세마포가 아니라는 것도 설명합니다!
운영체제
이화여자대학교. 반효경. 운영체제는 컴퓨터 하드웨어 바로 위에 설치되는 소프트웨어 계층으로서 모든 컴퓨터 시스템의 필수적인 부분이다. 본 강좌에서는 이와 같은 운영체제의 개념과 역할, 운영체제를 구성하는 각 요소 및 그 알고리즘의 핵심적인 부분에 대해 기초부터 학습한다.
운영체제
http://www.kocw.net/home/cview.do?cid=3646706b4347ef09
운영체제
세마포어
세마포어
https://ko.wikipedia.org/wiki/세마포어