소통하는 개발자 Sean
article thumbnail
상호배제 & 뮤텍스,세마포어,스핀락 개념
Knowledge 2023. 11. 7. 17:19

👉 상호배제(Mutual Exclusion) Mutual - 서로의, Exclusion - 배제 주로 병행 프로그래밍, 동시성 제어와 관련이 있으며 특정 프로세스가 공유 자원을 사용 중일 때 다른 프로세스가 이 자원에 접근하지 못하도록 막는 것을 의미합니다. 결국은 공유를 하면 안되는 자원(Resource)의 동시 사용을 피하는 방법 중 하나입니다. 이는 경쟁 조건을 방지하고 일관된 상태를 유지하는 데 중요합니다. 이를 위해 뮤텍스, 세마포어, 모니터 등의 동기화 메커니즘이 사용됩니다. 스레드의 경우, 프로세스와 달리 메모리의 Stack 영역을 제외한 부분을 다른 스레드와 공유하는데, 이 부분에서 스레드간 동시 사용을 피하고 싶을 때 주로 사용한다. 동시 접근을 막기 위해 프로그래머에 의해 구현된 코드 ..

article thumbnail
프로세스, 스레드 둘의 차이는?
Knowledge 2023. 11. 7. 16:54

프로세스와 스레드의 차이를 설명하실 수 있나요? 👉 프로세스란 프로그램 어떤 일을 수행하기 위해 만들어진 명령 모음 명령어 모음이 파일로 빌드 되어 보조 기억 장치에 저장되어 있는 정적인 상태 프로그램 실행 명령을 내리면 CPU는 보조 기억 장치에서 해당 프로그램을 꺼내 메인 메모리에 올려놓고 코드를 해석하며 작업을 시작합니다. 프로그램이 메인 메모리로 올라와 실행되고 있는 상태를 프로세스라고 합니다. 병행 처리란 작업을 조금씩 나누어 실행하면서 컴퓨터가 마치 여러 작업을 동시에 실행하는 것처럼 보이게 하는 처리 방법입니다. 햄버거를 만들 때 치킨버거, 새우버거, 치즈버거로 진행 순서를 바꾸는 것을 컨텍스트 스위칭이라고 합니다. 컴퓨터에서는 컨텍스트 스위칭이 매우 빠르게 일어나기 때문에 사람의 눈에는 마..

article thumbnail
코어와 프로세스의 관계
Knowledge 2023. 11. 7. 16:34

문득 ‘싱글코어는 하나의 프로세스만 실행하는 것일까’ 라는 궁금증에 생겼습니다. 이를 이해하기 위해서 CPU-Core, Process-Thread를 알아보겠습니다. CPU와 Core Process and Thread 👉 CPU와 Core | 프로세서(Processor)인 CPU와 코어(Core)는 1:1 혹은 1:n의 관계를 가진다. CPU (Central Processing Unut, 컴퓨터의 뇌 역할을 담당하는 하드웨어) 기억, 연산, 제어 등 컴퓨터의 논리적 사고를 담당하는 일종의 ‘뇌’역할을 담당합니다. 물리적 계산을 진행하는 ‘코어(Core)’를 연산회로 유닛으로 가지고 있습니다. Core CPU에 있어서 실제로 작업을 담당하는 주요 연산회로 입니다. ❓ CPU는 프로세서인가요 ‘프로세서’라는 ..