In this Project, the project is divided into two sections. The first section is Operation System where process control management is selected as the research area. The first section consists of the investigation of what type of scheduling mechanism used in Window Vista and how Window Vista handles the process and thread. The internal system structure is also discussed in the first section. Besides that, different process algorithm will be identify and determine which process algorithm is the best. Lastly problem faced by process control management in Window Vista is also discussed. In the second section which is Computer System Architecture, Microprocessor have been chose n as the research area. Major trends affecting the microprocessor performance and design are identified and differences between microprocessor design goal for laptop. Server, desktop and embedded system will be discussed.
Section1: Operation System-Process Control Management
According to techterms.com, Operation System can be described as “the program which allocates memory, processes tasks or instruction and serves as the user interfaces”. In this document, Window Vista has been selected as the Operation System of the research.
Types of scheduling mechanisms employed, creation and handling of process or thread and internal system structure
Type of scheduling mechanism used in Window Vista
Window Vista is one of the NT-Based operating created by Microsoft. The type of scheduling which NT-based operating system use is the Multilevel Feedback Queue (MLFQ). Englander (2009) described MLFQ as an attempt to combine the several features of different algorithms such as First in First Out, Round robin and Priority algorithm. In Window vista, its uses the MLFQ with 32 priority level which were defined from 0 to 31.The priority 0 through 15 are categories as normal priority while priority 16 through 31 are categories as soft real time priorities which require privilege to assign a thread . Besides that, the priority level of a thread may be changed according to the input, output or the CPU usage.
Multilevel Feedback Queue Scheduling
Multilevel Feedback Queue Scheduling main idea is to separate processes with different CPU-burst characteristic. In MLFQ, dispatcher will provide a number of queues with different priority. When a process is processed in queue 1 and requires a long time, it will be moved to queue 2 and waits for its turn to be processed again while all the process in queue 1 finish processed. This process will continue as much level as how many queues are provided by the dispatcher. In the last queue of MLFQ, it uses the Round Robin scheduling which will continue to provide time until the previous process is executed. However, when an input or output bound jobs occur, the kennels may change the priority level of the process and the process will be directed to the queue of the priority. There are also different factor which would affect MLFQ such as the number of queue, scheduling algorithm of each queue and method used to determine the priority level of the process. The diagram below show how a MLFQ function.
PNew Process Level 1 q=1
(Figure Extracted from “The Architecture of Computer Hardware and System Software”, Drawn by Yap Kient Loong)
Creation and handling of process or thread
In the previous version of windows OS, the kernel scheduler had to make some unfair assumption regard tread execution time because the CPU cycle counters were not considered. For example, according to the diagram below, unfairness occur when two threads with same priority is ready to run at the same time. Thread a runs until the next time-slice internal expiration and the scheduler assume that it had run for the interval and its turn is finish .After that the thread B runs for a full interval.
Threads A and B become ready to run
Interval 1 Interval 2
(Figure Extracted from: http://technet.microsoft.com/en-us/magazine/2007.02.vistakernel.aspx, Drawn by Yap Kient Loong)
In Window Vista, in order to provide fairness, CPU cycle counting is introduced. The scheduler would use the cycle counter register to determine how may CPU cycles a thread proceeded and the scheduler would be able to figure out the turn on the CPU by estimating the number of cycle the CPU capable to execute in a clock interval. The scheduler would not keep track of the interrupt during thread a turns which mean a thread will always obtain a turn on the CPU which would provide greater fairness. The diagram below show that at least one time slices is given to both threads.
Threads A and B become ready to run
Interval 1 Interval 2 Interval 3
(Figure Extracted from http://technet.microsoft.com/en-us/magazine/2007.02.vistakernel.aspx, Drawn by Yap Kient Loong)
Internal System Structure
In the internal system structure of Vista, Window Vista uses MLFQ to process and execute the new process. In MLFQ, when a new process is entered into the dispatcher, the process is being processed in queue1 with the highest priority and if the quantum of the process is finished before it is executed, the process will be moved to the queue2 with lower priority and it will waits for its next turn after the processes in queue1 finish processed. This situation will keep on continue depending on the level of queue provided by the dispatcher and in the last queue, round robin algorithm is used to provide time until the process is complete. Besides that, the priority of the thread may be changed by the input/output and the CPU usage and the thread will be directed to the queue of the new priority. In window vista, when a thread is interrupted, cycle counter register will be used to determine that how much cycle a thread had processed after estimate number of cycle CPU executed in a clock interval and the scheduler would not keep track of the interrupt and the thread will be able to obtain a turn on the CPU.
Other Process Algorithm and determine which is the best
According to stargazer.bridport.edu (2011), non-preemptive algorithms are designed that once the process is allowed to process, it will not be removed from the processor until it has completed.
FIFO algorithm will assign the priority to processes in the order which they request the processor. The first process who requests the processor would be given the highest priority .However, FIFO scheduling is unfair because the short process would have to wait for the long process to be completed before it could be processed.
Shortest job first(SJF)
In SJF, the process is given priority according to the length of the next CPU burst of a process which means the lower burst time the higher priority of the process. The biggest advantages of this algorithm are that it is optimal and provide the minimum average time.
According to stargazer.bridport.edu (2011), preemptive algorithms are designed that the process with the highest priority should be using a processor. If a higher priority enters the queue, the process within the processor would be removed and return to the queue until it was the highest priority.
According to Englander (2009),”Round robin is the simplest preemptive algorithm. RR provides each process a quantum of time, when the quantum of time of the process finish it will be return to the back of the queue and waits its turn. This process will continue until each process is completely processed.
The diagram below had shown that SJF would have the shortest average turnaround time which means that Shortest Job First would be the best among the algorithm with the same burst time while First-In First Out would be the worst algorithm because it has the longest average turnaround time which is 13.4 Milliseconds.
Type of algorithm
Average Waiting Time
Average Turnaround Time
(Figure Source: Shanmugam, K. (2011). “CPU Scheduling”, Drawn by Yap Kient Loong)
Problem faced using these techniques of process control management and solution used to overcome them
In Window Vista, there are possible for starvation of MLFQ if new process continue to enter the queue. Starvation is a situation where a process is not given the CPU time for it to be executed. For example in MLFQ, when a process enter queue1, it was allowed to execute for 1 time unit and it was preempted to queue2.In queue2,the process is allowed to execute for 2 time unit and this situation keep on repeating until the process is fully executed. This has shown that when a process is preempted to the next queue, the process will receive more time unit and a longer process may still suffer from starvation.
In order to solve this problem, the process should be promoted to a higher priority queue after the process has waited a long time to be executed.
Conclusion (Operating System)
In Conclusion, although there are different kind of algorithm, window Vista have selected Multilevel Feedback Queue to handle the process and thread because MLFQ have combined several features from FIFO, Round Robin and Priority algorithm. Besides that.in order to provide fairness, Vista had introduced CPU cycle counting had been introduced to ensure fairness of the process.
Frequently Ask Question (FAQ)
What is Starvation?
Starvation is a situation where process is not given the CPU time for it to be executed.
What is FIFO?
First In, First Out is an algorithm which assign the priority to processes in the order which they request the processor.
What is SJF?
Shortest Job first is an algorithm where the process is given priority according to the length of the next CPU burst of a process.
Limitation (Operation System)
The FIFO process algorithm may cause delay or loss for real-time application because it treats all short or long process equally according to the order when they request the processor no matter of its priority.
The round robin process algorithm assumes all process equally important. However for example, when three process starts at the same time and each process require 2 time slice. By comparing the result with FIFO, RR may require more time. Although RR is fair but it is inefficient.
MFLQ process algorithm may provide fairness to the process by using CPU cycle counting .However longer process would still need to overcome problem such as Starvation.
Section 2: Computer System Architecture
According to webopedia.com, microprocessor is defined as “a silicon chip which contains a central processing unit (CPU)”.Nowadays, microprocessor is widely used in our daily electronic devices because microprocessor is responsible for performing the instruction and function of a computer and manipulates the data from software and transfer information between hardware component such as keyboard and memory. The table below will show some of the trends which affect the performance and design of the microprocessor.
Pentium 4 “Prescott”
(Figure Source available from: http://computer.howstuffworks.com/microprocessor1.htm, drawn by Yap Kient Loong)
Major trends affecting microprocessor’s performance and design
According to techterm.com, pipelining can enable multiple instructions to be able to process at the same time. For example, in the past processor without pipelining is not capable to process two instructions at the same time. Pipelining enable the microprocessor to be able to fetch the second instruction while the microprocessor is decoding the first instruction. Pipelining also help to reduce the cycle time of the microprocessor which enhance the ability of the microprocessor to be able to fetch, decode and execute the instruction faster and more efficient.
Another trend that was affecting the microprocessor is the Clock speed or clock rate. According to techterm.com, clock rate can be defined as “the rate at which a processor can complete a processing cycle.” This prove that microprocessor with a higher clock rate will be able to process an information faster. However, different element such as architectures of the processor, cache size and the speed of ram would also affect the clock rate of the processor.
The number of transistor is also one of the important trends that affect the processor because transistor plays a huge role in transmitting the instruction. By increasing the number of transistor, the microprocessor would be able to perform better performance because the clock speed is increased. However, by increasing the number of transistor, more heat will be generated.
Size of the processor has always been one of the trends that affect the design of the microprocessor. By reducing the size of the size of the microprocessor, it will allow the devices to be able to execute the instruction at higher clock rate. This is because by reducing the size, the circuit pathways are also reduced. Therefore, the processor would require less time to process the information and help to improve the process speed of the processor. However, maintaining the devices temperature would be difficult because the smaller the device, the hotter the temperature
Multicore technologies have been one of the major trends which affect the design nowadays because the performance of the processor is greatly. According to Webpodia.com, Multicore is described as “a type of architecture where a single physical processor contain more than or two core logic of processor.” By using the multicore technology, the microprocessor would enable better multitasking and be able to process the information faster. This is because while the first instruction is being process, the second instruction will be processed by the other core which will help to increase the efficiently of the system.
Differences between microprocessors design goal for laptops, servers, desktop and embedded system
Microprocessor had been used widely in technology nowadays and has become one of technology which we would require. This is because microprocessor is required to execute and process the instruction from the user. However, microprocessor is also divided into few categories such as laptops microprocessor and server microprocessor to obtain the optimise performance. The table below will show the difference between the different kinds of microprocessor.
Type of Microprocessor
High Power Consumption
(Figure Differences between different Microprocessor, drawn by Yap Kient Loong)
The main design goal of desktop microprocessor is to provide the maximum performance of the system to the user and keeping the power consumption in a reasonable limit. This microprocessor is also design to be able to handle high performances or complex application or program such as high graphical games and multimedia. Besides that, desktop microprocessors also enable better multi-tasking due to higher clock speed to increase the efficiency.
The main design goal of laptop microprocessor is to enable the laptop consume less power and be able to run cooler compared to different type of microprocessor and enhance portability. This is because a laptop is not capable to fit large heat sinks just like a desktop and may cause uneasiness to the user due to the heat generated. Therefore the microprocessor should be able generate less heat which replaced the problem of large cooling system and enable the laptop to have a longer battery life.
Server microprocessor main design goal is to be able to maximize the robustness of the server and availability and stability of the server. Besides that, a server microprocessor should also have low power consumption, less heat generated and capable to allocate the resources of processor for system cache. The main priority of the microprocessor is to be able to process and execute instruction fast in order to respond to the customer’s request quickly. Therefore the reliability and availability has become one of the most important factors to the design of the microprocessor nowadays.
Embedded System Microprocessor
Embedded System microprocessors are microprocessors which are embedded in automobile, industrial control system or medical field devices. Each of the devices would have its own function and require a microprocessor to process instruction. Due to the constraints on the size, power consumption and area usage of the microprocessor, the design of the microprocessor had been difficult to the designer. Therefore an embedded system microprocessor’s design goal should be able to consume less power and generate less heat in order to have the maximise performance of the devices.
In conclusion, there are a lot of trends which would affect the performance of the microprocessor. In order to fulfil the requirement of the user ,the design of the microprocessor have been modified through time in order to provide the best performance to the user such as the increase of transistor ,reduce the size of the microprocessor and new technology such as Multi-core technology. Each To fulfil the requirement of the user, microprocessor have been divided into different kind of microprocessor and each kind of microprocessor is designed with different goal and motive.
Frequently Ask Question (FAQ)
What is Microprocessor?
Microprocessor is a silicon chip which contains a central processing unit which performs instruction and function of a computer.
How Pipelining affect the microprocessor?
Pipelining can enable multiple instructions to be able to process at the same time by the processor which can enhance the clock rate and performance.
What is embedded system microprocessor?
Embedded System microprocessors are microprocessors which are embedded in automobile, industrial control system or medical field devices which help to process instruction from the devices.
Limitation (Computer System Architecture)
The Microprocessor might get overheat after a long period of usage due to the static which pass through the transistor within the microprocessor.
The speed of microprocessor is limited due to the transmission delay and heat build-up on the chip.
Microprocessor is limited to do a one thing at a time with only a small amount of data. Although several microprocessors can be operated simultaneously, each processor is only capable to handle a small amount of data at one time.
Cite This Work
To export a reference to this article please select a referencing style below: