mmap

mmap()은 모든 페이지 오류 후에 페이지 테이블을 업데이트합니까?
mmap

mmap()은 모든 페이지 오류 후에 페이지 테이블을 업데이트합니까?

mmap()에 대한 연구를 통해 mmap은 페이지 오류로 인해 가상 메모리 주소에 도달한 경우에만 요청 페이징을 사용하여 데이터를 커널 페이지 캐시에 복사한다는 것을 알고 있습니다. 페이지 캐시보다 큰 파일을 읽는 경우 페이지 캐시의 일부 오래된 페이지를 재활용을 위해 교체 해야 합니다 . 그래서 제 질문은 페이지 테이블이 업데이트되어 해당 가상 메모리 주소를 캐시의 오래된 오래된 페이지(이제 새 데이터가 포함되어 있음) 주소에 매핑됩니까?입니다. 어떻게 이런일이 일어 났습니까? 이것이 mmap() ...

Admin

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

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

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

Admin

Linux 4.x에서 4kB RSS를 구현하는 방법은 무엇입니까?
mmap

Linux 4.x에서 4kB RSS를 구현하는 방법은 무엇입니까?

저는 90년대 후반부터 오픈 소스 IRC 봇의 개발자/유지관리자로 활동해 왔습니다. 목표는 항상 작은 메모리 공간 내에서 최대한 다양하고 유용하게 만드는 것입니다. 2000년대에는 유용한 프로그램을 4kB RSS로 압축한 개념 증명 코드도 작성했는데, 이는 2.4 커널에서 구현하기 어렵지 않았습니다. 나는 init와 Agetty를 사용하여 이를 달성했습니다. 즉, 단일 4kB 메모리 페이지 내에서 상주하여 실행되도록 했습니다. 이제 어느 날 봇에게 메모리 사용량을 보고하도록 요청했을 때 봇은 다음과 ...

Admin

프로세스 메모리 레이아웃 - 힙, 데이터 및 mmap 영역의 차이점
mmap

프로세스 메모리 레이아웃 - 힙, 데이터 및 mmap 영역의 차이점

나는 온라인에서 Linux 프로세스의 메모리 레이아웃에 대해 상충되거나 불분명한 설명을 많이 보았습니다. 대개일반적으로 사용되는 사진좋다: 또 다른 공통점이 있다설명하다말할 수있다: 데이터 세그먼트에는 미리 정의된 값이 있고 수정될 수 있는 전역 또는 정적 변수만 포함됩니다. 힙에는 일반적으로 데이터 세그먼트가 끝나는 곳에서 시작되는 힙 섹션이라고 하는 메모리 부분에 저장되는 동적으로 할당된 데이터가 포함됩니다. 그리고반품: 일반적으로 힙은 C 런타임에 의해 생성 및 관리되는 특정 메모리 영역...

Admin

x86 Linux에서 감시 레지스터를 읽는 방법은 무엇입니까?
mmap

x86 Linux에서 감시 레지스터를 읽는 방법은 무엇입니까?

Intel Lynx Point 시스템에서 Intel iTCO 감시 레지스터를 읽고 싶습니다. 여기서 감시자를 찾았습니다. [ 5598.341020] iTCO_wdt iTCO_wdt.1.auto: Found a Lynx Point TCO device (Version=2, TCOBASE=0x1860) ISA 브리지 LPC 컨트롤러에 연결됩니다. 00:1f.0 ISA bridge: Intel Corporation H87 Express LPC Controller (rev 05) Subsystem: ...

Admin

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

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

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

Admin

지정된 오프셋에서 특정 바이트 시퀀스에 대해 1T 블록 장치를 검색합니다.
mmap

지정된 오프셋에서 특정 바이트 시퀀스에 대해 1T 블록 장치를 검색합니다.

사고 후 데이터 복구를 수행하기 위해 dd를 사용하고 있습니다. 장기적으로 일부 복구 도구를 사용하여 파일 시스템을 복구해야 합니다. 그동안 시스템에 필요한 이미지가 있는데, 찾을 수 있으면 해당 이미지를 사용하여 장치의 이미지를 생성할 수 있습니다. 바이트 시퀀스는 입니다 "\x21\x35\x2c\x66\xe4\xe8\x48\xe0\xf9\x4a\x92\x\x7f\x3f\xb7\x6e". Python에서 mmap을 사용해 보았지만 mmap.find()시도할 때마다 오류가 발생하는 것 같아서 블록 장...

Admin

mmap I/O 대기 시간을 측정하는 방법은 무엇입니까?
mmap

mmap I/O 대기 시간을 측정하는 방법은 무엇입니까?

디스크 I/O가 많이 진행되는 동안 속도가 느려지거나 차단되는 것처럼 보이는 응용 프로그램이 있으므로 응용 프로그램의 I/O 작업이 차단되는 것으로 의심됩니다. 또 무엇이 잘못되었는지 상상할 수 없지만 확인하고 싶었습니다. 문제는 응용 프로그램이 주로 I/O에 mmap 파일을 사용하므로 mmap 메모리에서 I/O를 차단하는 것이 페이지 오류라는 것을 알지 못합니다 strace. 그런데 페이지 오류로 인해 스레드 실행이 일시 중지된 시간을 측정하는 방법이 있습니까? ...

Admin

게스트 RAM 세그먼트를 PPC QEMU의 호스트 파일에 매핑
mmap

게스트 RAM 세그먼트를 PPC QEMU의 호스트 파일에 매핑

제 바람은 개념적으로 간단합니다. 게스트에 원하는 파일이 호스트에 있습니다(실제로는 /sys/bus/pci/device/....의 PCIe 리소스 파일이지만 그다지 관련이 없습니다). 메모리는 어딘가에서 사용할 수 있습니다. 에서 양쪽의 변경 사항이 다른 쪽을 반영하도록 합니다. 내 목표는 실제로 호스트에서 제한된 PCIe 주소 공간 세그먼트를 매핑하는 것이므로 전체 게스트 RAM을 효율적으로 매핑할 수 없습니다. 아래 목록은 제가 추가하려고 시도한 기본 명령입니다. 목표는 매핑된 메모리 ID "ba...

Admin

실제적인 문제
mmap

실제적인 문제

이사 공지 방금 이 질문(약간 수정됨)을 StackOverflow 질문(교차 게시에 대한 강력한 반대 때문에 삭제함)에서 옮겼는데 아직 답변이 제공되지 않았으며 여기에 더 적합할 수 있습니다. StackOverflow 질문에는 두 가지 의견(답변 없음)이 있습니다. 다음은 이러한 의견에 대한 간략한 요약입니다(이를 이해하려면 실제 질문을 읽어야 할 수도 있습니다). 파일 시스템 접근 방식을 libhugetlbfs사용하면 다양한 작업을 수행할 수 있습니다. 그것은 저에게 별로 설득력이 없습니다. 제...

Admin

블록 장치에 쓸 때 부분적인 fsync
mmap

블록 장치에 쓸 때 부분적인 fsync

나는 블록 장치 위에 직접 데이터 저장소를 작성했습니다. 내구성을 보장하기 위해 디스크에 동기화하고 싶습니다. 하지만 문제는 이렇습니다. 일부만 동기화하고 싶습니다. 나는 충돌 복구를 위해 로그를 유지하고 디스크의 실제 위치에 적용하기 전에 향후 변경 사항을 로그에 기록합니다. 그런 다음 나머지 디스크에 실제 변경 사항이 적용되기 전에 로그 변경 사항이 디스크에 기록되었는지 확인하고 싶습니다(로그를 확인할 때까지는 fsync에 관심이 없습니다). 전체 블록 장치를 간단히 동기화할 수 있지만 그렇게 하...

Admin

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

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

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

Admin

mmap_shared를 지원하는 Linux 배포판은 무엇입니까?
mmap

mmap_shared를 지원하는 Linux 배포판은 무엇입니까?

mmap_shared다음에서 호출되는 함수에 대한 매뉴얼 페이지를 찾았습니다 die.net.https://linux.die.net/man/3/mmap_shared 에 대한 편의 래퍼 기능처럼 보이지만 mmapUbuntu 18.04에서는 사용할 수 없는 것 같고 다른 곳에서는 이에 대한 많은 정보를 찾을 수 없습니다. 어떤 Linux 배포판이 이를 지원합니까? ...

Admin

투명한 hugepage가 있는 버퍼에 할당된 메모리를 사용할 수 없습니다(프로세스 종료).
mmap

투명한 hugepage가 있는 버퍼에 할당된 메모리를 사용할 수 없습니다(프로세스 종료).

나는 1TB의 RAM을 가지고 있으며 그 중 900GB를 프로세스 내에서 할당하고 사용해야 합니다(나는 하드웨어에 대한 모든 권한을 가지고 있으며 베어메탈에서 작업하고 있습니다). (개인, 익명)을 사용하여 900GB의 메모리를 할당한 mmap()다음 이를 사용하여 madvise()Fedora 37에서 투명한 hugepage를 설정했습니다. 그러면 이 900GB는 데이터로 선형적으로 채워집니다. 이것은 실제 프로그램은 아니지만 메모리 액세스 유형에 대한 아이디어를 제공합니다. #include <...

Admin

TB 크기 mmap을 여는 방법
mmap

TB 크기 mmap을 여는 방법

거대한 메모리 맵을 열어야 해요. 파일은 1TB입니다. 그러나 나는 errno: 를 받았습니다 ENOMEM 12 Cannot allocate memory. 무엇이 나를 방해하는지 이해하지 못합니다. 요청된 값 RLIMIT_AS의 결과 : 18446744073709551615. 충분 해. 내 시스템도 64비트이므로 가상 메모리가 너무 작은 것은 아닙니다. ulimit -v예ulimited np.lib.format.open_memmap물리적으로 가능하도록 데이터를 Python으로 만들었습니다 . C언어로...

Admin