We're Open
+44 7340 9595 39
+44 20 3239 6980


  100% Pass and No Plagiarism Guaranteed


Assignment Overview

This assignment is about operating systems architecture and functionality. The assignment is divided into three parts A-C. The first part is concerned with the Windows operating system architecture, the second part is concerned with resource handling and the third part deals with multi-threading. You need to answer ALL three parts. This is an individual piece of work. Please answer questions in full sentences. No bullet points. Put your answers into the separate answer sheet which should have your name and k-number at the top. Submit your answer sheet as a WORD document via StudySpace. There are 50 marks in total. This coursework counts for 15% of the total mark for this module.


Part A – The Windows Operating System

The Operating systems provides an interface between the computer hardware and the applications and manages system resources. The Windows Operating Systems family is the most widely used operating system for personal computers.


Question A1: Windows Architecture

Describe the general architecture of the Windows operating system. Provide a system diagram and explain the different components of the system. Highlight some innovations of the Windows operating system. Explain how the architecture differs from traditional Unix based systems. Discuss how the architecture of the Windows system contributed to its success in the market.                   (10 marks)


Question A2: Windows API and Apps

The Windows OS and applications are event-driven. Explain why and how this approach is useful for interactive GUI applications and the effect it has on system efficiency. Show with the help of pseudo code/or native Win32 code how a Windows application is decoding messages in its main message procedure. Provide an example of a message and its parameters and how they can be interpreted.          (10 marks)


Part B – Resource Management

The Operating System manages resources such as memory and CPU time. Processes and threads are processing entities which are managed by the OS scheduler. Multi- threading is often used to distribute heavy duty processing onto several CPU cores to speed up the processing. The O/S scheduler distributes the threads onto different CPU cores.


The Java program MultiThreading.java in the MultiThreading.zip folder in the Coursework section on StudySpace is an application which has been prepared with multi-threading in mind.


Performance Testing


In this part you need to assess the performance of your multi-core system and how the operating system handles the distribution of tasks. First of all, identify the number of processing units (multi-core and hyper-threading units) on your PC. The number of processing units corresponds to the number of graphs in the performance tab in the task manager.


Number of cores in your PC system: ____

Run the MultiThreading.java application in NetBeans. It is suggested to use NetBeans 8.01 or NetBeans 8.1. The application performs 100 million calculations and stores the result in a shared static data array of type float. Currently the application is configured to run this processing task only once as part of a single thread. By changing the values assigned to variable N you can control the number of threads which are created and each of those threads currently performs the same number of calculations. The workload thus increases with N. The application will print out how long it took to complete the processing task for each thread. Do not run any other processing tasks while assessing the performance of the system. Make sure the CPU usage is very low before commencing the data capture.


Task B1: Data capture


Take measurements on how long it takes to complete the processing for N=1 to N=2*number of cores different scenarios. This corresponds to the number of threads which are running. The applications prints out the number of seconds for each thread. Create a table in Excel or LibreOffice calc and insert the longest time in seconds in the table for each scenario. Copy the table into your answer sheet. Plot a line graph with N=number of threads on the x-axis and the longest time it took to complete the processing on the y-axis. Copy the populated table and the line graph into your answer sheet.


Proposed table layout:























of cores

Time to complete
















all cores














(5 marks)


Task B2: Analysis:


Describe how the OS scheduler is distributing the processing between different CPU cores. This can be observed in the performance tab of the task manager. How many CPU cores are busy? Give an explanation for your observations. How efficient is the computer system at handling the increasing processing demand? Substantiate your answer by referring to the graph.

Part C - Multi-threading

Currently the application is performing the same calculations for all threads. The aim of multi-threading is to share and distribute the processing over several CPU cores in order to reduce the overall processing time.

Task C1: Modification

Modify the MultiThreading.java application so that the processing of the 100 million calculations is divided up between two threads equally. Make use of the id member variable to distinguish between threads in the run method. Copy the modified run method of your application into your answer sheet.

Task C2: Data capture

Take measurements (max time to completion) and populate the table below when the processing is divided between 1,2,4 and 8 threads. Just as in task C1, you need to modify the MultiThreading.java application so that the processing is divided between 1, 2, 4 and then 8 threads. Take the max time to completion for each of those configurations.


Proposed table layout:

















Time to






complete (sec)







Copy the data into an Excel/Calc Spreadsheet and plot a line graph. Copy the table and the line graph into your answer sheet.


Task C3: Analysis


Referring to the line graph, comment on the efficiency of the application`s ability to process the data in parallel. Substantiate your answer by referring to the graph and by performing some additional calculations such as for the speedup when using 2, 4 or 8 threads. Provide an explanation for your observations. What are the potential limitations for parallel processing?


Task C4: Amdahl`s Law


The theoretical potential speed-up of an algorithm on a parallel computing platform is given by Amdahl`s law, originally formulated by Gene Amdahl in the 1960s. It states that a small portion of the program which cannot be parallelised will limit the overall speed-up. This relationship is given by the equation:


speedup =





(1 - P) +

















P = percentage of parallel code


N = number of processors

Provide an estimate on how much of the Java program in task C1 is parallelised on the basis of the measurements taken in task C2. You can calculate the speedup from the measurements for 2 threads, N=2. For a more precise answer, given the speedup and the number of threads, you need to re-arrange Amdahl`s equation so that P(=percentage of parallel code) is extracted and can be determined. Copy your answer with the re-arrangement of the equation and numerical values into your answer sheet. Interpret the result of your calculations.

100% Plagiarism Free & Custom Written,
Tailored to your instructions

International House, 12 Constance Street, London, United Kingdom,
E16 2DQ

UK Registered Company # 11483120

100% Pass Guarantee


View our samples written by our professional writers to let you comprehend how your work is going to look like. We have categorised this into 3 categories with a few different subject domains

View Our Samples

We offer a £ 2999

If your assignment is plagiarised, we will give you £ 2999 in compensation

Recent Updates


  • Price: £ 109
  • Post Date: 2018-11-09T11:02:47+00:00
  • Category: Assignment
  • No Plagiarism Guarantee
  • 100% Custom Written

Customer Reviews

Reviews: 5

A masterpiece of assignment by , written on 2020-03-12

My writer did a small error in my work but it was fixed by him shortly. The work is admirable and I have submitted it. Now hoping for the best results. I would inform you soon.
Reviews: 5

A masterpiece of assignment by , written on 2020-03-12

Writing is not my field. I take help from this website for my accounting assignment. The work is good and I scored good grades in it. Thank you from the bottom of my heart.