Glossary

本文探讨了计算机系统中功耗管理和内存优化的关键技术。重点介绍了ACPI标准下不同C状态的作用及其对功耗的影响,并分析了操作系统如何通过控制硬件元件实现最低功耗。此外,还详细解释了Windows系统中内存的多种状态,如Standby Memory、Committed Memory等,以及这些状态如何影响系统性能。

[0001]Power and thermal management are becoming more challenging than ever before in all segments of computer-based systems. While in the server domain, the cost of electricity drives the need for low power systems, in mobile systems battery life and thermal limitations make these issues relevant. Optimizing a system for maximum performance at minimum power consumption is usually done using the operating system (OS) to control hardware elements. Most modern OS's use the Advanced Configuration and Power Interface (ACPI) standard, e.g., Rev. 3.0b, published Oct. 10, 2006, for optimizing the system in these areas. An ACPI implementation allows a core to be in different power-saving states (also termed low power or idle states) generally referred to as so-called C1 to Cn states. Similar package C-states exist for package-level power savings.

[0002]When a core is active, it runs at a so-called C0 state, and when the core is idle, it may be placed in a core low power state, a so-called core non-zero C-state. The core C1 state represents the low power state that has the least power savings but can be switched on and off almost immediately, while an extended deep-low power state (e.g., C3) represents a power state where the static power consumption is negligible, but the time to enter into this state and respond to activity (i.e., back to C0) is quite long.

[0003]Package non-zero C-states enable power consumption at lower levels than the package active state (i.e., C0 state). Server workloads rarely drive all cores in same package busy, but even if only one core is active the whole package (including all idle cores) must stay in a high-power C0 state. Since package non-zero C-state entry/exit latency is relatively long (e.g., on the order of 100 to 200 microseconds (.mu.s)), the transient time for all cores being idle usually is not worth using that state, or a performance loss will occur. Thus the OS is unable to take advantage of a package's lower power state benefits, resulting in a package always running at a higher power state than needed.

[Windows Memory Object] Free memory is ready for use; Zeroed memory is pages of memory filled with zeros to prevent later processes from seeing data used by a previous process. Standby memory is memory removed from a process's working set (its physical memory) on route to disk, but is still available to be recalled. Committed memory[1][2] is physical memory in use for which space has been reserved in the paging file so that it can be written to disk. The commit limit is determined by the size of the paging file. If the paging file is enlarged, the commit limit increases.

Reserve a Region in an Address Space

一个进程可以要求系统将自己地址空间的某一部分reserve起来,比如要把0x8080000开头的50M空间预留,就可以使用VirtualAlloc函数(fdwAllocationType=MEM_RESERVE)进行预留。预留以后,系统就不会使用这段空间,但这段空间并没有实际的物理内存与之关联,也就是不能用来存储数据。要想用它来存储数据就要Commit physical storage to the region。Windows总是从系统的paging file中分配这部分physical storage。Committed memory 就是有多少memory被Commit了。

Heap is a region of reserved address space.

Process Working Set

The working set of a process is the set of pages in the virtual address space of the process that are currently resident in physical memory. Memory allocations that are nonpageable such as Address Windowing Extensions (AWE) or large page allocations are not included in the working set[3] .If free memory in the computer is above a threshold, pages are left in the working set of a process, even if they are not in use. When free memory falls below a threshold, pages are trimmed from working sets. If the pages are needed, they will be soft-faulted back into the working set before leaving main memory. It includes both shared and private data. The shared data includes pages that contain all instructions your application executes, including those in your DLLs and the system DLLs. As the working set size increases, memory demand increases.

Private Bytes

The Private Bytes counter indicates the total amount of memory that a process has allocated, not including memory shared with other processes.The Virtual Bytes counter indicates the current size of the virtual address space that the process is using. Some memory leaks appear in the data file as an increase in private bytes allocated. Other memory leaks show up as an increase in the virtual address space.

Some related columns in the Task Manager[4]

Memory - Working Set

Amount of memory in the private working set plus the amount of memory the process is using that can be shared by other processes.

Memory - Peak Working Set

Maximum amount of working set memory used by the process.

Memory - Working Set Delta

Amount of change in working set memory used by the process.

Memory - Private Working Set

Subset of working set that specifically describes the amount of memory a process is using that cannot be shared by other processes.

Memory - Commit Size

Amount of virtual memory that is reserved and commited for use by a process. 注:private 给这个process的,不包含share部分?

Memory - Paged Pool

Amount of committed virtual memory for a process that can be written to another storage medium, such as the hard disk.

Memory - Non-paged Pool

Amount of committed virtual memory for a process that cannot be written to another storage medium.

Page Faults

Number of times data has to be retrieved from disk for a process because it was not found in memory. The page fault value accumulates from the time the process started.

Page Fault Delta

The change in the number of page faults since the last update.

转载于:https://www.cnblogs.com/whyandinside/archive/2009/07/09/1519754.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值