반응형 시스템프로그래밍2 [C언어] Signal 프로그래밍에서의 Race Condition과 해결법 시그널 프로그래밍에서의 Race Condition과 해결법시그널은 비동기적으로 동작하기 때문에, 잘못 설계된 시그널 핸들러는 Race Condition을 유발할 수 있다. Race Condition은 여러 흐름(프로세스나 스레드)이 공유 자원에 동시 접근하면서 예상치 못한 동작을 초래하는 문제를 말한다. 본 글에서는 시그널 핸들러로 인해 발생할 수 있는 Race Condition의 원리, 해결 방법, 그리고 관련 코드를 중심으로 자세히 설명한다.Race Condition의 발생 관련 개념Race Condition은 다수의 흐름(프로세스나 스레드)이 공유 자원에 동시에 접근하거나 수정하려고 할 때 발생할 수 있는 문제를 말한다. 이를 방지하려면 공유 자원에 대한 Critical Section(임계영역)을 .. 2024. 10. 17. [c언어] 멀티 프로세스 프로그래밍 멀티프로세스의 이해멀티프로세스는 운영 체제에서 하나의 프로그램이 여러 개의 프로세스를 생성하여 병렬 작업을 수행하는 기법입니다.CPU는 여러 프로세스 또는 스레드가 마치 '동시에' 실행되는 것 처럼 행동합니다.메모리 분리: 각 프로세스는 독립적인 메모리 공간을 할당받습니다. CPU는 메모리 상에 각각의 프로세스를 실행하는데 필요한 코드와 데이터를 로드합니다. 프로세스 간 메모리 영역은 운영체제에 의해 보호되며, 서로 접근할 수 없습니다.싱글 코어 CPU의 경우 (중요!) 1. CPU멀티 프로세스 실행: 실제로 싱글 코어 CPU는 하나의 프로세스만 실행할 수 있습니다. 따라서 CPU는 시간 분할(Time Slice) 방식으로 각 프로세스에 CPU 시간을 할당하고 빠르게 전환합니다. 이는 멀티태스킹처럼 보이.. 2024. 10. 17. 이전 1 다음