Esprit Rock

Memory management is the job for an operating system which handles or manages primary memory and moves processes to and from the main memory and disk during its execution

Memory management is the job for an operating system which handles or manages primary memory and moves processes to and from the main memory and disk during its execution. The OS checks how much memory is to be allocated to a process, keeps track of each memory location, even if it is allocated or not, tracks every time a memory is freed and decides which process will get memory at what time. Both Windows and UNIX have similarities in memory management which includes hardware abstraction layer, copy on write, shadow paging memory mapped files and inter-process communication. However, the highlight of this paper is the significant differences between both OS in terms of memory relocation, protection, sharing, logical and physical organization.
Windows is an operating system that Microsoft developed. While UNIX is a multitasking, multiuser operating system that came from AT&T. Both are modern and have good theoretical concepts and are suitable for production environments. Windows is developed into sophisticated, complex code whereas UNIX is simple and elegant but still modern. Which results to Windows having more features but is difficult to maintain and improve from the developers while UNIX has fewer features but is easier to maintain and improve.
UNIX uses demand paging for their memory allocation strategy where the OS stores and gets data from the secondary memory in same-sized blocks called pages to be used in the main memory. This strategy decreases the paging time and physical memory needed because only the needed pages are paged and reading unused pages can be avoided. Windows uses clustered demand paging where pages are brought only when it is needed. Also, instead of 1, Windows often brings a cluster of 1-8 pages, depending on the current state of the system.
In memory protection, a protection bit is associated with each frame. A valid-invalid bit is added to each entry in the page table. If the bit is valid, it means that the page is valid and is present in process’s logical address space and if the bit is invalid, it means that the page is invalid and is not present in the process’s logical address space. If the page is not present, it leads to generate page fault. UNIX implements strong memory protection in kernel memory management to keep users from corrupting the system area. A system-level memory protection feature which is Data Execution Prevention (DEP) was built in Windows. DEP enables windows to mark one or more pages as non-executable which means that the marked code cannot be run from that part of the memory.
Both Windows and UNIX use virtual memory. In Windows, the memory manager provides a set of services like copy-on-write memory, large memory support, memory mapped files and underlying support for cache manager. While in UNIX, which uses dynamic libraries which is an example of executing a code that is shared by numerous processes. UNIX divides physical disks into logical disks called partition and each partition is a standalone file system. The term “file system” is used when referring to a single partition.