ICT374 Operating Systems and Systems Programming
Review and Examination
27 October 2021
Review of the Unit
Copyright By PowCoder代写 加微信 powcoder
This unit is about operating systems – the most important piece of software in any computer system. We have approached the subject from two perspectives – OS design and theory and OS programming.
In OS design and theory part (topics 1, 2, 3, 9, 10, and 11), we have looked at the OS from its inside. We have discussed
• what the aims of an operating system are;
• how such aims are achieved through combinations of hardware and
• important components of an operating system kernel: process
management, file systems, memory management, and processor
scheduling;
• various conceptual models, data structures and algorithms used in
designing these components, and their strength and weakness;
• concurrency related issues such as race conditions, mutual exclusion,
deadlocks, starvations, multi-threading, symmetric multi-processing, microkernel, and so on.
We have used real world operating systems such as UNIX (including Linux) and Microsoft Windows as examples in our discussions. Specifically, we have covered the following important topics:
• Hardware support for operating systems;
• History of operating systems;
• Process management;
• File system management;
• Memory management;
• Processor scheduling;
• Concurrency related issues.
It is hoped that these topics will provide you with a solid basis for understanding how an operating system works internally. They should also give you a foundation for further in-depth study of operating systems and for learning and adapting to future technological changes in the area of operating systems.
In the second part of this unit (topics 4, 5, 6, 7, and 8), we have looked at the OS from its outside. We have leant to appreciate how a set of complex hardware components is turned into a powerful abstract machine that is simple, elegant and easy to use. We have learnt to create application programs on this abstract machine. We have focused on the POSIX programming interface (which are supported by all UNIX-like operating systems, including Linux, Mac OS X
Darwin). We have learnt how to control processes, how to manipulate files, how to handle signals, how to communicate with other processes and how to write network programs using sockets. The topics covered are:
• Process programming
• File system programming
• Signal handling
• Interprocess communication
• Network programming
The second part is very practical. It opens up a new world of possibilities that were not available until now. Of course, the number of system calls and functionalities we have covered in this unit is only a small (but very important) part of UNIX programming interface. This should lay a solid foundation for UNIX programming.
Through 10 weekly labs, two major assignments, one of which is a very substantial programming project, we hope that you have now gained some real- world programming experience using C (or C++). To many who are not very experienced in programming, we hope this is a hard but rewarding experience.
The Final Examination
Time start: Exam Time: Venue:
Thursday, 18 November 2021 14:00
2 hours plus 20 minutes Online Exam
Please check the University’s Exam Timetable to make sure that the above details are correct and there is no last-minute change of exam time or venue.
The final examination covers both OS design and theory, and Unix systems programming. Everything covered in the unit may be examined. I recommend that you read through
• all lecture notes
• relevant textbook chapters
• the weekly lab exercises. You may find that some of the exam questions
are similar to some of the exercises in those labs.
• Linux will not be examined.
• you may also try the sample exam paper, which is available from the Unit
LMS, however, please be aware that the format of exam is significantly different from those of the past exams.
Exam format
The exam will consist of 5 questions worth a total of 100 marks (10+20+30+30+10=100).
You should prepare for the exam as if the exam will cover all major topics of the unit. Indeed, this is what I try to achieve.
Due to the online nature and to ensure integrity of the exam, I have avoided those types of questions that are easy to plagiarize but difficult to detect, such as multi-choice questions and conceptual questions whose answers are readily available from public sources.
The first 3 questions (60 marks) each requires you to write a complete C/Unix program to solve a small problem. These questions encompass processes, file systems, signal handling, inter-process communications, and/or socket programming.
The last 2 questions (40 marks) cover operating system theory such as memory management, process scheduling and/or concurrency related issues. Some of these questions may be similar to a lab exercise or an example in a lecture notes but presented in a different way.
How to answer questions
You must submit a single text file (named “ict374-exam.txt”) or a single PDF file (named “ict374-exam.pdf”) containing your answers to all questions on or before the submission deadline. Files of other names will be ignored even if submitted.
You must type your full name and student number at the beginning of the above file.
Your answer to each question must start with a line “Question i” where “i” is the question number, such as “Question 2”.
To increase the success rate of plagiarism detection, you must not copy the question itself to the above file.
Rules of the exam
You can access all teaching materials of the unit during the exam, including textbook, lecture notes, lab sheets, assignment questions, as well as your solutions to lab exercises and assignments (including the group assignment). Please make sure you are able to access these materials during the exam.
You can access the Internet for any public resources, particularly for the definition and use of any standard C function and/or Unix system call. But you are not allowed to copy and paste any code from the Internet into your exam answer. Copying code from the Internet and pasting it to your answer can lead to no marks being awarded.
During the exam, communication with anyone (except staff in the Exam Office) for exam related issues is strictly prohibited. Once found out, an academic misconduct investigation will be initiated.
When to submit your exam answer file?
The normal examination time is 2 hours, however, we have added an extra 20 minutes to deal with some unexpected technical issues that may occur during an online exam.
When submitting your exam answer file, you should allow at least 5 minutes to submit your answer file. Therefore, you should start submission at least 5 minutes before the submission deadline, otherwise there is a risk that you may not be able to submit your answer successfully (eg, due to server overload or network congestion).
Interview after the exam
To ensure that no ghostwriting occurs during the exam, I may ask some of you for an interview to discuss the solutions you have submitted.
• The interviewees are selected randomly among all participants in the exam.
• The interviewees are also selected if something unexpected happens in the exam, eg, the solutions submitted by a student is much better than expected based on the student’s performance during the semester.
INSTRUCTIONS
1) This exam consists of 5 questions worth 100 marks.
2) Attempt all questions.
3) You must submit a single text file (named “ict374-exam.txt”) or a single PDF file (named “ict374-exam.pdf”) containing your answers to all questions on or before the deadline using the submission link below.
4) You must type your full name and student number at the beginning of the above file.
5) Your answer to each question must start with a line “Question i” where “i” is the question number, such as “Question 2”.
6) To increase the success rate of plagiarism detection, you must not copy the question itself to the above file. Submissions from all students will be rigorously checked by computer software as well as manually to detect any form of plagiarism.
7) You can access all teaching materials of the unit during the exam, including the textbook, lecture notes, lab sheets, assignment questions, as well as your solutions to lab exercises and assignments (including the group assignment).
8) You can also access the Internet for any public resources, particularly for information on the definition and use of standard C functions or Unix system calls. But you are not allowed to copy and paste any code from the Internet. Copying from any Internet source and pasting it to your code (unless asked) can lead to no marks being awarded.
9) You are not permitted to communicate with anyone (except staff from the Exam Office) regarding the exam questions during the exam.
10) To ensure no ghostwriting occurs during the exam, I may ask some of you for an interview to discuss the solutions you have submitted.
程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com