This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
Nowadays all of people have known about computer. Computer has been used in almost every part in the world, such as military, big company, or school. However, people only just know about how to use it without knowing its system function inside the computer such as process control of operating systems, register and how is it work. Even some of after-graduate IT students do not know about it, where it is useful for them to monitor their computer and keep it at good performance. Besides that, the development of computer always become better and better. It is a must for people to keep up to date to development of technology.
All of the resources are used to discuss on how valuable to know how memory is managed including mechanisms and strategies used, problems faced by these techniques, solutions to overcome them in memory management part and also reasons for registers, types of registers, register size and organization types of registers in register part.
Computer had many development since long ago with many and great improvement to all sections of it, such as its operating systems. The operating systems keep development of their process such as Windows as operating systems a lot of people have known. One of the important functions in the Windows is Memory Management. Since computer running by using memory, Windows need to take care of the memory process or a computer will not run appropriately. This function had some development to get better result and since it had to fix some problem with its process. Memory management has to control the memory used by the computer itself and user process to avoid any unexpected condition for user.
Another useful function in the Computer is called Register. There is several register inside computer. Each of it plays as one of vital role inside a computer with a different function, such as Memory Address Register or Memory Data Register. They have their own function inside to make computer work as expected and properly. Without these function inside a computer, there will be problem on computer to execute user instructions. It help user to know how much memory left for their process and data and another function as well. These two functions will be more explained in the next part.
Operating Systems (Memory Management)
On Windows operating system there is a process known as Memory Management as their ability to control and coordinate computer memory. This process used to find space on Memory to be loaded and execute programs and also used to reduce waste of memory. Memory management in Windows controls the Physical and Logical memory.
There are two types of memory management, first is Single Tasking with Overlay and Second, Memory Partitioning.
Figure : A program is written using overlays to overcome memory limitations
One of main limitations imposed on programmer these days of computing was the size of the size of Computer memory. But these days, the way to solve this problem is by using the Single Tasking with Overlay. The use of overlays allowed programmer to write programs that were much larger than the size of physical memory. In this case the data and instructions are stored in the memory at any given time. When the Instructions are called, the data will be loaded into space which was occupied by the instructions. The responsibility for managing memory usage of the programs rested to the programmers rather than the operating system. Programmer requires a lot of skill and care. However, in this condition, it cannot take advantage of more memory if it is available, since the overlays are designed around a given amount of memory.
Next, the other different type of memory management is known as Memory partitioning. This type of memory management works by dividing the memory into some partition to make memory management become simple. In this case, memory will be split into two partitions, which is reserved for the operating system and the rest will be given to user programs. Protection will be made by using a boundary register into the processor to protect corruption of operating system process. The boundary register is contains the main memory address of the program which was executed from user, and define the limitation address of memory space available for user to run processes. When user was running the process references a memory address, the system checks the referenced address with the reference address in the boundary register. If the user process attempts the boundary register, the process will be terminated with an error message.
Figure : Protection of Operating System
Memory portioning is divided into 2 types, Fixed and Variable. In fixed type of memory portioning, not only the operating system are protected from user process, but also each programs user executed are protected. According to TechnologyUK, this early multilevel-programming systems could hold exactly a single process and defined with two boundary registers, a base register and limit register which act as lower and upper memory addresses respectively. When a partition is free, a called process will be loaded from the input queue to the free partition.
Figure : A multi-programming system with fixed partitions
However, the problem with the fixed-partition is they could hold only a single process in one partitions. If the process is not used all the space in the current space, the remaining memory space could not run another process. The loss of memory space in a partition because of the allocated memory to the partition is larger than the memory needed for the process is known as Internal Fragmentation. Sometimes, if the unused spaces in each partition are combined, it might be able to create another partition to run some small process or even a big process.
Figure : Process are queued waiting for available partition while there is unused space
The problem of fixed-partition is that it is rarely create amount of memory space for a particular process. But this problem is solved by using the variable-partition. The idea of this type of memory management is to create exactly the amount of memory space needed to run a process. So, when a process called for memory, it searches for memory space which is exactly enough to run the process. But after the program stop running and leave the memory, when another smaller partition take place inside the recent memory, it will create hole in the memory.
Figure : Variable may leave holes in memory when a process leaves the space
Contrast to fixed-partition, in variable-partitions operating system help user to determine the place of incoming processes when there are enough spaces to run new process using memory placement strategies. This algorithm divided into 3 type, first fit, best fit, and worst fit.
First fit, allocates the first space available to fit the program.
Best fit, allocates the smallest space that will fit the program and leaving small holes.
Worst fit, allocates the largest space available and leaving small holes again that cannot be used by another process.
The problem in this method is there are some small holes left and cannot be used to execute other process, and this problem known as External Fragmentation. In order to solve this problem, there is procedure called as Compaction. This procedure allowed the Operating systems to combine the memory holes within the memory into larger unused memory place.
The virtual memory itself is a method of computer to be able to conceptually separate the addresses used in a program from the addresses that actually using physical memory to execute (Irv Englander, 2009). It allows the user to execute program with larger memory even the physical memory size itself smaller than the program. Virtual memory itself has 2 different types of implementation.
First method is usually known as Paging. It uses secondary memory as its addressed memory. When user executed a program the process is addressed to the secondary memory. It is not the whole process is paged into the secondary memory, only the needed process will be brought in to be paged. When a process references a page that is not available in the main memory, it will create a page fault. Page fault will prompt the operating system to load the missing page into main page from secondary page.
Second method is known as Segmentation. The main idea of this method is similar to paging conceptually, but have differs in many details. It is also based on split the process into blocks (segment), but the size of the block is a variable.
Computer Systems Architecture (Registers)
Registers are used to effectively accept, store, and transfer data and instructions which are being used by CPU. There are various type of Registers and used for different purpose for each type. There are some registers being used most of the time such as Accumulator (AC), Program Counter (PC), Memory Address Register (MAR), Memory Data Register (MDR), Index Register.
Those registers are used to perform many kind of operation within the CPU. When we are working on programs related to the System, these Registers are used by the CPU to store the limitations of user input or process. The main idea of registers are they will block user process when their instructions are attempted to reach out of the allocation memory of their space, this action help user avoid corruption inside memory. General purpose register are for user-visible registers and hold intermediate results or data values, for example loop counters. Registers perform some action such as Fetch, Decode and Execute.
Fetch: Fetch is an Operation used for taking instructions from the user and the instructions of the user will be moved into the main memory.
Decode: Decode is an Operation to determine the meaning of instruction the user given by user.
Execute: Execute is an Operation performed by CPU. The results which are produced by the CPU then stored into Memory and will be displayed on the screen.
Register will be divided in some types. There is 2 types of register for most important register which are MAR or Memory Address Register and MDR or Memory Data Register (MDR also known as Memory Buffer Register). MDR and MAR acts as an interface between CPU & memory. Each of those register hold a single value and has a single address. MAR holds address to be opened and connected to a decoder to interpret the address and give a single of memory address line to memory. This Register used to access data and instructions from memory during this execution phase of instruction. For example, when CPU wants to save data in memory or read data from memory, it puts the address of the required memory location in the MAR.
The second register which is known as Memory Data Register. This register works as a control unit of a computer and contains 2 types of data. The first is data which is needed to be saved in the computer storage, such as RAM and the Second is the data after a fetch process from computer storage. MDR holds the information and data copied from memory before it will go to the decoder and sent to processor. Moreover, MDR is a two-way register. When the data is fetched from memory and placed into MDRÂ from the other register in CPU, and then put the data into memory.
There is a relationship between MAR and MDR, they work together. MAR and MDR works by following some steps. First, Address from an instruction is copied into MAR to find the location of memory.
Figure : Find the location of instruction
Second, CPU determines if the instruction is a store or retrieval.
Figure : CPU determines the instruction ether it is a store or retrieval
Next, the address will be decoded and the contained data in the address will be shown in the MDR.
Figure : The data will be shown in MDR
For instance, to retrieve cell of 123, we need to prepare the value of 123 in binary into MAR, and perform fetch operation. Next, a copy of cell 123 would be stored in the MDR. Then load a 4 into the MAR and a 98 into the MDR and perform store. When the operation is completed the contents the value of cell 4 will be 98, by discarding any data was stored in cell 4 previously.
Memory capacity is the maximum number of addressable memory locations. There are two factors to determine the Memory Capacity. First factor is the number of bits in MAR. It decides the size of the memory. The number of memory addresses will be 100 a (form 00 to 99). The second factor is the size of the address portion of the instructions, for example, 4bits, 8bits, and 32bits. These two factors will give impact to the size of the memory. The calculation of these two factors will give result of the capacity memory. Here is how the calculation will be. The number of addressable is equal to two to the power of size of the address. For example, let the size of the address be 'b' and the number of addressable memory locations be 'M' locations. So the algorithm will be, M= 2k. If each location can accommodate 'b' bits, then memory capacity in bits is 2b x 'M'.
2b x M
b - address bits = 2n addresses
M - data bits
M - the "width" of the data path
n: 16, 17, 18, 19, 20
m: 8, 16, 32, 64
For example if the memory address register in 16 bits and the number of addressable memory location is 8bits. Capacity of the memory will be 524288 in bits and 0.0625 in MB.
Register definition, types, capacity, function, relationship