# mutex

39개의 포스트

Race Condition, 세마포어, 뮤텍스

공유 자원과 임계구역 공유 자원(shared resource) 공유 자원(shared resource)은 여러 프로세스가 공동으로 이용하는 변수, 메모리, 파일 등을 말한다.공동으로 쓰기 때문에 프로세스들의 공유 자원 접근 순서를 정하여 예상치 못한 문제가 발생하지 않

2022년 8월 27일
·
0개의 댓글
·
post-thumbnail

Kernel - Mutex와 Spinlock 이해하기

Linux Kernel에서 동시성(Cuncurrency)문제를 해결하기 위해 많이 사용하는 Mutex와 Spinlock의 차이에 대해 알아보자.

2022년 8월 17일
·
0개의 댓글
·
post-thumbnail

philosophers

1.무엇을 하는 과제인가? : 프로그램을 어떻게 하면 더 효율적으로 사용할 수 있는지에 대해서 공부하는 과제이다. thread와 process를 사용해서 프로그램을 좀 더 빠르고 효율적으로 만들 수 있는 방법에 대해서 고민하는 과제이다. [Mandatory] -.위

2022년 8월 15일
·
0개의 댓글
·
post-thumbnail

[42서울] philosophers : 식사하는 철학자 문제

과제에서 허용하는 함수를 정리하고 나서, 이제 과제가 어떤 문제인지 공부가 필요할 것 같다. 식사하는 철학자(Dining Philosophers)는 전형적인 운영체제의 교착상태(Deadlock)를 설명하는 문제이다. 이번 과제는 교착상태를 뮤텍스와 세마포어를 활용해 해

2022년 8월 14일
·
0개의 댓글
·
post-thumbnail

[42서울] philosophers : 스레드와 스레드 함수 알기

이전에 정리했던 \[TIL : 42] 운영체제, 프로세스와 스레드와 멀티 스레드에 잘 정리되어 있다. 스레드가 여러 개일 경우, 공유자원 안의 동일한 자원에 동시에 접근하게 되면 데이터 무결성이 깨지게 된다. 엉뚱한 값을 읽거나 수정하게될 수 있다. 이렇게 동시에 접근

2022년 8월 10일
·
0개의 댓글
·

상호배제(Mutex)

다중 프로그래밍 기법에서 둘 이상의 프로세스가 운영될 때 서로 공유하게 되는 자원을 말한다.프로세스 간의 통신에 필요한 매개 변수의 역할로 임계구역을 사용할 수도 있다.자원을 공유하는 각 프로세스는 베타적으로, 동시에 사용할 수 없으며 특정 프로세스가 독점하게 해서도

2022년 7월 1일
·
0개의 댓글
·

[프로세스 동기화] 세마포어

뮤텍스를 통한 프로세스 동기화에서 멀티코어 cpu인 경우 스핀락을 통해서 문맥교환 없이 스레드들은 뮤텍스 락을 얻기 위해 경합하고 임계구역에 접근하는 방법을 알아보았다. 하지만 cpu를 획득 하기 위해서 끊임없이 반복문을 실행하고 있는 바쁜대기(busy waiting

2022년 6월 24일
·
0개의 댓글
·

[프로세스 동기화] 뮤텍스

피터슨의 해결안은 이론적으로는 프로세스 동기화를 위한 3가지 조건을 만족하지만 연산의 하드웨어 구현상의 문제로 인해서 스레드들이 임계구역으로 접근하기 위한 권한을 얻는 과정에서 경합상황이 발생하게 되었다.이런 구현상의 한계는 운영체제를 디자인 할 때 부터 "임계구역으로

2022년 6월 24일
·
0개의 댓글
·
post-thumbnail

뮤텍스(Mutex)와 세마포어(Semaphore)의 차이

뮤텍스와 세마포어를 알아보기 전 임계구역(Critical Section)를 먼저 알아보겠습니다여러 프로세스 혹은 스레드가 작업을 수행하면서 공유된 자원을 건드리게 될 수 있는데, 이때 프로그램 코드 상에서 공유 자원에 접근하는 부분을 임계 구역이라고 합니다. 이렇게 임

2022년 6월 11일
·
0개의 댓글
·

코루틴 동시성 문제

위 예제에서 100개의 coroutine을 띄우고 각 코루틴은 전달받은 action을 1000번 수행한다.값이 보장되게 하려면 어떻게 해야할까?자바의 volatile 키워드 또는 코틀린의 @Volatile 애노테이션을 변수 선언시 지정할 수 있다. 사전적 의미로는 ‘휘

2022년 5월 21일
·
0개의 댓글
·

세마포어와 뮤택스

세마포어는 여러 프로세스들의 공유 자원에 대한 접근 제어와 동기화를 지원하기 위한 정수로 선언된 동기화 도구이다.

2022년 4월 13일
·
0개의 댓글
·

[OS] 세마포어와 뮤텍스

멀티 스레딩 환경에서는 전역변수, 힙 영역 등 스레드들끼리 공유되는 자원이 존재합니다.이런 공유 자원들에 접근하는 코드 영역을임계영역 이라고 합니다. 임계영역은 상호배제(각 스레드는 공유 자원의 손상을 방지하기 위해 배타적으로(독점적으로) 공유 자원을 사용해야함) 되어

2022년 3월 30일
·
0개의 댓글
·

Deadlock Detect 프로그램(C언어) -2

Concurrent Programming에서 여러 프로세스(스레드)에 공유되는 데이터는 exclusive하게 사용되야 한다. 예를 들어 Thread A, Thread B가 실행중이고 공유된 데이터 x가 있다고 가정하자. x는 0으로 초기화된 값을 가지는 변수라고 가정하

2022년 3월 16일
·
0개의 댓글
·

Deadlock Detect 프로그램(C언어) -1

C언어의 pthread_mutex_lock, pthread_mutex_unlock을 interpositioning하여 Deadlock을 detect하는 프로그램을 만든다. 가장 먼저 pthread_mutex_lock와 pthread_mutex_unlock을 내가 만든

2022년 3월 15일
·
0개의 댓글
·