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 keeps track of every memory location, whether it is allocated or not, checks how much memory is to be allocated to a process, decides which process will get memory at what time and tracks every time a memory is freed. 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 develop.UNIX uses demand paging for their memory allocation strategy where whenever a page is needed, it transfers a fixed-sized unit of the virtual address called virtual page.
Every process is logically divided and allocated in the virtual address space, and a page table in the virtual memory will be helpful to allocate and keep track of the pages to map into the frames. 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 for fetching pages, and the clock algorithm for the page replacement.
In clustered demand paging, the pages are only brought to memory when they are required. Also, instead of 1, Windows often brings cluster of them 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 every partition is a standalone file system. The term “file system” is used when referring to a single partition.