Image of Modern Operating Systems (3rd Edition)
Image of Operating System Concepts
Image of Android Wireless Application Development
Image of Beginning Google Maps API 3

Intel Processor Power Management

Modern Intel processor power management is based on a combination of two techniques: changing the CPU frequency (P-states) and using idling power states (C-states). A third technique, used on older processors but rarely on modern processors, is throttling of the CPU (T-states). P-states are voltage-frequency pairs that set the speed and power consumption of an Intel processor. When the operating voltage of the processor is lower, so is the power consumption. C-states are idle power saving states, in contrast to P-states, which are execution power saving states. During a P-state, the processor is still executing instructions, whereas during a C-state

Configuring IP Dynamic Port Ranges

As you are probably aware, IP port numbers are 16 bit unsigned integers in the range 0 to 65535. IANA (Internet Assigned Numbers Authority) manages these port numbers. See the IANA Service Name and Transport Protocol Port Number Registry for more information. IANA specifies the range 49152 to 65535 be used for dynamic (AKA private) ports. From the above referenced document: Port numbers are assigned in various ways, based on three ranges: System Ports (0-1023), User Ports (1024-49151), and the Dynamic and/or Private Ports (49152-65535); the difference uses of these ranges is described in RFC6335. System Ports are assigned by

Address Space Layout Randomization in Linux

Address Space Layout Randomization (ASLR) was first implemented in Linux in 2001 and formally included in Linux kernel 2.6.12 in 2005. Microsoft followed soon afterwards and implemented ASLR in Vista in 2007. ASLR randomizes process memory address space in order to prevent an attacker from finding the addresses of functions or ROP (Return Oriented Programming) gadgets required to successfully complete an exploit. The effectiveness of ASLR is limited by the amount of available entropy which varies from platform to platform depending on the implementation. For ASLR to be useful, all segments of a processes memory space must be randomized. If

Out of Memory Killer

I am logged in on pts/1 and using the Bash shell. As shown below, associated with my Bash shell process are three pseudo-files in procfs whose names start with oom. This post discusses the purpose of these files. # ps PID TTY TIME CMD 1688 pts/1 00:00:00 ps 10290 pts/1 00:00:00 sudo 10291 pts/1 00:00:00 su 10294 pts/1 00:00:00 bash # ls -l /proc/10294/oom* -rw-r–r–. 1 root root 0 Dec 26 17:13 /proc/10294/oom_adj -r–r–r–. 1 root root 0 Dec 26 17:13 /proc/10294/oom_score -rw-r–r–. 1 root root 0 Dec 26 17:13 /proc/10294/oom_score_adj # cat /proc/10294/oom_score 0 It turns out that these

Tuning The Kernel Swappiness

The /proc/sys/vm/swappiness kernel parameter controls the tendency of the kernel to move processes out of physical memory and onto the swap disk. Because disks are much slower than RAM, this can lead to slower response times for system and applications if processes are too aggressively moved out of memory. Swappiness can have a value of between 0 and 100 where: 0 – instructs the kernel to avoid swapping processes out of physical memory for as long as possible. 100 – instructs the kernel to aggressively swap processes out of physical memory. The default value in Red Hat and Ubuntu distributions