Comparing Different Approaches Used by Linux and Windows

2021-07-20
5 pages
1157 words
University/College: 
Middlebury College
Type of paper: 
Course work
This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

Section 1A

Process management involves a mechanism of control of activities within a device. It entails assembling, planning, and monitoring activities with the aim of advancing various goals. The process management approach of Linux operating system is different from that of windows operating system. Linux OS have dynamic processes that are usually created and represented through a dynamically allocated task-struct. On the other hand, windows operating system processes contain threads which act as an executable unit and includes Thread Local Storage (TLS), a context structure and an argument on the stack (Stallings 2015). The paper aims at comparing different approaches used by Linux and windows.

The process states for Linux operating systems involves five components. Running is the first component and entails the situation where a process is either running or waiting to run. Interruptible is the second states and involves a blocked state of a process while waiting for a signal from another method. Thirdly, Uninterruptible involves a blocked state where a signal could not be handled. Fourthly is a stopped state where a process can be restarted after it has been completed. The last state is zombie where the process is terminated, and information will be kept in the process table (Tanenbaum and Bos 2015).

On the other hand, the process states for windows involves six states which are running, ready, blocked, suspend, new, and exit. Running state is where the process is currently being executed while ready us where a process is prepared to perform an activity. Blocked involves restricting a process to perform unless I/O operation is completed. Moreover, suspend state entails several events such as swapping, timing, OS reason, interactive user request and parent process request. After suspend is a new state where it contains already created a process that has not been put into the place of executable processes (Economides and Katsamakas 2005). Lastly, the exit is a state where a process has been released from the place of executable processes for various reasons.

Regarding data structures, Linux uses three primary structures that are Linked Lists, RB-trees, and Radix tree. Linked Lists involve lists that are implemented by one include file (<linux/list.h>). Secondly, RB-trees is a binary and semi-balanced search tree that provides insert, delete, and search operations. Lastly is Radix tree which involves two radix tree implementations that provide a planning from a number to a random pointer (Alhassan and Bach 2014).

The data structures of windows entail the use of bit vector, B+ trees, HTree, and splay trees. The bit vectors are used to track the location of free blocks because they are capable of querying perfectly. B+trees to store data for easy retrieval in a block-oriented storage context. The HTree helps in keeping branching factor to enable few disk accesses to be used. Lastly, splay trees are used to store their directory structures and prevent multithreaded access in the directory.

Traps and interrupts are processed differently in the operating system. The interrupts are mostly for hardware interrupts which rarely functions because of actions that are related to executing the program. Interrupts are handled by clearing the interrupt flag, and this will make it occur while ISR is running. The interrupts are used by the system hardware to manage events such as a request to service devices. On the other hand, the trap involves a transfer of control that is started by the programmer. Handling of the trap is synchronous because they are usually active and is relied upon by the codes to happen (Sharma, Kumar and Sharma 2011).

Section 1B

Concurrency occurs when operating systems allows various programs to run simultaneously. In Linux operating system, there are several sources of concurrency which makes it capable for multiple user-space to run using different combinations. The Linux concurrency comes from three significant aspects that are SMP, Kernel Preemption, and Interrupt Handlers. The SMP control paths use Spinlocks to enforce their mutual exclusion. The SMP code runs parallel on various processors while using the same Linux data. Preemption enables the kernel to run concurrently by allowing a process is running at kernel space to be preempted by another process. Lastly, the interrupt handlers preempt kernel control path that is triggered by hardware unless being disabled (Lockyer 2007).

Moreover, the concurrency in the kernel is controlled by spinlocks and semaphores. The spinlocks are designed to control the entry of threads into critical sections at intervals. Through spinning its wheels, threads are managed when entering the critical section until original thread exists. Semaphores, on the other hand, puts the threads to sleep until each thread gets its turn to occupy the critical section. This is more appropriate than spinlocks because of effects of consuming processor cycles and helps to protect critical sections. However, semaphores can put the thread to sleep when they are in contention thus spinlock can be used.

On the other hand, the Windows operating system uses five major methods to enable concurrency of processes. These include executive dispatcher objects, lock-free operations, user mode critical sections, condition variables, and slim reader-writer locks (Mitchell, Oldham and Samuel 2001). Additionally, the windows use semaphore and mutex as methods that enhance its concurrency of threads. The mutex objects control the entry of thread into object creation through opening and closing of the handle or wait for function. This results to (GetLastError ()) and is released when the thread has finished its usage (ReleaseMutex ()). The semaphore objects contain an internal variable that is capable maintaining a count to represent integer values. The internal variable can be set from 0 to imaximumCount which controls the process with the aid of semaphore. At the critical sections, the threads have to request ownership before they use it. The threads relinquish their ownership after leaving the critical sections (Mishra and Goyal 2014).

The above concurrences show different features of Linux and Windows operating system. Both systems are similar because they use controls that regulate the entry of threads into the critical sections. Moreover, the mechanisms used by these operating systems involves cooperation, communication, and competition of three major categories. These are multiprogramming, multiprocessing, and distributed processing. Conclusively, the concurrent processing in Linux and windows plays a central role in their functions and design.

 

References

Alhassan, H.A. and Bach, C., 2014. Operating System and Decision Making. In ASEE 2014 Zone I Conference (pp. 80-85).

Economides, N. and Katsamakas, E., 2005. Linux vs. Windows: A Comparison of Innovation Incentives and a Case Study.

Lockyer, R., 2007. The survey, Analysis and Validation of the IOT Computer Network.

Mishra, M.K. and Goyal, D., 2014. Security Analysis in Open Source Linux Network. International Journal of Computer Science and Network Security (IJCSNS), 14(8), p.63.

Mitchell, M., Oldham, J. and Samuel, A., 2001. Advanced Linux programming. New Riders Publishing.

Sharma, G., Kumar, A. and Sharma, V., 2011. Windows operating system vulnerabilities. International Journal of Computing and Corporate Re-search, 1(3).

Stallings, W. (2015). Operating Systems. 1st ed. Boston: Pearson, pp. 129-171.

Tanenbaum, A. and Bos, H. (2015). Modern Operating Systems. 4th ed. London: Pearson Education Limited, pp.300-567.

 

Have the same topic and dont`t know what to write?
We can write a custom paper on any topic you need.

Request Removal

If you are the original author of this essay and no longer wish to have it published on the collegeessaywriter.net website, please click below to request its removal: