코딩요
쉬운코드 기술 블로그
코딩요
전체 방문자
오늘
어제
  • 분류 전체보기 (54)
    • 개발자로 성장하기 (11)
    • 컴공 (25)
      • 운영체제 (12)
      • 알고리즘 (1)
      • 데이터베이스 (11)
      • 네트워크 (1)
    • 쉬운코드 (15)
      • 쉬운코드 소개 (6)
      • 쉬운코드 영상 보는 법 (3)
      • 쉬운코드 정정 보고서 (1)
      • 쉬운코드 스토리 (4)
      • 기타 이것저것 (1)
    • 면접 tip (3)

공지사항

  • 아이폰 앱에서는 슈퍼땡스 보내지 말아주세요ㅠㅠ
  • 쉬운코드 멤버십을 소개합니다
  • 쉬운코드 운영 철학

인기 글

hELLO · Designed By 정상우.
글쓰기 / 관리자
코딩요

쉬운코드 기술 블로그

동기화 관련 영상 전체 흐름 파악하기
쉬운코드/쉬운코드 영상 보는 법

동기화 관련 영상 전체 흐름 파악하기

2022. 10. 6. 17:31

* 이 글은 쉬운코드에 올린 동기화(synchronization) 관련 영상들이 개념적으로 어떻게 연결되는지 전체 그림을 설명하기 위한 목적으로 작성됐습니다

 

* 위에서부터 차례대로 영상을 보시는 것을 추천합니다

 

 


 

 

프로세스 & 스레드 개념 파악하기

 

이 부분을 이미 잘 알고 있다면 뛰어넘어도 괜찮은 부분이다

 

스레드가 어떤 이유에도 대중적으로 사용됐는지 그리고 프로세스와 어떤 관계에 있는지를 알고 있어야

 

동기화가 왜 필요한지 설명할 때 더 잘 이해할 수 있다

 

👉 " 프로세스 & 스레드 설명 " 영상 보러 가기

 

 

 

 

여러 스레드가 같은 데이터에 접근했을 때 생기는 일

 

같은 프로세스에 속한 여러 스레드는

 

따로 어떤 조치 없이도 데이터를 공유해서 쓰는 것이 가능하다

 

대신 공유 데이터를 그냥 막 변경하다 보면 예상치 못한 결과가 나올 수 있다

 

그리고 이 문제를 해결하는 것이 동기화(synchronization)다

 

영상에서는 동기화 없이 동작할 때 생길 수 있는 일을 살펴보고,

 

이를 방지하기 위한 장치인 동기화 개념을 배우게 된다

 

(critical section과 mutual exclusion 개념도 함께 배우게 된다)

 

👉 " 동기화 하지 않을 때 생기는 일 " 영상 보러 가기

 

👉 " 운영체제에서 락(lock)을 배우는 이유 " 글 보러 가기

 

 

 

 

 

 

 

동기화에 사용되는 락 종류

 

동기화를 위해 사용되는 것이 락(lock)이다

 

락의 종류는 다양한데 대표적으로

 

spinlock

 

mutex

 

semaphore 

 

이렇게 3대장이 존재한다

 

영상을 통해 이 세 개의 락이 무엇인지 간단한 코드와 함께 배우게 된다

 

👉 " 동기화 3 대장 " 영상 보러 가기

 

 

 

 

 

모니터

 

3대장 중에 뮤텍스와 condition variable을 조합하여

 

개발자가 락을 보다 더 사용하기 좋게 고도화한 것이 모니터(monitor)다

 

자바에서는 모든 객체가 모니터를 하나씩 가지고 있도록 설계했다

 

이번 영상에서는 모니터가 어떻게 동작하는지 살펴보고

 

자바에서는 모니터가 어떻게 적용됐는지도 설명한다

 

👉 " 모니터 " 영상 보러 가기

 

 

 

 

 

데드락

 

락을 써서 동기화를 하다 보면

 

여러 스레드가 서로 락을 쥐기 위해 기다리게 되면서

 

더 이상 진행하지 못하는 상태인 데드락(deadlock : 교착상태)에 빠지게 된다

 

이 영상에서는 데드락의 발생 조건과 어떻게 해결할 수 있는지를 다룬다

 

👉 " 데드락 " 영상 보러 가기

 

 

 

 

 


 

 

 

 

운영체제에서 배우는 동기화의 이론적인 베이스를 탄탄하게 하기 위해 만든 영상입니다

 

데이터베이스에서 트랜잭션을 배울 때 락이 사용되기 때문에

 

이 내용을 잘 알고 있으면 나중에 데이터베이스의 isolation을 배울 때도 조금 더 편하게 이해할 수 있습니다

 

 

 

 

 

쉬운코드는 언제나 기본에 충실합니다

 

 

 

저작자표시 비영리 변경금지
    '쉬운코드/쉬운코드 영상 보는 법' 카테고리의 다른 글
    • 운영체제 영상들 전체 흐름 파악하기
    • 트랜잭션 영상들 전체 흐름 파악하기
    코딩요
    코딩요
    8년차 백엔드 개발자가 이해하기 쉽게 설명합니다. 배워서 남주는 블로그! 이해하기 쉬운 기술 블로그! 쉬운코드입니다 :)

    티스토리툴바