[리눅스 프로그래밍] IPC 프로그래밍
- 최초 등록일
- 2005.01.03
- 최종 저작일
- 2004.10
- 18페이지/ MS 워드
- 가격 1,000원
소개글
리눅스에서 프로세스 간 통신을 하기 위한 IPC(InterProcess Communication) 의 종류 및 각각의 구현법에 대해 상세히 설명하였습니다. 그리고, 메세지 큐 및 공유메모리를 이용하여 실제 프로그래밍을 한 내용및 설명이 있습니다.
목차
1. 제목
2. 목적
3. 기초지식
4. 준비물
5. 실험실습의 구체적 절차
6. 결론 및 토의 사항
7. 문제점 및 해결 방안
본문내용
6. 결론 및 토의 사항
- 이번 실험에서는 IPC의 개념과 각각의 종류와 원리를 알고 직접 응용하여 프로세스간의 통신을 위한 프로그램을 작성하였다. 이번 실험에서 주로 IPC 중에서도 메시지 큐 와 공유메모리를 사용하였다. 메시지 큐를 사용하여 파일을 전송하는 프로그램을 작성하였는데, 메시지 큐를 구분하기 위해 메시지 큐에 특정 이름을 부가한 뒤 클라이언트에서는 특정 메시지 큐로부터 데이터를 받아들이도록 하였다. 그리고 공유 메모리를 사용하여 구구단을 계산하는 프로그램을 작성하였다. 공유 메모리는 메모리의 특정 공간을 생성한 뒤 프로세스가 사용할 공간과 연결 하여 각 프로세스에서 해당 특정 공간을 동시에 공유할 수 있도록 하였다. 이밖에 프로세스간 통신을 위한 방법에는 여러 가지가 있는데 프로세스간 통신을 위한 기본 원리는 모두 같으므로 다른 프로세스간 방법을 사용할 때도 응용이 가능할 것으로 생각된다.
7. 문제점 및 해결 방안
- 메시지 큐를 이용한 파일 전송 프로그램을 작성하면서 그다지 어려운 문제는 발생하기 않았다. 그러나 공유 메모리를 이용한 구구단 프로그램을 작성하면서 자식 프로세스와 부모 프로세스간의 동기화 문제 발생하였다. 즉, 한쪽 프로세스가 해당 공유 메모리에 접근하고 있을 때는 다른 프로세스는 공유 메모리에 접근하면 안되므로, 자식 프로세스와 부모 프로세스간의 적절한 시간 간격이 필요하였다. 이를 위해서 자식 프로세스가 수행하고 있을 때 부모 프로세스는 sleep(1)을 통하여 잠시 수행을 멈추었다가 자식 프로세스가 수행이 끝나면 수행하도록 하고, 자식 프로세스 또한 부모 프로세스가 계산하여 화면에 출력하고 있을 때는 sleep(1)을 이용하여 잠시 수행을 멈추도록 하여 문제점을 해결하였다.
참고 자료
없음