# Semaphore

45개의 포스트
post-thumbnail

스핀락(Spinlock), 뮤텍스(Mutex), 세마포(Semaphore)

안녕하세요.우원입니다.프로세스와 스레드에 대해서 공부하던중스핀락, 뮤텍스, 세마포에 대해서 정리가 필요해서포스팅을 진행하려고 합니다.메모리에 할당되어 실행중인 프로그램CPU 가동률의 최대화를 위해서 프로세스를 순차적으로 실행하는 CPU 스케쥴링 기법CPU 응답도의 최대

2022년 11월 3일
·
0개의 댓글
·
post-thumbnail

교착상태(Dead Lock)

경쟁상태(Race Condition) : Thread / Process의 타이밍에 따라 결과값이 달라질 수 있는 상태임계영역(Critical Section) : Thread / Process가 동시에 접근해서 안되는 곳Critical Section을 동시에 수행하지 않

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

Race Condition, 세마포어, 뮤텍스

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

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

시스템 프로그래밍(9)

process / thread의 동기화 방법자원 공유(critical section 포함) 시 사용한다.block / wake-up 알고리즘을 사용(mutual exclusion)process가 critical section에 접근할 때, 이미 다른 process가 접

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

Semaphore를 사용한 네트워크 통신 동기화

네트워크 통신 동기화

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

Kernel - Mutex와 Spinlock 이해하기

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

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

[42Seoul] - philosophers

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

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

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

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

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

[Java] 멀티 Thread 프로그래밍에서의 동기화

critical section은 두 개 이상의 Tread가 동시에 접근하는 경우 문제가 생길 수 있기 때문에 동시에 접근할 수 없는 영역이다.semaphore는 특별한 형태의 시스템 객체이며 get/release 두 개의 기능이 있다.한 순간 오직 하나의 Thread만

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

Semaphore docs V1 번역본

Semaphore는 이더리움 사용자가 본래의 신원을 드러내지 않고 이전에 가입했던 집단의 멤버십을 증명할 수 있게 해주는 영지식 가제트이다.

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

상호배제(Mutex)

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

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

Swift Concurrency: Behind the scenes Part. 02

앞에서는 Swift concurrency가 어떻게 동작하는지 확인했다. 이번에는 Swift concurrency를 채택할 때 주의해야 하는점, 그리고 Actor를 통한 Synchronization에 대해 알아보자.

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

Concurrency

클린 코드 13장, 동시성이다. 동시성과 깔끔한 코드는 양립하기 아주 어렵다. 그럼에도 불구하고, 동시성은 왜 필요할까?

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

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

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

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

[운영체제] 세마포어(Semaphore)

상호 배제를 위한 알고리즘으로, 상호 배제의 원리를 보장하는 데 사용여러 개의 프로세스가 동시에 그 값을 수정하거나 접근하지 못함연산 처리 중에 인터럽트 되어서는 안됨E.J.Dijkstra가 제안한 방법일반적으로 실수형 변수 사용 X프로세스 사이의 동기를 유지P 연산과

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

philosophers bonus 프로세스간 통신

philosophers 과제의 bonus 파트는 철학자들을 process로 구현해야 하는데, process간 자원은 공유되지 않으므로 만약 한 철학자가 죽었을 경우 다른 철학자들에게 자신이 죽었음을 알릴 필요가 있다.이 통신 방법을 대부분의 사람들은 kill 함수로

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

세마포어와 뮤택스

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

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

[OS] 세마포어와 뮤텍스

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

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