728x90 반응형 리눅스 시스템 프로그래밍5 리눅스 시그널과 핸들링: SIGINT, SIGTERM, SIGKILL을 이해하고 활용하기 리눅스 운영체제에서 시그널(Signal)은 프로세스 간 또는 커널이 프로세스에 비동기적으로 전달하는 인터럽트(Interrupt) 메커니즘입니다. 시그널을 활용하면 프로세스를 종료하거나 특정 동작을 수행하도록 제어할 수 있습니다.이번 글에서는 리눅스 시그널의 개념과 주요 시그널 종류, 그리고 시그널 핸들링(handling) 방법을 코드 예제와 함께 설명하겠습니다.1. 리눅스 시그널(Signal)이란?운영체제에서 시그널은 특정 이벤트가 발생했을 때 프로세스에 전달되는 비동기 알림입니다.시그널은 프로세스가 자발적으로 받을 수도 있고, 커널, 다른 프로세스, 또는 사용자가 직접 보낼 수도 있습니다.✅ 시그널이 사용되는 주요 상황Ctrl + C (SIGINT): 터미널에서 프로세스 중단kill 명령어 (SIGTE.. 리눅스 시스템 및 네트워크 프로그래밍/시스템 프로그래밍 2025. 2. 3. 리눅스 IPC(프로세스 간 통신) 기법: Pipe, FIFO, 메시지 큐, 공유 메모리, 소켓의 원리와 활용 리눅스에서 IPC(Inter-Process Communication, 프로세스 간 통신)은 서로 다른 프로세스가 데이터를 주고받고 협력할 수 있도록 하는 기술입니다.운영체제에서 프로세스는 독립적인 주소 공간을 가지므로, 기본적으로 하나의 프로세스에서 다른 프로세스의 메모리에 접근할 수 없습니다. 따라서 파이프, 공유 메모리, 메시지 큐, 소켓 등의 IPC 기법을 활용하여 데이터를 교환해야 합니다.이번 글에서는 리눅스에서 제공하는 주요 IPC 기법을 개념부터 코드 예제까지 자세히 다뤄보겠습니다.1. IPC(프로세스 간 통신)의 필요성운영체제에서 멀티프로세스 환경은 일반적이며, 개별 프로세스 간 협업이 필요할 때 IPC를 사용합니다.✅ IPC의 주요 사용 사례부모-자식 프로세스 간 데이터 공유독립적인 프로세.. 리눅스 시스템 및 네트워크 프로그래밍/시스템 프로그래밍 2025. 2. 3. 리눅스 프로세스 생성과 관리: fork, exec, wait의 동작 원리와 활용 리눅스에서 프로세스는 프로그램을 실행하는 독립적인 실행 단위입니다. 시스템의 모든 작업은 프로세스를 통해 수행되며, 새로운 프로세스를 생성하고 관리하는 것은 시스템 프로그래밍에서 필수적인 개념입니다.이번 글에서는 리눅스에서 프로세스를 생성하고 관리하는 주요 시스템 콜(fork, exec, wait, exit 등)의 동작 원리를 설명하고, 이를 활용하는 방법을 코드와 함께 다뤄보겠습니다.1. 프로세스 개념프로세스(Process)는 실행 중인 프로그램을 의미하며, 운영체제에서 CPU와 메모리를 할당받아 독립적으로 동작합니다.PID(Process ID): 각 프로세스는 고유한 ID를 가집니다.부모 프로세스와 자식 프로세스: 한 프로세스가 다른 프로세스를 생성하면, 원래의 프로세스를 부모 프로세스, 새로 생성된.. 리눅스 시스템 및 네트워크 프로그래밍/시스템 프로그래밍 2025. 2. 3. 비동기 I/O와 고급 파일 처리 기법: 리눅스에서 효율적인 데이터 처리하기 리눅스에서 파일 I/O를 효율적으로 처리하는 것은 시스템 성능에 큰 영향을 미칩니다. 일반적인 파일 입출력은 동기식(Synchronous) 방식으로 동작하며, 데이터가 읽히거나 쓰일 때까지 프로세스가 대기해야 합니다. 그러나 비동기 I/O(Asynchronous I/O)를 활용하면 대기 시간을 줄이고 시스템의 전체적인 처리량을 증가시킬 수 있습니다.이번 글에서는 비동기 I/O 모델과 고급 파일 처리 기법을 소개하고, 이를 활용하는 방법을 코드와 함께 설명하겠습니다.1. 비동기 I/O란?비동기 I/O(Asynchronous I/O, AIO)는 파일 읽기/쓰기가 완료될 때까지 프로세스가 블로킹되지 않는 입출력 방식입니다. 리눅스에서 제공하는 주요 비동기 I/O 모델은 다음과 같습니다.I/O 방식설명 예제 시.. 리눅스 시스템 및 네트워크 프로그래밍/시스템 프로그래밍 2025. 2. 3. 파일 디스크립터와 입출력 시스템 콜 리눅스에서 파일, 소켓, 파이프 등 다양한 리소스를 다룰 때 파일 디스크립터(File Descriptor, FD) 개념을 이해하는 것이 중요합니다. 파일 디스크립터는 운영체제가 프로세스와 리소스를 연결하는 핵심 구조이며, 이를 통해 입출력 시스템 콜을 효율적으로 활용할 수 있습니다.이번 글에서는 파일 디스크립터의 개념을 설명하고, 리눅스에서 제공하는 주요 입출력 시스템 콜(open, read, write, close, lseek 등)의 동작 원리와 사용법을 살펴보겠습니다.1. 파일 디스크립터란?파일 디스크립터(File Descriptor, FD)는 리눅스 운영체제가 열려 있는 파일이나 소켓 등을 식별하기 위해 프로세스에 할당하는 정수 값입니다. 모든 프로세스는 파일 디스크립터를 통해 리소스에 접근합니다... 리눅스 시스템 및 네트워크 프로그래밍/시스템 프로그래밍 2025. 2. 3. 이전 1 다음 💲 추천 글 728x90 반응형