Running head: OPERATING SYSTEMS COMPARISON FINAL PAPER1Operating Systems Comparison Final PaperTeam B: Kyle Priess, Shoaib Rahim, Svetlana Fomichev, William Spurlock, Brad DotsonPOS/355August 26, 2015Oswald Angst
Final Paper2UNIXUNIXThe UNIX operating system was designed at the Bell Laboratories (now called USL a division of AT&T) in the early 1970s. UNIX is considered an open source operating system that encourages developers to add functionality and distribute it. UNIX is currently seeking an international standard using the two basic traditional versions of UNIX, the USL System V and the Berkeley Standard Distribution (BSD) models. These two traditional versions were combined to create the UNIX System V Release 4, known as SVR4, (Gilly & staff of O'Reilly & Associates, Inc., 1994). UNIX is also unique in that it is not written to work on any one hardwareplatform, so UNIX memory management differs from that of other operating systems.Memory managementThe memory management scheme used in SVR4 is different depending on which part of the operating system that is running. One memory management scheme is paged virtual memory,and the other is kernel memory allocator. By using these two different schemes within the UNIXoperating system, it allows the OS to run on different hardware platforms.Paging systemThe virtual memory paging scheme is used for the user processes and disk input-output functions. It operates by creating a page or block of data on the hard drive, which is considered secondary memory. The data in the page is copied to main memory and given a virtual memory address for the user process to operate in. The pages on the hard drive can then be copied into and out of virtual memory is needed. The UNIX paging system uses a data structure to keep track of the virtual memory usage; the structure consists of a page table, disk block descriptor,
Final Paper3page frame data table, and swap-use table, (Stallings, 2015, "Ch. 8"). These force structures contain the parameters needed to make the paged virtual memory scheme operate.Kernel memory allocatorThe kernel memory allocator is used because the kernel needs to allocate memory dynamically as it functions. The dynamically allocated blocks of memory used by the kernel are much smaller than those used in the paged virtual memory scheme. The UNIX kernel memory allocator, is a modified version of the buddy system memory allocation scheme, called the lazy buddy system. The lazy buddy system is used because it waits before it fragments and coalesces memory blocks, which frees up the processor for other operations. So the lazy buddy system keeps track of free memory blocks and only initiates the coalescing process when a certain threshold has is reached, (Stallings, 2015, "Ch. 8").