임계영

포스트: 2|조회수: 0|PERSON
Items

Posts

2 posts

[리눅스커널] 커널동기화: 레이스 컨디션은 왜 발생할까?

Guillermo Austin Kim|2019년 6월 24일

이전 소절에서 레이스 컨디션과 임계 영역의 개념에 대해서 소개했습니다. 이 내용을 읽으니 자연스럽게 다음과 같은 의문이 생깁니다. " 레이스 컨디션과 동시성은 왜 발생할까?" 이번 시간에는 그 이유에 대해 살펴보겠습니다. SMP(symmetric multiprocessing)레이스 컨디션이 발생하는 첫 번째 이유는 리눅스 시스템에서 SMP(symmetric multiprocessing)를 적용하기 때문입니다. 여기서 SMP란 무엇일까요? "하나의 시스템에 다수의 CPU가 한 개의 메모리를 쓰는 컴퓨터 시스템 아키텍처이다." 이렇게 SMP에 대한 정의를 읽고 나면 SMP를 적용한 후 레이스 컨디션이 왜 발생하는지 잘 이해가 가지 않습니다. 소프트웨어적 보면 SMP 시스템에서는 다음과 같이

[라즈베리파이] 커널동기화 - 임계영역(Critical Section)이란

Guillermo Austin Kim|2018년 9월 7일

리눅스 커널이나 운영체제에서 임계영역(Critical Section)이나 커널 동기화를 설명할 때 화장실을 예를 많이 듭니다. 하나밖에 없는 화장실 문에 있는 자물쇠를 잠그고 용무를 보는 상황입니다. 위 상황을 리눅스 커널 동기화 과정과 빗대서 생각해 봅시다. 첫 번째, 자물쇠는 화장실 문에 있는 잠금장치입니다. 누구나 화장실에 들어갈 때 화장실 문을 잠급니다. 화장실에 들어갈 때 먼저 화장실 문에 있는 자물쇠가 잠겨 있나 확인하는 습관입니다. 화장실 잠금장치는 여러 가지 종류가 있듯 리눅스 커널에도 스핀락, 뮤텍스 기법에 따라 자물쇠 잠금 방법이 다릅니다. 두 번째, 화장실에서 용무는 딱 한 사람만 볼 수 있습니다. 화장실에서 두 사람이 동시에 들어갈 수 없습니다. 유일하게 한 사람이 일을 보는 순