The final exam is a 1 hour Gitlab-based exam. It is made up of 6 short answer questions.

A zoom meeting will be open during the exam, this will be used for announcements (which will be made audibly) and also provides away of you asking questions. You are not to use the chat feature during the exam. And you should keep your mic off. Basically have the zoom meeting open and listen to announcements. If you wish to ask a question them please put up your hand up, and I will move you to a break out room, once in the break out room turn your mic on and ask your question. Logging into the zoom meeting during the exam is optional, however, it is strongly encourage and it will be the only means by which you can seek help during the exam, I will not be monitoring my emails. The zoom meeting room will be opened 10 mins prior to the exam starting.

During the exam you should stop all your communication applications, with the only exception of the zoom meeting we are using during the exam. You can access lecture notes, labs notes, your lab solutions, the textbook, linux kernel, gcc, commandline, and search the web. However you can not post the questions on the web or access any “tutoring” or Q&A web sites. Only access publicly available web sites. Noting that although you can access this information during the exam you really will not have much time to access or read the material. Like any open book exam it is nice having the books available however, you generally don’t have time to use them.

If you do access any material that is used for answering a question you must references that access at the bottom of the question. Say you quickly read over the wikipedia page on “radiosity” to help answer a question then you must add a reference to this at the bottom of your question answers. e.g.

My answer the to fork system call question is ....

Ref:
https://en.wikipedia.org/wiki/Fork_(system_call)



If you wish to directly quote a source as part of your answer they you must place this in quotation marks and have this clearly references. e.g.

The wikipedia page nicely describes fork as "In computing, particularly in the context of the Unix operating system and its workalikes, fork is an operation whereby a process creates a copy of itself." [1]  ....

Ref:
[1] https://en.wikipedia.org/wiki/Fork_(system_call)



You will gain marks for answers that include quotations like this, however, if the entire answer is just quoting someone else then you will not get as higher mark as you would if it was well answered but in your own words.

## Sample Exam

To given you an idea of the types of questions a sample exam is given below.

### SQ1 - Statement of Integrity

• I will be the person enrolled in the course who is conducting this exam.
• I will not gain any help from anyone either in person or electronically during the exam.
• I will only use web sites that are publicly available.
• I will not access any "tutoring" or questions and answer web sites during the exam, nor will I post any of the question to any other site in any form. This includes web search engines like Google (you can do a key-word search but don't cut and paste the question).
• I will reference all source material. (so at the bottom of you question include the urls of all the sites you looked at also reference the text book and lecture notes if you use them in your answer)
• I will put quotations marks around all material that is cut-and-pasted into my answer and clearly reference it.

Please type “I will do all the above.” in the answer box. Answering this question is required for this exam to be marked.

### SQ2

In your own words describe what an operating system is.

### SQ3

Explain the “write” system call. Describe each of its parameters. Find the location within the kernel where this system call is implemented. What is the name of this function?

### SQ4

Generally an operating system will enable programs to change between different domains of protection. List some mechanisms that are often used to achieve this change between domains of protection. What approach is used by the “sudo” program in Linux.

### SQ5

Given the below program:

int count = 0;
for (int i = 0; i < 2;i++) {
if (fork() == 0) {
printf("count: %d\n", count++);
} else {
printf("count: %d\n", count--);
}
fflush(stdout);
}


How many lines would you expect it to output? What values of “count” would you expect it to output? Is there a race problem with this code (explain)?

### SQ6

What is Read Copy Update (RCU)? Explain how it works. Give an example of its use within the Linux kernel.

### SQ7

Explain how a “lottery scheduler” works. What type of scheduler is a “lottery scheduler”? What are some advantages of such a scheduler?

### SQ8

• I was the person enrolled in the course who conducted this exam.
• I have not gain any help from anyone either in person or electronically during this exam.
• I have only use web sites that are publicly available.
• I have not accessed any "tutoring" or questions and answer web sites during the exam, nor have I posted any of the questions to any other site in any form. This includes web search engines like Google.
• I have reference all source material.
• I have put quotations marks around all material that is cut-and-pasted into my answer and clearly reference it.
• Please type "I have done all the above." in the answer box. Answering this question is required for this exam to be marked.

Updated:    12 Jul 2021 / Responsible Officer:    Director, School of Computing / Page Contact:    Josh Milthorpe