shared-memory

POSIX 공유 메모리 개체에는 어떤 일관성이 보장됩니까?
shared-memory

POSIX 공유 메모리 개체에는 어떤 일관성이 보장됩니까?

Linux에서 POSIX 공유 메모리 개체[1]는 tmpfsvia를 사용합니다 /dev/shm. 결과적으로 A는 tmpfs"페이지 캐시에 완전히 존재"한다고 합니다[2](스왑이 아직 활성화되지 않았다고 가정합니다). mmapPOSIX SHM 개체(주소 공간에 프로그래밍됨)를 사용할 때 일관성/찢김 방지 보장이 무엇인지 궁금합니다 . 예: 두 프로세스 A와 B가 POSIX SHM 개체를 공유하고 두 프로세스 모두 mmap자신의 주소 공간에 쓴다고 가정합니다. 페이지가 4kB이고 개체가 페이지 정렬되어 ...

Admin

1GB보다 훨씬 작은 크기(예: 64MB)에 SHM_HUGE_1GB 사용이 미치는 영향
shared-memory

1GB보다 훨씬 작은 크기(예: 64MB)에 SHM_HUGE_1GB 사용이 미치는 영향

저는 Linux에서 공유 메모리를 실제로 사용하는(그리고 이해하지 못하는) 것에 비교적 익숙하지 않습니다. 저는 현재 공유 64MB 메모리의 연속 블록을 할당해야 하는 상황을 다루고 있습니다. 공유 메모리를 올바르게 사용하는 방법을 배우는 동안 나는 몇 가지 거대한 TLB 옵션을 우연히 발견 했습니다 shmget.SHM_HUGE_2MBSHM_HUGE_1GBhttps://man7.org/linux/man-pages/man2/shmget.2.html). 이제 나는 거대한 TLB가 대규모 연속 메모리에 매...

Admin

mmap을 사용하여 다른 파일의 메모리 하위 집합을 참조하는 파일을 만들 수 있습니까?
shared-memory

mmap을 사용하여 다른 파일의 메모리 하위 집합을 참조하는 파일을 만들 수 있습니까?

나는 두 개의 파일을 생성하는 프로그램을 작성하는 데 관심이 있습니다. 두 번째 파일은 첫 번째 파일의 "보기"가 되며, 수정되면 첫 번째 파일도 수정됩니다. mmap을 사용하여 이 작업을 수행할 수 있습니까? mmap을 사용하면 RAM에 공유 메모리를 가질 수 있지만 비휘발성 메모리(하드 드라이브라고도 함)에 공유 메모리가 필요하다는 것을 알고 있습니다. 파일이 매우 클 수 있다고 가정하기 때문에 첫 번째 파일을 복사하거나 RAM에 완전히 로드할 수 없습니다(GB). 두 번째 파일이 첫 번째 파일 ...

Admin

프로세스와 그 하위 프로세스를 종료하면 해제될 메모리를 보여주는 도구인가요?
shared-memory

프로세스와 그 하위 프로세스를 종료하면 해제될 메모리를 보여주는 도구인가요?

프로세스의 기억을 보여주는 것이 약간 까다롭다는 것을 알고 있습니다.사용기억은 공유되기 때문이죠. 그런데 메모리 진단을 보면 대개 메모리가 부족하기 때문입니다. 따라서 이러한 경우에 실제로 필요한 정보는 다음과 같습니다. 얼마나 많은 메모리가 필요합니까?출시된프로세스와 해당 하위 프로세스를 종료하면 어떻게 되나요? 나는 주어진 프로세스 세트를 종료하면 커널이 메모리의 어느 공유 부분을 해제할 수 있는지 알아야 하기 때문에 이 질문에 대답하기가 더 쉬울 것이라고 가정합니다. 검색을 좀 해봤지만 아직 유...

Admin

공유 메모리 개체를 사용하여 ftruncate가 메모리를 사용하지 않는 이유는 무엇입니까?
shared-memory

공유 메모리 개체를 사용하여 ftruncate가 메모리를 사용하지 않는 이유는 무엇입니까?

나는 공유 메모리 개체를 생성하고 이를 사용하여 ftruncate시스템의 리소스 제한에 관계없이 겉으로 보기에 어떤 크기라도 제공할 수 있다는 것을 발견했습니다. 아래 코드는 크기를 262TB로 설정하고 stat()해당 크기를 보고합니다. 그러나 262TB는 내가 /dev/shm설치한 것보다 크며 내 시스템에는 262TB의 메모리나 스왑을 사용할 수 없습니다. OOM 오류가 발생할 것으로 예상했지만 시스템 메모리 사용량에는 큰 변화가 없었습니다. 여기서 무슨 일이 일어나고 있는 걸까요? ftrunca...

Admin

kvm/qemu VM 게스트와 호스트를 구현하여 공유 메모리 연결을 통해 그들 사이에서 데이터를 수집하고 캐시하는 것이 가능합니까?
shared-memory

kvm/qemu VM 게스트와 호스트를 구현하여 공유 메모리 연결을 통해 그들 사이에서 데이터를 수집하고 캐시하는 것이 가능합니까?

구성: 호스트: Ubuntu:20.04 운영 체제 게스트: Ubuntu20.04 운영 체제 이 두 파일은 9p 파일 시스템을 사용하여 서로 통신합니다. 마운트 명령은 다음과 같습니다. mount -t 9p -o trans=virtio tmp_shared /mnt -oversion=9p2000.l 현재 진행상황은 다음과 같습니다. C 언어의 함수는 mmap9p 파일 시스템을 통해 동일한 파일의 메모리를 매핑하는 데 사용됩니다. 현재 호스트는 파일 메모리에 쓸 수 있지만 게스트는 변경 사항을 실시...

Admin

Linux에서 GPU와 공유되는 일부 시스템 메모리를 추가하는 방법은 무엇입니까?
shared-memory

Linux에서 GPU와 공유되는 일부 시스템 메모리를 추가하는 방법은 무엇입니까?

Windows 10에서 Linux Mint 21.1로 전환했습니다. 루트리스(와인 에뮬레이션)에서 GTA 5를 플레이하려고 했지만 Windows의 낮은 VRAM(2GB만)으로 인해 대부분의 맵이 누락되어 Linux에서 게임을 거의 플레이할 수 없습니다. 로드됨 공유 메모리가 있기 때문에 게임이 정상적으로 실행됩니다. Linux mint에서 활성화하는 방법을 모르겠습니다. 도움을 주시면 감사하겠습니다. 다음은 Windows의 공유 GPU 메모리의 예입니다. ...

Admin

두 프로세스가 파일(메모리 매핑 파일 또는 /dev/shm 파일)을 사용하지 않고 동일한 공유 메모리를 사용할 수 있습니까?
shared-memory

두 프로세스가 파일(메모리 매핑 파일 또는 /dev/shm 파일)을 사용하지 않고 동일한 공유 메모리를 사용할 수 있습니까?

현재 두 개의 서로 다른 프로세스에 동일한 공유 메모리를 제공하는 방법을 아는 유일한 방법은 메모리 매핑된 파일을 통하는 것입니다. 즉, 두 프로세스 모두 동일한 메모리 매핑된 파일을 열고 그 파일에서 쓰기/읽기이기 때문에 궁금합니다. OS가 디스크와 메모리를 교환해야 하기 때문에 이는 불이익/단점이 있습니다. 이것이 어리석은 질문이라면 미리 사과드립니다. 그러나 파일에 의해 지원되지 않고 프로세스 간에 순전히 공유 메모리가 있습니까? 그렇다면 프로세스는 메모리 매핑 파일이나 /dev/shm 파일을 ...

Admin

이미 생성된 공유 메모리 세그먼트와 함께 IPC_CREAT 사용
shared-memory

이미 생성된 공유 메모리 세그먼트와 함께 IPC_CREAT 사용

IPC_CREAT와 함께 플래그를 사용하면 어떤 일이 발생하는지 알아내려고 노력 중입니다 shmget(). 다른 프로세스에서 이미 생성된 공유 메모리 세그먼트의 키를 사용했습니다. 이 작업을 수행하면 호출 프로세스는 실제로 이 메모리 세그먼트를 이전 프로세스(물론 를 사용하여 연결함 shmat())와 공유했습니다. 그렇다면 이미 생성된 공유 메모리 세그먼트를 사용하면 IPC_CREAT메모리가 호출 프로세스와 공유된다는 결론을 내릴 수 있습니까? ...

Admin

shmget() 및 shmat()를 사용하여 메모리 공유
shared-memory

shmget() 및 shmat()를 사용하여 메모리 공유

shmget()우리는 공유 메모리를 사용하고 생성하여 프로세스에 연결할 수 있습니다 shmat(). Ubuntu 운영 체제에서 공유 메모리를 파괴하고 분리하지 않으면 어떻게 되나요? 제가 이해한 바에 따르면 시스템이 재부팅될 때까지 물리적 메모리에 계속 존재하지만 그 이유는 무엇입니까? 즉, 여러 개의 공유 메모리 블록을 생성하여 많은 공유 메모리 블록으로 물리적 메모리를 로드할 수 있지만 이렇게 하면 물리적 메모리가 비효율적으로 채워지게 될까요? ? ? ...

Admin

shmget() 및 shmat()
shared-memory

shmget() 및 shmat()

를 사용하여 shmget()특정 크기(바이트)의 공유 메모리 블록을 할당하고 를 사용하여 shmat()이 공유 메모리 블록을 호출 프로세스의 주소 공간에 연결합니다. 내 이해를 확인해야 합니다. 공유 메모리를 사용하고 생성하고 연결하는 프로세스 하나 shmget()와 shmat()해당 공유 메모리를 사용하여 주소 공간에 연결하는 다른 프로세스가 있습니다 shmat(). 이제 이 공유 메모리의 (사용된) 반환 주소는 shmat()가상 주소이기 때문에 두 프로세스에서 다릅니다. 그러나 공유 메모리 블록...

Admin

SHMAX/SHMALL에 의해 제어되지 않는 공유 메모리는 무엇입니까?
shared-memory

SHMAX/SHMALL에 의해 제어되지 않는 공유 메모리는 무엇입니까?

시스템이 OOM-killer에 도달할 때까지 캐시/공유 메모리가 계속 증가하는 상황을 디버깅하고 있습니다. 눈에 띄는 효과 없이 sysctl.conf에 shmax 및 shmall을 설정했습니다. shmax/shmall이 제대로 작동하려면 더 많은 기능을 활성화해야 합니까? 아니면 시스템의 일부가 이 제한을 초과할 수 있으며 이를 얼마나 강력하게 시행할 수 있습니까? 버그가 있는 사용자 공간 애플리케이션이나 커널/드라이버의 버그로 인해 발생할 수 있습니까? 우리가 디버깅한 애플리케이션은 그래픽과 비디오...

Admin

GPSD를 Chronyd 소스로 사용할 때 발생하는 문제
shared-memory

GPSD를 Chronyd 소스로 사용할 때 발생하는 문제

Ubuntu 18.04의 유일한 시간 소스로 PPS 동글 없이 USB GPS를 사용하려고 합니다. cgps가 3D 수정을 보고하므로 GPSD가 제대로 작동하는 것 같습니다. 하지만 GPS 정보를 제때에 볼 수 없었습니다. # gpsd -ND 8 /dev/ttyUSB0 gpsd:INFO: launching (Version 3.17) gpsd:IO: opening IPv4 socket gpsd:SPIN: passivesock_af() -> 3 gpsd:IO: opening IPv6 socket gp...

Admin

커널에서 사용자 공간으로 데이터 큐를 전달하는 방법은 무엇입니까?
shared-memory

커널에서 사용자 공간으로 데이터 큐를 전달하는 방법은 무엇입니까?

나는 현재 Linux용 모듈을 작성 중이며 커널에서 사용자 공간으로 데이터 큐를 전달하고 싶습니다. (사용자 공간에 있는 내 프로그램은 이 데이터를 읽는 일을 담당하며, 이 데이터를 파일에 쓰는 일을 담당합니다.) 내 방법은 사용자 공간에서 메모리 위치를 가져와 커널에서 해당 위치로 데이터를 푸시하는 것입니다. 이것을 어떻게 구현합니까? 더 좋은 방법이 있나요? 나는 초보자이고 어떤 가이드라도 좋을 것입니다. 이전에는 IOCTL 및 PROCFS를 사용하여 이 데이터를 사용자 공간에 푸시하려고 시도했지...

Admin

브라우저(Opera, Chromium...)가 공유 메모리에서 권한 거부(13) 오류를 일으키기 시작했습니다.
shared-memory

브라우저(Opera, Chromium...)가 공유 메모리에서 권한 거부(13) 오류를 일으키기 시작했습니다.

Manjaro/Arch Linux를 사용하고 있는데 다른 브라우저를 설치하고 싶습니다. 그러나 Opera를 설치하든 Chromium을 설치하든(팩맨을 통해) 앱 실행기 및 셸에서 실행할 때 항상 오류가 발생합니다. 달리기크롬나는 셸에서 다음을 얻습니다. $ chromium [11452:11452:0914/225931.419271:ERRO...

Admin