>  기사  >  운영 및 유지보수  >  리눅스와 윈도우 메모리의 차이점은 무엇입니까?

리눅스와 윈도우 메모리의 차이점은 무엇입니까?

WBOY
WBOY원래의
2022-08-26 17:05:364700검색

Linux 메모리와 Windows 메모리의 차이점: 1. Linux는 물리적 메모리를 먼저 사용하고 메모리가 부족할 때만 스왑 파티션에 배치하는 반면 Windows는 메모리와 가상 메모리를 함께 사용합니다. 2. Windows는 항상 일정량을 남겨둡니다. 여유 공간이 있으면 새 프로그램을 시작하는 것이 더 빠르지만 Linux 메모리는 새 프로그램에 할당하기 전에 메모리 일부를 지워야 하는 경우가 많으므로 새 프로그램을 시작하는 것이 더 느립니다.

리눅스와 윈도우 메모리의 차이점은 무엇입니까?

이 튜토리얼의 운영 환경: windows10&&linux7.3 시스템, Dell G3 컴퓨터.

Linux와 Windows 메모리의 차이점은 무엇입니까?

Linux는 물리적 메모리를 먼저 사용합니다. 물리적 메모리가 아직 비어 있으면 Linux는 메모리를 점유하고 있는 프로그램이 닫혀 있습니다. 캐시된 상태로 사용됨) 즉, 메모리가 아무리 많아도 일정 기간 사용하면 꽉 차게 됩니다. 이것의 장점은 방금 연 프로그램을 시작하거나 방금 액세스한 데이터를 읽는 속도가 빨라진다는 점이며, 이는 서버에 매우 유익합니다.

차이점

windows는 항상 메모리에 일정량의 여유 공간을 남겨둡니다. 메모리가 비어 있더라도 프로그램은 가상 메모리를 일부 사용합니다. 새로운 프로그램을 만들고 직접 분할할 수 있습니다. 여유 메모리만 주면 됩니다.

하지만 Linux는 어떻습니까? 메모리가 완전히 사용되는 경우가 많기 때문에 먼저 메모리 일부를 비운 다음 새 프로그램에 할당해야 하므로 새 프로그램의 시작이 느려집니다.

리눅스 커널은 기본적으로 모든 데이터를 먼저 메모리에 넣습니다. 메모리가 부족하면 스왑 파티션(가상 메모리)에 넣습니다. 자주 사용하는 데이터만 메모리에 넣습니다. 작동된 데이터는 메모리에 저장되며 점차적으로 스왑 파티션에 저장되고 적절한 경우 하드 디스크에 다시 기록됩니다.

Windows의 처리 방식은 메모리 작업에 중점을 두지 않고 메모리와 가상 메모리를 함께 사용하는 것입니다. 그 결과 IO 부담이 상대적으로 커서 처리 속도가 느려지는 경우가 있습니다. 리눅스의 철학은 메모리를 최대한 활용하는 것이다. 메모리의 속도가 하드디스크의 속도보다 100배 이상 빠르기 때문이다.

지식 확장

Linux는 관리를 위해 물리적 메모리를 세 가지 수준으로 나눕니다

리눅스와 윈도우 메모리의 차이점은 무엇입니까?

시스템의 물리적 메모리는 여러 개의 노드(노드)로 나뉘며, 하나의 노드는 하나의 메모리 클러스터 뱅크에 해당합니다. 즉, 각 A 메모리 클러스터는 노드로 간주됩니다. (NODE_DATA(node_id)를 사용하면 시스템에서 node_id라는 노드 번호를 찾을 수 있습니다.)

메모리는 노드로 나누어지고, 각 노드는 시스템의 프로세서와 연결되며, pg_data_t는 커널에서 인스턴스화하는 데 사용되며, 각 노드는 시스템의 각 노드는 pg_data_tnode_next 필드를 사용하여 다음 노드에 연결되는 NULL로 끝나는 pgdat_list 연결 목록에 연결됩니다. UMA 구조의 경우 contig_page_data의 정적 pg_data 구조만 사용됩니다. 이때 NODE_DATA는 전역 contig_page_data를 직접 가리킵니다. 노드는 메모리 관리 영역으로 구분됩니다. 메모리 관리 영역은 특정 범위의 메모리를 나타내기 위해 struct zone_struct, zone_t를 사용하여 기술되며, 하위 범위의 16MB는 ZONE_DMA로 기술되고, 이어서 커널에 직접 매핑될 수 있는 일반 메모리 도메인 ZONE_NORMAL이 기술됩니다. 커널 세그먼트 밖의 물리적 영역. 주소 필드 ZONE_HIGHMEM(0xF8000000~0xFFFFFFFF), 고급 메모리는 시스템에 예약된 사용 가능한 메모리 공간이며 커널에서 직접 매핑할 수 없습니다. (핫 플러깅 및 메모리 조각화 처리와 호환되기 위해 커널은 몇 가지 논리적 메모리 영역을 도입합니다:

1. 커널은 의사 메모리 영역 ZONE_MOVEABLE을 정의합니다. 이 메모리 영역은 메모리 마이그레이션을 방지하는 메커니즘인 mmeory mirgation에 사용해야 합니다. 물리적 메모리 조각화. 메모리 조각화의 궁극적인 사용을 위해

2. ZONE_DEVICE: 핫스왑 가능한 장치를 지원하기 위해 할당된 비휘발성 메모리, 비휘발성 메모리).

페이지 프레임(페이지 프레임): 힙 메모리의 각 페이지는 구조체 페이지의 인스턴스를 생성합니다. 전통적으로 메모리는 연속된 바이트로 간주된다. 즉, 메모리는 바이트 배열이고, 메모리 단위의 번호(주소)는 바이트 배열의 인덱스로 사용될 수 있다. 페이징 관리 중에는 여러 바이트가 하나의 페이지(예: 4K바이트)로 변환됩니다. 즉, 메모리는 페이지 배열이 되고, 물리적 메모리의 각 페이지는 페이지 프레임이 됩니다. 메모리는 페이지 단위로 번호가 지정됩니다. 이 번호는 페이지 배열에 대한 인덱스 역할을 하며 페이지 프레임 번호라고 합니다. (페이지의 데이터 구조 객체는 mem_map 전역 배열에 저장됩니다. 이 배열은 일반적으로 ZONE_NORMAL의 선두에 저장되거나 작은 메모리 시스템에서 커널 이미지를 로드하기 위해 예약된 영역에 저장됩니다. 커널의 하위 주소를 로드한 후 메모리 영역 뒤의 메모리 영역, 즉 ZONE_NORMAL이 시작되는 메모리 페이지의 데이터 구조 객체가 모두 이 전역 배열에 저장됩니다.

페이징 단위는 선형 주소를 물리적 주소로 변환할 수 있습니다. 선형 주소는 페이지라고 불리는 고정 길이 그룹으로 나뉘며, 페이지 내의 선형 주소는 연속된 물리적 주소에 매핑됩니다. 이를 통해 커널은 페이지의 전체 선형 주소에 대한 저장 권한을 지정하지 않고도 페이지의 물리적 주소와 저장 권한을 지정할 수 있습니다.

페이징 단위는 모든 RAM을 고정 길이의 페이지 프레임(페이지 프레임이라고도 함)으로 나눕니다. 각 페이지 프레임에는 하나의 페이지가 포함됩니다. 즉, 페이지 프레임과 페이지의 길이가 동일합니다. 페이지 프레임은 메모리의 일부이므로 저장 영역입니다. ----mm_types.h 구조체 페이지 구조의 매핑은 포인터를 저장할 뿐만 아니라 페이지가 연결되지 않은 주소 공간의 익명 메모리 영역에 속하는지 여부를 결정하는 데 사용되는 일부 추가 정보도 저장합니다. 매핑을 통해 anon_vma를 복원하는 방법: anon_vma=(struct anon_vma *)(mapping-PAGE_MAPPING_ANON).

추천 학습: Linux 비디오 튜토리얼

위 내용은 리눅스와 윈도우 메모리의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.