Your #1 FANsite for the Spice Girls and David Beckham! ~
Welcome to Zigazig-ha! at zigazig-ha.com. Your #1 source dedicated to the talented Spice Girls and David Beckham. Our goal is to bring you all the latest news, including upcoming singles, appearances, TV shows and more. We bring you all the oldest and newest images from TV projects, appearances, captures, magazine scans and more..you name it you have it! Whatever you're here for, we hope you find something to interest you and hope you choose to return soon. Enjoy your stay!
Posted By Admin    August 2nd, 2019    0

이것은 리눅스에서 프로세스 간 통신 (IPC)에 대 한 시리즈의 첫 번째 문서입니다. 이 시리즈는 C의 코드 예제를 사용하여 다음과 같은 IPC 메커니즘을 명확히 합니다: Linux 시스템은 공유 메모리에 대해 레거시 시스템 V API와 최신 POSIX API의 두 개의 별도 API를 제공합니다. 그러나 이러한 API는 단일 응용 프로그램에서 혼합해서는 안 됩니다. POSIX 접근 방식의 단점은 기능이 아직 개발 중이며 코드 이식성에 영향을 주는 설치된 커널 버전에 따라 달라지는 것입니다. 예를 들어 POSIX API는 기본적으로 공유 메모리를 메모리 매핑 된 파일로 구현합니다. POSIX에서 공유 메모리는 백업 파일 없이 구성할 수 있지만 이식성에 영향을 미칠 수 있습니다. 내 예는 메모리 액세스 (속도) 및 파일 저장소 (지 속성)의 이점을 결합 하는 백업 파일과 POSIX API를 사용 합니다. 총 4개의 데이터 복사본이 필요합니다(읽기 2개 및 쓰기 2개). 따라서 공유 메모리는 둘 이상의 프로세스가 메모리 세그먼트를 공유하도록 하는 방법을 제공합니다. 공유 메모리를 사용하면 입력 파일에서 공유 메모리로, 공유 메모리에서 출력 파일까지 두 번만 데이터가 복사됩니다. 표준 I/O 라이브러리에는 파일의 배타적 잠금과 공유 잠금을 검사하고 조작하는 데 사용할 수 있는 fcntl이라는 유틸리티 함수가 포함되어 있습니다. 이 함수는 프로세스 내에서 파일을 식별하는 음수가 아닌 정수 값인 파일 설명자(file 설명자)를 통해 작동합니다. (다른 프로세스의 파일 설명자가 동일한 물리적 파일을 식별할 수 있습니다.) 파일 잠금을 위해 Linux는 fcntl 주위의 얇은 래퍼인 라이브러리 함수 무리를 제공합니다.

첫 번째 예제에서는 fcntl 함수를 사용하여 API 세부 정보를 노출합니다. 클라이언트 부분은 서버와 유사합니다. 상태가 채워지때까지 기다립니다. 그런 다음 클라이언트는 데이터를 검색하고 상태를 TAKEN으로 설정하여 데이터가 수행되었음을 서버에 알린습니다. 다음은 클라이언트 프로그램입니다. 이 서버 프로그램 client.c의 사본을 다운로드하려면 여기를 클릭하십시오. shmdt(): 공유 메모리 세그먼트를 완료하면 shmdt()를 사용하여 프로그램에서 자체적으로 분리해야 합니다. int shmdt (보이드 *shmaddr); memwriter 프로그램이 성공적으로 실행되면 시스템은 백업 파일을 만들고 유지 관리합니다. 내 시스템에서 파일은 /dev /shm/shMemEx이며 shMemEx는 공유 저장소에 대한 내 이름 (헤더 파일 shmem.h에 있음)으로 제공됩니다. memwriter 및 memreader 프로그램의 현재 버전에서, 문: 여기에 명령줄 프롬프트와 함께 동일한 터미널에서 시작 된 두 프로그램의 출력: memreader, memwriter 처럼, 에 그것의 이름을 통해 세마포에 액세스 sem_open으로 호출합니다.

그러나 memreader는 memwriter가 초기 값이 0인 세마포를 증분할 때까지 대기 상태로 전환됩니다. 서버는 ftok()를 사용하여 키를 생성하고 공유 메모리를 요청하는 데 사용합니다. 공유 메모리가 데이터로 채워지기 전에 상태가 NOT_READY로 설정됩니다. 공유 메모리가 채워진 후 서버는 상태를 채우는 상태로 설정합니다. 그런 다음 서버는 상태가 TAKEN될 때까지 대기하므로 클라이언트가 데이터를 가져온 것입니다. 다음은 memwriter 및 memreader 프로그램이 공유 메모리를 통해 통신하는 방법에 대한 개요입니다: 대기가 끝나면 memreader는 공유 메모리에서 ASCII 바이트를 읽고 정리하고 종료합니다. shmget 및 mmap의 두 가지 방법이 있습니다. 나는 mmap에 대해 이야기 할 것이다, 그것은 더 현대적이고 유연하기 때문에,하지만 당신은 오히려 오래된 스타일의 도구를 사용하는 경우 남자 shmget (또는이 튜토리얼)을 살펴 수 있습니다. mmap에 대한 첫 번째 인수는 NULL이며, 이는 시스템이 가상 주소 공간에서 메모리를 할당할 위치를 결정한다는 것을 의미합니다.

Uncategorized

Comments are closed.