memory-management

시스템 서비스의 메모리 제한 이해: 프로세스별로 또는 결합되어 있습니까?
memory-management

시스템 서비스의 메모리 제한 이해: 프로세스별로 또는 결합되어 있습니까?

Memory: 300.3M (limit: 500.0M내 Linux 시스템에서 실행 중인 vcoagent.service라는 systemd 서비스가 있고 서비스( )에 대해 지정된 메모리 제한이 관리하는 프로세스에 어떻게 적용되는지 이해하려고 합니다 . 다음은 systemctl status vcoagent.service의 관련 출력입니다. ● vcoagent.service - Observability Agent Loaded: loaded (/etc/systemd/system/vcoagent.se...

Admin

Linux에서 비권한 모드로 페이지 테이블을 읽을 수 있습니까?
memory-management

Linux에서 비권한 모드로 페이지 테이블을 읽을 수 있습니까?

이것은 Unix와 Linux에서의 첫 번째 질문입니다. 현재 가상 메모리에 대해 배우고 있습니다. 이 훌륭한 논문에 감사드립니다.드러머(CCS'16). Android 6.0.1에서는 버디 할당자를 속여 취약한 페이지에 페이지 테이블 페이지를 할당합니다(해당 Linux 커널은~3.18.10.) 권한이 없는 작업을 수행합니다(궁극적인 목적은 다음과 같습니다.루트 권한 에스컬레이션.). 하지만 사용자 모드에서 페이지 테이블 페이지에 액세스하는 방법을 모르겠습니다. 가상 메모리에서는 전체 가상 메모리 주소가...

Admin

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

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

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

Admin

상주 메모리 크기 RES는 에이징 후 10일 후에 자동으로 감소합니다.
memory-management

상주 메모리 크기 RES는 에이징 후 10일 후에 자동으로 감소합니다.

내 응용 프로그램은 여러 프로세스로 구성됩니다. 각 프로세스에는 여러 스레드가 있습니다. 힙 메모리 영역은 작업 중에 동적으로 할당되고 해제됩니다. 내 응용 프로그램에 메모리 누수 버그가 있었고 이를 수정했습니다. 그러다가 설날 연휴 동안 에이징 테스트를 실시했는데, 그 결과 버그가 완전히 수정되었음을 증명했습니다. 번인 테스트 중에는 또 다른 모니터링 프로세스가 주기적으로 애플리케이션 프로세스의 /proc/PID/statm을 읽어 그 값을 파일에 기록한다. 13일 후 메모리 로그 파일을 분석했습니...

Admin

Chrome에서 사용할 수 있는 RAM 용량에 대해 하드 캡/한도를 설정하는 방법이 있나요?
memory-management

Chrome에서 사용할 수 있는 RAM 용량에 대해 하드 캡/한도를 설정하는 방법이 있나요?

Steam Deck에서 Linux(SteamOS/Arch Linux)를 사용하고 있습니다. Chrome이 명령줄 인수와 함께 사용할 수 있는 최대 총 RAM에 하드 캡/한도를 설정하는 방법이 있나요? (8GB 장치 최대 16GB) Chrome은 8GB RAM Windows 노트북에 열려 있는 많은 탭에서 훌륭하게 작동하며 Chrome에 내장된 작업 관리자를 사용하여 언제든지 개별 프로세스를 종료할 수 있습니다. 그러나 Steam Deck의 Arch Linux에서는 탭이 너무 많은 일부 제대로 최적화되...

Admin

프로세스의 커널 모드에서 컨텍스트 전환이 발생할 때 커널 스택 포인터를 저장하는 데 페이지 테이블이 사용됩니까?
memory-management

프로세스의 커널 모드에서 컨텍스트 전환이 발생할 때 커널 스택 포인터를 저장하는 데 페이지 테이블이 사용됩니까?

두 가지 질문이 있습니다. 사용자 공간 애플리케이션/프로세스가 커널 모드에서 실행되고 있다고 가정합니다. 지금 컨텍스트 전환이 발생하면 프로세스의 커널 스택 포인터가 task_struct. 이렇게 하려면 ? 에 매핑되는 (이것은 ) PTE페이지 테이블에 (페이지 테이블 항목)을 만듭니다.Kernel Stack PointerVirtual addressPhysical Address 의 경우 kthread컨텍스트 전환을 지원하는 페이지 테이블이 있습니까? ...

Admin

mmio는 io 장치로 어떻게 라우팅됩니까?
memory-management

mmio는 io 장치로 어떻게 라우팅됩니까?

저는 Linux를 실행하는 최신 x86 시스템에서 IO 장치가 "일반" 메모리 주소 공간에 어떻게 매핑되는지 이해하려고 합니다. 내가 이해하려는 몇 가지 세부 사항은 다음과 같습니다. cat /proc/iomemIO 메모리 매핑 영역 목록을 인쇄합니다(인쇄물리적주소)가 불연속적입니다. 이러한 영역은 커널 모듈에 의해 런타임 시 동적으로 요청될 수 있으며 <linux/ioport.h>에 정의된 request_mem_region 함수를 통해 할당될 수 있습니다. x86 머신은 mov메모리...

Admin

일부 UNIX 구현에서는 memalign()을 통해 할당된 메모리 블록에 대해 free()를 호출할 수 없습니다.
memory-management

일부 UNIX 구현에서는 memalign()을 통해 할당된 메모리 블록에 대해 free()를 호출할 수 없습니다.

저는 Linux만 사용하지만 이것이 무엇을 의미하는지 알고 싶습니다. ~에서리눅스 프로그래밍 인터페이스: 할당된 메모리 블록을 사용하거나 memalign()여유 posix_memalign() 공간을 사용해야 합니다 free(). 일부 UNIX 구현에서는 구현이 할당된 메모리 블록을 사용한 다음 적절한 정렬을 통해 해당 블록 내의 주소에 대한 포인터를 반환하기 때문에 free()할당된 메모리 블록을 통해 호출하는 것이 불가능합니다 . glibc의 구현에는 이러한 제한이 적용되지 않습니다.memali...

Admin

Linux 스왑 파티션이 너무 클까요?
memory-management

Linux 스왑 파티션이 너무 클까요?

Linux 스왑 파티션이 너무 클까요? 나는 대답이 "아니오"라고 확신하지만 이에 대한 자료를 찾지 못했기 때문에 물어보고 싶다고 생각했습니다. 이에 비해 기본 Windows 스왑 파일 pagefile.sys가 너무 클 수 있습니다. 일반적으로 인용되는 상한은 설치된 RAM의 3배입니다. 그렇지 않으면 시스템이 제대로 작동하지 않을 수 있습니다. 차이점은 Linux 가상 메모리는 컴파일 옵션은 말할 것도 없고 커널 매개변수를 통해 고도로 구성 가능하지만 Windows 가상 메모리는 거의 존재하지 않는...

Admin

사용자 정의 시스템 호출을 사용하여 커널에서 프로세스의 페이지 테이블에 액세스하는 방법은 무엇입니까?
memory-management

사용자 정의 시스템 호출을 사용하여 커널에서 프로세스의 페이지 테이블에 액세스하는 방법은 무엇입니까?

저는 Ubuntu 16.04, 커널: 4.17.4를 사용하고 있습니다. 프로세스의 페이지 테이블에 액세스하고 싶습니다. 아이디어는 ac 코드에서 사용자 정의 시스템 호출을 호출하고 해당 시스템 호출이 프로세스의 페이지 테이블에 액세스할 수 있다는 것입니다. 시스템 호출을 디자인하는 방법은 무엇입니까? 관련 예시나 읽을거리가 있으면 감사하겠습니다. 내 임무는 시스템 호출을 사용하여 실행하려는 프로젝트의 일부 페이지 테이블 항목을 수정(일부 가상 주소를 물리적 주소 매핑으로 변경)하는 것입니다. ...

Admin

Linux의 RAM에서 파일 기반 실행 가능 페이지를 제거하는 방법은 무엇입니까?
memory-management

Linux의 RAM에서 파일 기반 실행 가능 페이지를 제거하는 방법은 무엇입니까?

페이지가 올바르게 매핑 해제되었는지 madvise(MADV_DONTNEED)확인하고 사용해 보았습니다 . /proc/pid/pagemap페이지 내의 기능은 액세스되지 않았지만 일부 페이지는 빠르게 다시 매핑되었습니다. 내가 아는 한, 활성 목록과 비활성 목록이라는 두 가지 목록이 있습니다. madvise(MADV_DONTNEED)페이지가 두 목록 모두에서 제거됩니다. 이것이 맞다면 페이지가 다시 로드될 수 있는 페이지의 주소에 액세스하는 CPU 외에 다른 것이 있습니까? 참조 코드가 매우 도움이 될 ...

Admin

가상 메모리 관리에서 VMA 작동 시 수정이란 무엇을 의미하나요?
memory-management

가상 메모리 관리에서 VMA 작동 시 수정이란 무엇을 의미하나요?

내가 읽고있다"Linux 가상 메모리 관리자 이해"고먼 지음. 존재하다4장 프로세스 주소 공간 정보, 생성, 잠금, 잠금 해제 등의 VMA 작업을 소개할 때 텍스트에 "수리 영역"이 언급됩니다. "수리"란 정확히 무엇을 의미합니까? 동일한 방식으로 다른 VMA 작업에도 적용됩니까? 자세한 견적: Linux는 sys_mlock()에 의해 구현된 시스템 호출 mlock()을 통해 특정 주소 범위의 페이지를 메모리에 잠글 수 있으며 해당 호출 그래프는 그림 4.10에 표시됩니다. 높은 수준에서 기능은 간...

Admin

대형 페이지 크기 페이징만 사용하는 시스템에서 내부 조각화가 어떻게 발생하는지 이해
memory-management

대형 페이지 크기 페이징만 사용하는 시스템에서 내부 조각화가 어떻게 발생하는지 이해

다음은 운영 체제 텍스트에서 발췌한 것입니다.Calvinet al. 외. 페이징 방식을 사용하면 외부 조각화가 발생하지 않습니다. 모든 여유 프레임을 필요한 프로세스에 할당할 수 있습니다. 그러나 내부 조각화가 있을 수 있습니다. 프레임은 단위로 할당됩니다. 프로세스의 메모리 요구 사항이 페이지 경계와 일치하지 않는 경우마지막 할당된 프레임이 완전히 채워지지 않을 수 있습니다.. 예를 들어 페이지 크기가 2,048바이트인 경우 바이트 프로세스에는 페이지와 바이트가 72,766필요합니다 . 프레임이 ...

Admin