시그널링을 사용하여 프로세스 간 통신을 하는 방법

2024. 4. 6. 12:25코딩 도구/운영체제

반응형

시그널링을 사용하여 프로세스 간 통신을 하는 방법

컴퓨터 시스템에서의 신호 및 인터럽트 처리는?


운영 체제에서 제공되는 소프트한 인터프로세스 메커니즘 '신호'를 통해 인터프로세스 통신 방법을 알아봐요.
인터럽트가 발생할 때 운영 체제가 없다면 프로그램 안에서 직접 인터럽트 핸들러를 연결하고 처리할 수 있지만, 운영 체제가 있는 경우, 하드웨어 인터럽트와 해당 핸들러를 운영 체제에 의해 관리해요.
운영 체제는 인터럽트 신호를 응용 프로그램으로 전달하고 해석하여 관리하는데, 이를 빠른 인터럽트나 인터럽트 관리자의 한 형태로 생각할 수 있어요.
하드웨어 인터럽트 외에도 운영 체제는 지원 구성요소 사이의 통신을 위해 소프트웨어 인터럽트도 사용해요.

소프트웨어 시그널링과 프로세스 커뮤니케이션 패턴?


프로세스 간 통신의 원시적 메커니즘, 시그널은 많은 정보를 주지 않지만 상호 통신을 가능케 해.
예시로, 시그널은 다른 프로세스에 알림을 주는 데 주로 사용돼 이벤트 주도형 프로세스 간 통신을 실현하죠.
시그널을 이용한 운영체제 기능을 자세히 보고 싶다면, Emanuel leave C 라이브러리를 확인할 수 있어요.
이러한 내용은 운영 체제의 기본 기능을 설명하며, 계속해서 이를 탐구하면 컴퓨터 시스템에 대한 폭넓은 지식을 얻을 수 있어.

시그널 핸들러 등록 방법과 동작 방식


시그널 핸들러를 등록할 때 첫 번째 매개변수는 등록하려는 시그널의 인터럽트 유형이 아니라 인터럽트 유형의 종류이에요.
시그널 핸들러를 재정의하여 프로그램을 즉시 종료하는 기본 동작을 바꿀 수 있고, 이때 두 번째 매개변수는 함수 핸들러예요.
핸들러 함수는 시그널이 발생했을 때 호출되며 반환 값이 없지만, 입력 값으로 시그널 값을 받아요.
하나의 핸들러 함수를 여러 다른 신호 번호 또는 시그널 식별자에 등록할 수 있기 때문에, 시그널 코드를 명확히 하고, 이를 구분하기 위해 신호 코드가 있어요.
시그널 코드는 프로그램 종료를 대신해 직접 프린트하여 사용자에게 확인 여부를 묻는 방식으로 작동해요.

신호 처리와 제어의 예제


사용자가 'Y'를 입력하면 프로그램이 종료돼요.
사용자가 'Y'를 입력하지 않으면 핸들러가 종료되고 제어는 main 함수로 돌아가 계속 실행돼요.
프로그램이 무한 루프에 빠지면 Ctrl+C를 누르면 핸들러 함수가 실행돼 종료 여부를 물어봐요.
사용자가 'Yes'를 입력하면 프로세스가 종료돼, 'No'를 입력하면 종료되지 않아요.
외부에서 생성된 이벤트나 신호가 프로그램으로 전달돼, 이를 통해 응용 프로그램의 제어 흐름이 변경될 수 있어요.

신호와 타이머 신호의 활용은?


간단한 예제로부터 시작하여 Signal 1 to C와 같은 신호의 활용법을 설명해.
두 번째 예시에서는 다양한 신호 종류와 타이머 신호 활용을 설명하며, 사용되는 API 및 구조체에 집중해.
구조체를 생성하고 타이머 신호를 활용하는 코드와 그에 따른 동작 과정을 다루고, 시그널이 발생할 때의 동작 과정과 관련 용어를 설명해.

인터벌 타이머 구현 방법


일정 간격의 아이를 등록해야 해요.
TV를 먼저 배치한 다음 TV를 다시 배치하죠.
여기에는 마이크로초가 있으므로 1과 사진을 가진 100,000 값을 넣어요.
이 조합은 1.1초를 만들어내요.
이 값을 'T'로 지정된 시간 값에 넣어요.
'T'를 지정된 간격 타이머에 전달하고, 여기에는 간격 타이머로 코드를 배치해요.
시간 간격의 구조에 의해 지정된 시간 간격이 주어지고 무한 루프로 빠져요.
API를 사용해 타이머를 설정하고, 타이밍 이벤트나 타이밍 시그널에 등록된 핸들러 함수를 호출해요.
프로그램을 Ctrl+C를 눌러 중지할 수 있어요.
이때 프로그램이 중지되면 동시에 두 번째 실행이 종료돼요.
 
'아이' : 전체적인 문맥으로 볼 때, 여기서 '아이'는 시그널링 과정에서 등장하는 'T1길이'를 나타내는 것으로 추정됩니다.강의에서는 '아이'를 통해 프로세스 간 통신 과정에서 발생하는 시간 간격(1.1초)을 의미하는 것으로 사용되었습니다.이 정보를 바탕으로, '아이'는 시그널링을 위해 설정하는 시간 간격을 제어하는 중요한 변수임을 알 수 있습니다.
출처: https://mkisos.tistory.com/entry/IPC-tutorials-signal1c-및-signal2c [MK 실험실:티스토리]

다음 비디오에서 다룰 내용은?


이것은 신호 2번이었어요.
이 방향으로 고정합시다.
다음 비디오에서는 신호를 사용한 2가지 예시를 더 다룰 예정이에요
 
 
 

이 글 자세한 필기 정리본

https://mkisos.tistory.com/entry/IPC-tutorials-signal1c-%EB%B0%8F-signal2c

 

IPC tutorials : signal1.c 및 signal2.c

signal1.c 및 signal2.c https://www.youtube.com/watch?v=ODixeqqD-Kc 이 강의에서는 시그널링을 사용하여 프로세스 간 통신을 하는 방법을 살펴봅니다. 시그널링은 운영 체제에서 제공하는 소프트 인터럽트 메커

mkisos.tistory.com

 

반응형

'코딩 도구 > 운영체제' 카테고리의 다른 글

'파이프'를 이용한 프로세스간 통신 메커니즘  (14) 2024.04.08
프로세스 간 통신과 시그널 처리  (7) 2024.04.07
IPC: pipe2.c  (13) 2024.04.05
IPC: pipe1.c  (15) 2024.04.05
IPC: signal3.c 및 signal4.c  (2) 2024.04.04