운영체제
-
Mutex vs Semaphore :: 마이구미운영체제 2017. 1. 31. 16:51
이번글은 뮤텍스와 세마포어에 대해 다뤄본다.원본 글을 번역 참고 후 글을 작성했다. 뮤텍스와 세마포어 둘 사이의 차이점은 무엇인가? 뮤텍스는 언제 사용하고 세마포어는 언제 사용할까? 뮤텍스와 세마포어의 운영체제의 용어로는 커널 자원에서의 동기화 서비스로 제공된다. (동기화 프리미티브라고도 불린다)우리는 왜 이러한 동기화 프리미티브 필요한가?오직 한가지로는 충족시켜줄 수 없는가?이러한 질문들을 대답하기 위해서는 우리는 몇가지 키워드들을 이해할 필요가 있다.원자성과 임계 구역에 대한 글을 읽어오길 바란다.(2개의 키워드뿐만 아니라 관련된 많은 키워드가 사용되니 꼭 참고바란다) 먼저 생산자-소비자 문제를 보자. 생산자-소비자 문제(producer-consumer problem)는 여러 개의 프로세스를 어떻게 ..
-
임계 구역(Critical Section)이란? :: 마이구미운영체제 2017. 1. 30. 15:09
이번 글은 임계 구역에 대해 다뤄본다.원문을 번역한 글이다. 임계 구역이란 파일, 입출력, 공유 데이터 등 원자적으로 실행할 필요가 있는 명령문 또는 코드의 일부 영역이다. (원자적에 대한 글 참고) 병렬 프로그래밍에서 만약 하나의 스레드가 공유 데이터의 값을 변경을 시도하는 시점에 다른 스레드가 그 값을 읽기를 시도한다면 예측하지 못한 결과가 초래한다. 그렇기에 공유 데이터의 접근에 동기화를 해줘야한다.고급 언어에서는 동기화를 위한 지침들을 제공해준다. (관련 글) 이러한 임계 구역은 지정되어야할 영역에 지정되지 않을 경우 위와 같이 예측하지 못한 결과를 초래한다.이러한 문제를 임계 구역 문제라고 불린다. 해결법은 간단히 아래와 같이 간단히 나타낼 수 있다. acquireLock(); Process C..
-
Atomic Operation이란? :: 마이구미운영체제 2017. 1. 28. 16:48
이번 글은 Atomic Operation 에 대해 다뤄본다.Atomic Operation은 무엇인가?Atomic Operation의 개념은 재진입성, 임계 구역, 스레드 안전, 동기화 프리미티브 등 관련 용어를 이해하는 데 많은 도움을 준다. Atomic Operation의 정의는 단순하게 Atomicity(원자성)은 깨지지 않는 성격이기에 즉, 중단되지 않는 연산이라고 볼 수 있다.깨지지 않는 것과 중단되지 않는 것의 의미를 동일하게 생각하기 어려울 수 있다. 예를 통해 알아보자.만약 두 명의 사용자가 프린터를 출력하기 명령을 내린다면, 각 인쇄는 중단되지 않고 한번에 실행되어야한다.만약 프린터 드라이버가 두 사용자의 자료를 부분적으로 보내게 된다면, 예상하지 못한 결과를 초래하게 된다.그러므로 프린터..