February 4, 2013
Operating System Comparisons
Table of Contents
An operating system (OS) is software that manages the hardware and software resources of a computer system. Basically an OS is a set of libraries or functions which programs may use to perform specific tasks relating to interfacing with computer system components (The Computer Technology Documentation Project, n.d.). Advantages and disadvantages exist in every operating system. Reviewed in this paper is a comparison of some of the primary responsibilities of popular operating systems. Although Microsoft Windows has taken its own approach as an operating system, Mac OS X is based heavily on the UNIX core. The review includes Unix/Linux, Mac OS X, and Microsoft Windows operating systems.
An important function of the OS is to manage the computer systems memory. Programs, processes, and resource do not simply float around in memory haphazardly. Memory is shared among these processes and resources. Accordingly, managed by the OS is an organized structure of locating processes in computer memory locations. The two primary types of memory controlled by an OS are main memory and virtual memory. Main memory is the location of data moved to the CPU for process execution. Virtual memory is used to swap processes too large to fit completely into main memory. Intended memory management requirements include relocation, protection, sharing, logical organization, and physical organization. Paging permits the physical address space of a process to be noncontiguous. Because paging has advantages over earlier methods it is prominent in most operating systems. Processes are swapped from main memory to virtual memory and back again as needed. The original memory location may not be available at the time the process is required again. Thus, the OS manages relocating the process to a new memory location. Separately, each process must be protected from an overwritten state or improperly referenced by another process. However, the processor hardware handles this aspect at process execution rather than the operating system possessing this responsibility. Sharing of memory is important if access of common data is required from multiple processes. Rather than each process having its own copy in memory, sharing of the memory location is more efficient. Two types of memory management methods are paging and segmentation (Stallings, 2012). Paging is transparent to the programmer and handled via the operating system. Each process is divided into relatively small, fixed-size pages. Segmentation is visible to the programmer and provides for the use of memory of varying size. Both methods have advantages and disadvantages. Paging reduces external fragmentation and therefore provides more efficient use of main memory. Segmentation reduces internal fragmentation by rearranging main memory at regular intervals. Page size, which is hardware design based, is an important function of virtual memory. Required is a balance between internal fragmentation and external fragmentation. Internal fragmentation is the result of too large of page size, thus leaving unused holes in the main memory (Scribd Inc., n.d.). Reducing the page size reduces this effect however the number of pages increases. An increased number of pages per process equates to larger page tables, which are likely placed in both main memory and virtual memory. Taking advantage of both paging and segmentation strengths requires careful planning of both hardware and the operating to work well together. Main memory, also known as random access memory (RAM) or physical memory is the faster of the two memory types. Linux memory management consists of two components. One deals with the physical memory and the other with...