This reports body is divided into two main sections. One section will explain a different topic from another. In each section, there are introductions to the topic, explanation, conclusion, and FAQ (Frequently Asked Questions).
Section one will explain about memory management in operating system, which is Windows 7 32-bit. There are 2 memories that will be covered in this section including their technology in management also, physical memory and virtual memory. Analysis about limitations of the technologies and solutions to overcome them are included.
Section two will cover about the design and performances of microprocessors. There is a list, consisted of 5 major trends affecting the microprocessor performance. Besides that, microprocessors are explained further through the types of modern microprocessor, which are separated into the usage in desktop, laptop, or server. The differences in design and features between the desktops, laptops, servers, and embedded systems are included at the end of the section.
Section 1 (One) : Operating System – Memory Management
Windows 7 is the latest release of operating system which is introduced by Microsoft in July of 2009 It was preceded by Windows XP and Windows Vista. The purpose of the development of Windows 7 is on personal computers, including desktops, laptops, and tablet PCs. Windows 7 has not so much difference from predecessor Windows Vista. Windows 7 adapts some features that Windows Vista already introduced before, but 7 was intended to be more focused on improvement compatibility with applications and hardware with which Vista already compatible. Microsoft also always tries to improve security in each generation of Windows operating system. Since the generation of Windows Vista, it actually works. Windows operating systems have become more secure and more susceptible from viruses, especially Windows 7.
This report will cover about Windows 7 32-bit’s memory management. This report will also explain further about Windows 7’s management of physical memory and virtual memory.
Memory management is planned organization of programs and data into the memory. The objectives of memory management are not only to easier for programs to find space to be loaded and executed, as simple as possible, but also to maximize the use to reduce memory waste. There are two kinds of memory management, physical memory management and virtual memory management.
Physical memory, known as RAM (Random Access Memory), is a form of dynamic computer storage. RAM allows the computer to store data for quick retrieval and run multiple programs at once. This memory has capacities and types which vary and will depend on the computer’s motherboard.
Virtual memory on the other hand, has the work to compensate the lack of RAM needed to run an application or an operation. Virtual memory combines the computer’s RAM and the temporary space on hard disk together. When RAM runs low, virtual memory will move data from RAM to a space called a paging file. Then it moves the data to and from the paging file to free up RAM.
Physical Memory Management
Physical memory management is a memory management technique that uses RAM (Random Access Memory) as its resource to handle all of the processes in the computer. So, all the processes will be divided into smaller parts and they will be loaded into physical memory that later will be processed.
In System Paging, the operating system or Windows will retrieve the data from secondary storage called as pages, and then Windows will use the paging file as a temporary storage for the memory dump. As the system reboots, Windows will copy the memory dump into a separate file, and then frees the space that was used before. Since Windows Vista onwards, Windows operating system had been improved a lot better in its physical memory management as in improvements for input-output speed and performance and more efficient and effective memory management. Windows 7 implements a technique related to physical memory management which is called Microsoft SuperFetch.
Microsoft SuperFetch is a technology that helps Windows to manage the amount of RAM (Random Access Memory) in the machine it runs on more efficiently. SuperFetch was introduced first in Windows Vista and still holds an important part in Windows 7’s physical memory management. A less capable version, called PreFetcher, is included in Windows XP. SuperFetch tries to make sure often-accessed data can be read from the fast RAM instead of the slow hard drive.
SuperFetch has two goals. The first is, it will decrease boot time as in SuperFetch will record which data and files need to be accessed at which times, and stores this data in a trace file. During consecutive boots, this information is used to make the loading of files become more efficient, resulting in shorter boot times.
The Second goal is SuperFetch will make sure the applications that you use the most will be loaded more efficiently. SuperFetch will also adapt itself to your usage patterns and put it into account. SuperFetch does this by pre-loading your most often used applications in your main memory, based on not only usage patterns, but also on when you use them. For example, if a user has the same routine every morning, he will run the Mozilla Firefox and browse the Facebook, SuperFetch will pre-load these into memory in the morning. And then comes the evening, the routine will be different, like he will run iTunes and plays his playlist, SuperFetch will adapt, and load those in memory instead during the evening.
Microsoft SuperFetch can give memory manager a hand to divide an often used program into priorities. So it will become more responsive and of course save some time. Despite on its advantages, SuperFetch has some limitations. The limitation is that SuperFetch will spend the leftover free memory on a low-priority applications and processes. The effect will occur when the user tries to run a high resolution video or high performance game, the effects will slow down the computer because there are no more or very few free memories left.
Microsoft SuperFetch need to have some reserved memory for some applications that require a lot of memory in their processes. SuperFetch should allocate the free memory for the high performance processes also, without neglecting the existence of low priority processes in the free memory. It does not have to be balance exactly, but an equal allocation for processes is a must.
Virtual Memory Management
Virtual Memory Management is a memory management technique that is made of various hardware memory devices such as RAM modules and disk storage drives. Virtual memory is used to help physical memory to execute more processes because some pieces of processes are loaded to physical memory and other pieces will be loaded into virtual memory, so physical memory can handle more processes and will be in ready state at any particular time and also virtual memory can handle a process that may be larger than physical memory by loading some required pieces and then the rest pieces of processes will be loaded onto virtual memory.
Demand paging is one of the virtual memory management technique that load some part of the processes into virtual memory instead of load all part of the processes into physical and virtual memory and later the part of the process from virtual memory will be brought it into physical memory when its need the rest of parts of process. Operating System such as Windows is using demand paging as its virtual management technique but there are some problems in managing virtual memory in the demand paging at Windows XP and previous versions had and the solutions has been provided by Windows 7.
Kernel address space
Windows Kernel virtual address space is allocated into 2 sections, which are User address space and Kernel address space. Important resources in Kernel address space are adjusted according to the operational requirements. The sizes and locations of the resources are included as a management of virtual memory arranged by the operating system.
In Windows XP and its previous versions, Kernel address space had been allocated statically into some fixed sizes and locations, so it will have some major problems in case that one or more of the resources oversized than its size allocation. The processes will not work well as usual in result. In Windows Vista and 7, the problems have been overcome by expanding the size and provide the size and location for the resources together. Nowadays, in Windows 7, Kernel address space shares the same space and is no longer divided into some sections. But it still have some limitations, the space is not dynamic enough to handle a very oversized resource. The same result of previous version of Windows still might be occurred.
Kernel virtual address space should be dynamic enough to overcome any possibilities. The user address space is a space that will not be unavailable each time, so it does not mean it cannot be available to handle some oversized-resources problem. The virtual memory space should be dynamic enough to let user address space to share a little space for the Kernel address space.
Windows 7 uses same techniques in memory management with previous versions of Windows which are System Paging in physical memory management and Demand Paging in virtual memory management. Microsoft develops a technology to help physical memory manager to work more efficient, which is called Microsoft SuperFetch. For the virtual memory manager itself, the allocations of the Kernel address space has been better since the introduction of Windows Vista and better in Windows 7 though it still has some limitations.
What is Windows 7?
Answer: is the latest release of Microsoft Windows for use as an operating system on personal computers, including home and business desktops, laptops, netbooks, and tablet PCs.
What is the benefit of Microsoft SuperFetch?
Answer: Microsoft SuperFetch can give memory manager a hand to divide an often used program into priorities. So it will become more responsive and of course save some time.
How exactly the virtual memory works?
Answer: Virtual memory is used to help physical memory to execute more processes because some pieces of processes are loaded to physical memory and it can handle a process that may be larger than physical memory by loading some required pieces and then the rest pieces of processes will be loaded onto virtual memory.
Section 2 (Two) : Microprocessors
Microprocessor is the main brain of a computer. Microprocessor is also known as the Central Processing Unit (CPU) that has main function to respond to and to generate arithmetical and logical operations. The microprocessor is the heart of any normal computer, whether it is a desktop machine, a laptop, or a server. Microprocessor is a complete computation engine that is fabricated on a single chip.
The first microprocessor was the Intel 4004 which is introduced in 1971. The 4004 was not very powerful. But at that time it was quite an invention since everything was on one chip. Even though the 4004 powered one of the first portable electronic calculators, all it could do was to add and subtract. Nowadays, there have been a lot of improvements in modern microprocessors.
This report will cover some areas such as major trends affecting microprocessor performance and design in recent years and differences between microprocessors design goals for laptops, servers, desktops and embedded systems.
Since microprocessor has an important main role in the entire computer’s work and performance, then it is also important to concern about the performance of the processor itself. As time goes by, performances of microprocessor have always been improved to be better in architecture, faster in speed, smaller in size, and lower in energy consumption. Microprocessor at this time is built and developed to meet those requirements.
In purpose to meet those requirements, there are some measurements and factors that affect microprocessor performance. Some of the major trends affecting the microprocessor’s performance are:
Microprocessor’s job is to process tasks/instructions and executes them. How fast a microprocessor can do its job to complete a cycle of task from when it’s retrieved from its memory, determines what actions the instruction requires, and carries out those actions matters because it measures the performance of the microprocessor itself. The clock speed is stated in megahertz (MHz) or gigahertz (GHz), and is a measure of how many instructions the processor can execute in one second. For example, a three Gigahertz (GHz) processor can operate at a rate of three billion cycles per second. The more cycles a processor can handle per second, the faster the clock can pump the current and the better the performance of the microprocessor.
Number of Cores
Number of cores will first determine whether it is a single-core microprocessor or multi-cores microprocessor. Multi-cores microprocessor is designed to have more than one core integrated to a single chip. Multi-cores microprocessor allows a complex instruction to be divided into some simple instructions to each of its cores, so that the instructions can be executed faster. Microprocessors such as Intel core i7 and AMD Phenom II X4 are examples of modern multi-core microprocessors.
Instruction Set Architecture (ISA)
Instruction set tells how to execute duties and works in the processor. Together with processor architecture will affect performance so it means the better instruction set and processor architecture the better performance of processor will get.
Instruction Per Clock (IPC)
IPC is the average number of instructions executed for each clock cycle. IPC massively depends on the architectural design of the microprocessor and its number of transistors. A microprocessor with high clock speed is meaningless without IPC. It is pointless to have a fast-speed microprocessor if it can only execute four or five instructions.
Processors have resources to get their data from, which is the computer’s Random Access Memory (RAM). After the data is retrieved by the processor, it will copy and send it to a “cache.” The cache acts as a temporary information way station. Nowadays, the architecture of a microprocessor provides an on-board cache which is internal RAM that is built directly into the processor. Rather than requesting data from the RAM continuously, the CPU is allowed to access used data directly from its own on-board memory instead. This way, CPU can access and process data faster and more accurate. It’s very effective for the applications that need high performance such as games, video player, etc.
Type of Microprocessors for Desktop, Laptop, and Server
Intel Core i5 (2nd Generation)
Intel Core i5 (2nd Generation) is included in the family of Intel Core Processors. It is a newly-developed processor after being preceded by the first generation. Intel Core i5 (2nd Generation) was launched first at January 9th 2011 together with Intel Core i7 (2nd Generation) and are based on Sandy Bridge microarchitecture, unlike the first generation. This microprocessor has features such as, Intel Turbo Boost Technology 2.0, a later version which is better at accelerating performance than the first generation’s version 1.0; Intel HD Graphics 3000 that integrates high-performance graphics and media processing on the processor, putting the two components which is CPU processing and graphics on a single chip.
Inter Core i5 Mobile (2nd Generation)
Intel Core i5 Mobile (2nd Generation) does not have much differences from Intel Core i5 (2nd Generation) except it is designed for laptops so that there will be a difference in its design and architecture that will adapt with the power consumption and energy efficiency. This microprocessor also has the same features like the desktop version, for example Intel Turbo Boost Technology 2.0 and Intel HD Graphics 3000.
Intel Xeon E7
Intel Xeon E7 is multi-core microprocessor that is targeted for non-customer, server and workstation markets. It has 10 cores processing that enables improved virtualization performance and increasing system utilization. This microprocessor is also based on the newly-developed Sandy Bridge microarchitecture which is up to 17% faster clock-for-clock compared to Nehalem microarchitecture processors of the previous generation.
Differences between Microprocessor Design for Desktops, Laptops, Servers, and Embedded Systems
Desktop computers can be said as normal media in computer usage. Desktops have advantages in their access to AC electricity as power source. So, they’re become beneficial to users who want to utilize the best performance of computer. That is why desktops’ microprocessors do not have to limit their clock speed and referring to the spaces that desktops have for cooling fans, heat problem will not become an issue.
Desktops microprocessors are designed to improve the computers’ performance. So, they will consume more energy than laptops. But the size of them is still smaller than microprocessors that are designed for servers.
Laptops are designed to be used on the go. The criteria are to be flexible so it can be brought anywhere, anytime. So, battery power is the main source of a laptop’s life. Other than that, overheating is also a main issue since laptops’ size that does not provide a large space for cooling fans. These criteria and issues become a consideration of why there must be a differentiation in laptops’ microprocessors.
Laptops’ microprocessors are designed to minimize the power consumption, so that the battery life could last as long as possible. In purpose to overcome the heat problem, laptops’ processors usually have lower clock speed than the desktop version. As the clock speed is lower, the laptops’ processors may have a lower bus speed as well.
Most of the modern mobile microprocessors have some components to the chips, such as wireless networking cards. Desktop microprocessors could have these as well, but the space requirements of a laptop make these integrated chips way much more popular in laptops.
Servers must be available and stable every time. Servers have an important role to store and load important data so everyone in the company can access the server every time. Server microprocessors are designed to overcome issues such as, stability, server uptime, and energy consumption. Servers are usually high-end computer since there are a lot of heavy tasks that needed to be completed. The size of the microprocessors is usually a bit larger than desktops and laptops, regarding to handle the tasks and the electricity consumption. That is also a cause of why server microprocessors will become more sensitive to the heat issue. Overheated- microprocessor will decrease server’s performance, so there is another method to take care this issue, like putting the server computers in a room with air conditioners in it to maintain the heat issue.
Embedded systems are predefined systems that specifically can do one or more functions but they are limited based on the purposes. Embedded system cannot be changed by the end user because in case if that is changed, then the embedded system will not run appropriately. Examples of the embedded systems are such as, handphone, calculator, etc.
Embedded system will need the microprocessor based on the functionality that it held, the more functions it held, a more powerful the processor that it will need. This happens because the microprocessor will run a lot of instructions from the user, and it will need a capable microprocessor which can do a lot of processes in a short time. The less function it held, there will be reasons to have such a standard microprocessor to save more energy and production cost.
Microprocessor has an important role as the main brain and operates the processes in computer. Without a microprocessor, a computer cannot do anything. That is why the performance of the microprocessor itself becomes the main priority for the user. There are some major trends affecting the microprocessor performance, which are clock speed, number of cores, instruction set architecture, instruction per clock, and on board cache.
Though its main function is the same, computers type varies because of their purposes. So the type of microprocessors will vary also based on their purposes. Type of microprocessors will have a slight difference between one and another because of the design. There are each design for laptops, desktops, servers, and embedded systems.
What is microprocessor?
Answer: Microprocessor is the main brain of a computer. Microprocessor is also known as the Central Processing Unit (CPU) that has main function to respond to and to generate arithmetical and logical operations. Microprocessor is a complete computation engine that is fabricated on a single chip.
Which are major factors that affecting microprocessor’s performance?
Answer: a. Number of Cores
b. Clock Speed
c. Instruction Set Architecture
d. Instruction per Clock
e. On-Board Cache
How different are microprocessors for desktops, laptops, and servers?
Answer: Microprocessors are different in for what purpose the computers are used. Microprocessor for desktops will optimize the performance, for laptops will consider about energy saving and power consumption, and for servers will have more than 6 cores considering the quantities and weight of the processes.
The picture above is a diagram that shows the division of Kernel address space