This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
The windows operating system uses concepts of the Object Oriented deign. Object oriented design enables the operating system share resources as well as well as protect these resources from unauthorized access. The object oriented nature of the OS makes it possible for the kernel (which holds the most important parts of the operating system) to provide general purpose services for other subsystems to emulate. The Windows Operating System modular structure ensures flexibility in that it supports applications made in other platforms different from its own. The OS does not have microkernel architecture but system functions are managed by one component of the OS and therefore upgrades or changes are made to this component without interference of the API. Windows also supports SMP (Symmetric Multiprocessing) which means it can execute simultaneously on different processors, can execute multiple threads within processes at the same time and that client requests can be processed simultaneously via multiple threads.
The SVR4 is based on UNIX. It has a multithread kernel that supports SMP and that is preemptive. It has a pre-emptive kernel and virtual memory management and virtual file system. There are a number of design features made in a modular fashion to provide key functions for processes.
THREAD AND SYMMETRIC MULTIPROCESSING
Threads in windows are meant to support a variety of OS environments. Windows processes execute like objects with synchronization capabilities and have more than one thread. To access resources controlled by processes, the user has to use a token. This is to ensure security for these resources. These processes have address blocks to define virtual address space assigned to these processes.
The SRV4 supports multiple kernel level threads per process where no distinction is offered between threads and processes. In the SRV4, the user level threads are mapped to the kernel level threads with one group ID. This facilitates context switching during the switching process hence enabling resource sharing.
CONCURRENCY AND DEADLOCKS
The Windows OS provides synchronization (using synchronization objects and critical section objects) among threads as part of the Object Oriented architecture to ensure concurrency and to prevent deadlocks. The use of wait functions allow threads to block their own execution and do not return until the specified criteria has been met. At the time of blockage no processor time is used up commonly occurring during a wait on a single object. This supports concurrency besides the use of synchronization objects. Synchronization objects are used along wait functions when threads issue wait requests. When an object enters a signalled state of the wait function all the thread objects that wait on the synchronized objects are released so they can gain access to processor time. Critical Section Objects are used to send signals to threads that an event has occurred (event object) and to enforce mutually exclusive access to resources allowing only one thread at a time to gain access to the process resource (mutex object). This applies mainly in threads that run on different processors. There are cases where there is a waitable timer for threads that wish to gain access to the processor resources (semaphore object).
The SVR4 enables concurrency through synchronization. This is done using Pipes, Messages and Shared Memory. Pipe; A circular buffer allowing two processes to communicate on the processor. Pipes have fixed sizes and a process can only request for the available amount of space left. Processes that request for more than the available size are blocked out. Moreover, there is mutual exclusion where only one process at a time can be in the pipe. There are two types of pipes;
Unnamed: which can be accessed ONLY by related processes.
Named: which can be used by both related and unrelated processes.
Messages; a block of bytes with an accompanying type. UNIX has system calls msgsnd and msgrcv for processes to engage in message passing with the message queue functioning as the mailbox. The msgsnd system call specifies the type of message sent which is a useful criterion for the receiver. The receiver can do a FIFO using the criteria and therefore creates a queue that makes blockages occur when attempts to read/ write occur in an empty/ full queue respectively.
Shared Memory; a common block of virtual memory shared by multiple processes. Processes can send each other messages and kernels send messages internally within their components. Processesâ€™ signals are put in a process table in bits and queues.
Windows uses a pre-emptive scheduler with a flexible system of priority levels as well as round robin to schedule processes that have the same high priority. The pre-emptive scheduling is priority driven. Windows has the capability to manage real-time processes thus making it a real-time operating system. Here the traditional approach of using algorithms for scheduling is not relied on rather the need to beat deadlines is put first. Pre-emption is highly relied on by algorithms in this kind of OS.
The SVR4 also supports real-time processes a followed by kernel level processes and processes in user mode. In its overall support for time sharing processes priority levels are considered where priority levels are divided into three classes. Pre-emption points for kernels in UNIX are for interrupts and scheduling processes. A dispatch queue is implemented and processes are executed in a round-robin fashion.
The windows OS is one that is designed using the object oriented structure. This means that it is able to operate over a number of platforms (Intel, Power PC). The fact that it is able to operate over a number of platforms means that it is able to ensure that minimal disk space is wasted and that some of it is set aside to save for other processes. As mentioned before the use of wait functions during concurrency management is used to ensure that processor time is saved and that each process has a chance on the processor and that there is no hogging and deadlock is avoided as a result. During scheduling, the OS uses pre-emption and focuses on priorities even using round robin to ensure that processes are executed with ample time in the processor inspite of efforts to avoid deadlocks.
From a userâ€™s point of view the windows OS has paid attention to detail in terms of ensuring that there is effective/efficient program execution through effective meory management, scheduling and interprocess and thread synchronization. The fact that the OS also supports applications from other platforms is a plus as one can use and implement applications created within and without the OS and therefore no constraints or restrictions are met.