[CSE]  Advanced Operating Systems 
COMP9242 2014/S2 
UNSW
CRICOS Provider
Number: 00098G

PRINTER Printer-Friendly Version

On-Line Survey 2006

Survey ID1177
TitleCOMP9242 06
DescriptionCourse Evaluation Survey for COMP9242 Advanced Operating Systems. Version for Session 2, 2006.
AnonymousYes
Fill Ratio80% (12/15)
# Filled12
# Suspended1
# Not Filled2
(required) indicates required field
Your comments will help us to assess and improve our courses, not only for future generations, but for your further study in CS&E. We really look at the results and appreciate your feedback! Several changes to the course over the years were a direct result of student feedback.


Note: Please do not enter "no comment" or something similar into comment boxes. If you don't have anything to say, just leave the box empty.
1. Quick Evaluation
1. Give a high rating if you have a good opinion of something (e.g. interesting, useful, well-structured, etc.). Give a low rating if you have a bad opinion of something (e.g. too slow, confusing, disorganised, etc.)  (required)
Question type : Single answer -- Radio Button
  Excellent Satisfactory Poor
Gernot Heiser (58%) (33%) (8%) (0%) (0%)
Kevin Elphinstone (58%) (33%) (8%) (0%) (0%)
Guest lecturer Matt Chapman (17%) (58%) (25%) (0%) (0%)
Guest lecturer David Snowdon (33%) (33%) (33%) (0%) (0%)
Guest lecturer Daniel Potts (17%) (50%) (25%) (8%) (0%)
Guest lecturer Godfrey van der Linden (50%) (42%) (8%) (0%) (0%)
Guest lecturer Charles Gray (17%) (42%) (42%) (0%) (0%)
Guest lecturer Stefan Petters (33%) (33%) (33%) (0%) (0%)
Tutors/demonstrators (50%) (42%) (8%) (0%) (0%)
Course web pages (33%) (25%) (25%) (17%) (0%)
Exam (42%) (50%) (8%) (0%) (0%)
Reference material (25%) (33%) (33%) (0%) (8%)
Computing resources (67%) (25%) (8%) (0%) (0%)
COMP9242 overall 10 (83%) (17%) (0%) (0%) (0%)
2. General
2. Which factors most influenced your decision to enrol in this course?  (required)
Question type : Multiple answer -- Check Box
Interest in operating systems as an area of study 10 (83%) chart
Chance to build a system 10 (83%) chart
Chance to get fingers really dirty 10 (83%) chart
Would like to do some systems research (42%) chart
Looking for a challenge 11 (92%) chart
Looking for an easy course (0%) chart
Friends told me it was good (17%) chart
3. Other factors not mentioned above?
Question type : Short-answer
Answer at the bottom page (2 comments)
4. Would you recommend this course to another student such as yourself?  (required)
Question type : Single answer -- Radio Button
Yes 11 (92%) chart
No (8%) chart
5. The course is heavy on design and implementation issues. It also tries to remain close to present research issues. What do you think about this?  (required)
Question type : Single answer -- Radio Button
  Too
much
Just
right
Too
little
Theory/general principles (0%) (8%) (58%) (25%) (8%)
OS design and implementation (0%) (17%) (42%) (33%) (8%)
Current research issues (0%) (42%) (33%) (25%) (0%)
6. What were the best things about this course?
Question type : Long-answer
Answer at the bottom page (8 comments)
7. What were the worst things about this course?
Question type : Long-answer
Answer at the bottom page (8 comments)
8. How does the workload in this course compare to workloads in other ...  (required)
Question type : Single answer -- Radio Button
  Much
Lighter
Similar Much
Heavier
COMP courses at this level (0%) (8%) (0%) (42%) (50%)
COMP courses in general (0%) (0%) (0%) (8%) 11 (92%)
Courses in general (0%) (0%) (0%) (17%) 10 (83%)
9. How does the overall quality/value of this course compare to other ...  (required)
Question type : Single answer -- Radio Button
  Among
the best
Average Among
the worst
COMP courses at this level 10 (83%) (17%) (0%) (0%) (0%)
COMP courses in general (75%) (25%) (0%) (0%) (0%)
courses in general (67%) (33%) (0%) (0%) (0%)
10. What background knowledge do you think you were missing that would have helped you in this course? Is distinction in COMP3231/9201 a suitable preparation? Is it too harsh?
Question type : Short-answer
Answer at the bottom page (8 comments)
3. Content/Syllabus
11. Please rate the relevance/appropriateness of the lecture topics.  (required)
Question type : Single answer -- Radio Button
  Very
relevant
Average Inappropriate N/A
L4 general and L4 API (42%) (50%) (0%) (0%) (8%) (0%)
Caching & TLBs (75%) (17%) (8%) (0%) (0%) (0%)
Microkernels in general (67%) (25%) (0%) (0%) (0%) (8%)
Virtual machines (50%) (25%) (17%) (0%) (0%) (8%)
Microkernel construction (50%) (25%) (17%) (0%) (0%) (8%)
Hardware stuff (33%) (42%) (8%) (0%) (8%) (8%)
Power management (33%) (17%) (33%) (8%) (0%) (8%)
SMP/SMT issues (42%) (33%) (17%) (0%) (0%) (8%)
Mac OS X IOkit (17%) (17%) (58%) (0%) (0%) (8%)
Comparison of OS designs (42%) (17%) (33%) (0%) (0%) (8%)
Computer security (42%) (42%) (8%) (0%) (0%) (8%)
Real-time systems (42%) (17%) (25%) (8%) (0%) (8%)
Local OS R&D (17%) (17%) (33%) (25%) (0%) (8%)
12. Please tell us how interesting you found the lecture topics.  (required)
Question type : Single answer -- Radio Button
  Very
interesting
Ok Boooooring!
L4 general and L4 API (17%) (42%) (25%) (0%) (17%)
Caching & TLBs (42%) (42%) (8%) (8%) (0%)
Microkernels in general (42%) (25%) (25%) (8%) (0%)
Virtual machines (33%) (50%) (8%) (8%) (0%)
Microkernel construction (25%) (58%) (8%) (0%) (8%)
Hardware stuff (67%) (0%) (33%) (0%) (0%)
Power management (33%) (17%) (17%) (33%) (0%)
SMP/SMT issues (17%) (33%) (42%) (0%) (8%)
Mac OS X IOkit (25%) (42%) (25%) (8%) (0%)
Comparison of OS designs (33%) (33%) (25%) (8%) (0%)
Computer security (17%) (42%) (42%) (0%) (0%)
Real-time systems (42%) (17%) (25%) (17%) (0%)
Local OS R&D (33%) (17%) (42%) (0%) (8%)
13. Which material do you think will be most useful to you in the future?  (required)
Question type : Long-answer
Answer at the bottom page (12 comments)
14. Which material, not currently in this course, would you liked to have seen covered?
Question type : Long-answer
Answer at the bottom page (6 comments)
15. Which of the current topics would you like to see scaled back or excluded?
Question type : Long-answer
Answer at the bottom page (3 comments)
4. Lectures
16. What factors caused you to attend lectures?  (required)
Question type : Multiple answer -- Check Box
I had enough spare time (25%) chart
The lectures were too good to miss (67%) chart
Given the pace and lack of a textbook, I could not afford to miss the lectures (25%) chart
It was as good a place as any to take a nap (8%) chart
I wanted to be seen to be there (8%) chart
None, I skipped most (25%) chart
17. What were the reasons for skipping lectures?  (required)
Question type : Multiple answer -- Check Box
Overall workload in this and other courses (50%) chart
Lecture notes and references cover the material adequately (17%) chart
Lectures are boring (17%) chart
There was not enough material to justify attending lectures (8%) chart
First half of the course was more interesting than second half (0%) chart
None, I attended (almost) all (50%) chart
18. Any suggestions for improving lectures?
Question type : Long-answer
Answer at the bottom page (7 comments)
5. Project
19. What was the level of difficulty various parts of the project?  (required)
Question type : Single answer -- Radio Button
  Too easy Just right Too hard
Milestone 0 (8%) (33%) (50%) (0%) (8%)
Milestone 1 (8%) (42%) (50%) (0%) (0%)
Milestone 2 (0%) (8%) (75%) (17%) (0%)
Milestone 3 (0%) (8%) 11 (92%) (0%) (0%)
Milestone 4 (0%) (0%) (42%) (33%) (25%)
Milestone 5 (0%) (8%) 10 (83%) (8%) (0%)
Milestone 6 (0%) (0%) (50%) (42%) (8%)
Milestone 7 (0%) (17%) (67%) (17%) (0%)
Milestone 8 (0%) (0%) (67%) (25%) (8%)
System documentation (0%) (0%) 10 (83%) (17%) (0%)
Project overall (0%) (0%) (75%) (25%) (0%)
20. How well was the project specified?  (required)
Question type : Single answer -- Radio Button
  Very clear Ok Confusing
Milestone 0 (25%) (33%) (25%) (8%) (8%)
Milestone 1 (17%) (50%) (33%) (0%) (0%)
Milestone 2 (8%) (50%) (25%) (0%) (17%)
Milestone 3 (17%) (33%) (33%) (17%) (0%)
Milestone 4 (17%) (25%) (25%) (25%) (8%)
Milestone 5 (33%) (42%) (25%) (0%) (0%)
Milestone 6 (25%) (42%) (17%) (17%) (0%)
Milestone 7 (25%) (33%) (42%) (0%) (0%)
Milestone 8 (17%) (33%) (17%) (25%) (8%)
System documentation (0%) (17%) (25%) (50%) (8%)
Project overall (17%) (8%) (58%) (17%) (0%)
21. What was the quality of...  (required)
Question type : Single answer -- Radio Button
  Excellent Ok Poor
Documentation/reference material (8%) (33%) (42%) (0%) (17%)
Supplied code (8%) (25%) (42%) (25%) (0%)
Hardware platform 11 (92%) (0%) (8%) (0%) (0%)
Consultation time help/support (25%) (33%) (33%) (0%) (8%)
On-line help/support (25%) (33%) (33%) (8%) (0%)
22. Any suggestions for improving the project?
Question type : Long-answer
Answer at the bottom page (9 comments)
6. Anything Else
23. Any other comments/suggestions that might help us to improve the course in the future?
Question type : Long-answer
Answer at the bottom page (6 comments)

3. Other factors not mentioned above?
1: I had a partner worked out.
2: Something difficult for a change
6. What were the best things about this course?
1: @$(11 @|2+ 0|\\| +|-|3 \\X/1|<1 And from the second examination paper: “In InfiniBand, QP accesses (posting descriptors) include writing WQEs to the QP buffers and ringing doorbells (writing to UAR pages) to notify the HCA. Then the HCA can use DMA to transfer the WQEs to internal HCA memory and perform the send/receive or RDMA operations.” Very entertaining.
2: Building a working system Getting to know what L4 is about
3: Everything! (well, almost) The lectures were great, and the project was the best practical work I've ever done.
4: Finally getting to stretch my (programming) legs. Learning about new and relevent topics, I feel like the skills I have gained from this course are actually directly applicable to the real world. Small class of focused students.
5: Finally, a course that sits you down and gives you just enough guidance to make something really big and impressive with still plenty of room for personal flair. Had a great time working with my partner who is a really good guy and really knowledgeable about the field. Also, enjoyed free booze with the great guys from NICTA, Godfrey is hilarious when he's intoxicated.
6: I got to play with operating systems more, and to learn more about operating systems other then monolithic kernels. Designing a whole kernel structure, from start using a multi threaded design all other aspects. To know that my system could execute user land applications, load elf, page to disk, print to a serial output and to disk as well as sleep for a desired amount of time was rewarding to see.
7: Something actually useful produced. None of this trivial application crap. SLUG was really neat.
8: The milestones
7. What were the worst things about this course?
1: Documentation for libnfs was appalling. The wiki didn't work: especially with patches. ALL PATCHES SHOULD BE DISTRIBUTED THROUGH MORE CONTROLLED, OFFICIAL CHANNELS.
2: Feeling like one has wasted a lot of time doing things the wrong way, then fixing it up.
3: No wireless in the oud lab.
4: Not sleeping most Thursday nights, not being able to sleep in lectures didn't help either! Seriously though, not much at all.
5: The UOC rating is disproportinate to the amount of work that is necessary to pass this course
6: The drain on free time and other subjects. I'm not asking you to change it or anything, it was just something hard.
7: The required workload, Some milestones were tedious, this course is an elective, I like challenges, but I don't like tedious time consuming assignments.
8: Three hour lectures in the afternoon late in the week are not good.
10. What background knowledge do you think you were missing that would have helped you in this course? Is distinction in COMP3231/9201 a suitable preparation? Is it too harsh?
1: A distinction in COMP3231 is definitely needed
2: Distinction in COMP3231/9201 should remain as a pre-req
3: If one cannot get 75 one really doesn\
4: None. To complete all the assignments the knowledge in COMP3231 is ample knowledge
5: OS implementation issues. Reduce the Intro to L4 lecture, and introduce a “decision making in SOS” component.
6: Pre-req are execellent as they stand
7: Prerequisites are fine
8: might be too harsh, if people can show they are competent programmers
13. Which material do you think will be most useful to you in the future?  (required)
1: /me looks guilty for not attending more than two lectures.
2: A better understanding of all basic Operating System segments. The knowledge of design issues that occur while writing an operating system
3: Cache and Virtual Machines are two topics that are hugely popular and/or important in modern systems. Having a firm grasp of these will definately help later in life. SMP/SMT is a similar case, however I personally find it less interesting.
4: Caching, Security, microkernels, VMs.
5: Caching, TLBs and MMUs; Realtime and scheduling issues; Critical review of published results.
6: Caching/TLBs, virtual machines, microkernel construction, SMP/SMT
7: Decent lib documentation. For Gods sake at least fix libNFS and the reference guide so that it corresponds to the implementation. For example; libNFS is NOT thread safe. That is important information at the design stage.
8: General low level know-how will help improve all aspects of coding.
9: Hard to pin-point exactly, mostly the general exposure to advanced topics that helps you understand problems better
10: Hardware stuff probably
11: I am not sure about relevance because I cant be sure what kind of jobs I get in the future, but with regards to interests, I am mainly interested in caching and TLBs, VMMs, SMP/SMT issues lectures
12: Implementation, microkernels, security.
14. Which material, not currently in this course, would you liked to have seen covered?
1: BSD included in the comparison of OS designs.
2: Complete OS design, with respect to SOS, early in the semester (or apportioned regularly across the semseter).
3: I wouldn't have a clue, I did this course hoping to find out or at least be introduced to all relevant material an OS designer needs to know. I leave it to the disgression of the lecturer/s!
4: Maybe some architecture, but there isn't really time for it and it is probably off-track.
5: More OS APIs and personalities design rather than just kernel design.
6: More implementation details would be nice.
15. Which of the current topics would you like to see scaled back or excluded?
1: I would like to say real time, however I feel the lectures covered enough for me to be able to do any necessary learning on my own. I feel it has saved me needing to do an entire course in Real Time.
2: Microkernel construction, while important, could be a single lecture.
3: Virtual machines. They are an hot topic but are they worth a three-hour lecture?
18. Any suggestions for improving lectures?
1: A comfortable theatre is a must for 3hr lectures. Supply coffee.
2: As the project was relatively distinct from the lectures there was less incentive to attend. Not that this should be changed however.
3: Don't cover the same issues already covered in COMP3231, a lot of lectures went in the middle of the course cover the same topics previously just in some more detail with a lot of revision included. I would like to see lectures to be a place where we actually look at the relevance of research papers, and the interest ideas that they cover. Instead of security lectures being close to the same as previously covered, have a short part of the lecture for revision, and the next part covering a system or design principle for implementing these. This would hopefully promote a more free flowing discussion of ideas instead of the dry, long 3 hour lecture. Make the lectures relevant to the assignments, Twice I read the lecture in regards to the assignment, one for some L4 API help, which was better sought from the API documentation, and second the caching aliasing issues that our system was observing. The lectures just didn't connect with what we implemented.
4: Obviously, a better room. Consider splitting it to 2 seperate lectures, 1 hour intro, then a 2 hour where we can really get into the details. Maybe suggest some readings after the first to familiarise students with the material.
5: Put lectures on at the beginning of the week so people arn't already too frustrated and angry with the AOS assignment to attend. Please don't take me and my partner's falure to attend as an indication that the lectures were bad (I honestly couldn't tell you if they were), I was just doing 33 units of credit as well as tutoring and needed to do my assignment all Thursday with my partner. As I was saying, the day before due date was pretty bad for a lecture.
6: Run them 5-8 or 6-9 like most civilised higher level courses.
7: Split some bigger topics in two different days and discuss two topics in three hours instead of only one.
22. Any suggestions for improving the project?
1: After the firsts milestones, let each group choose which milestones attempt instead of having a fixed roadmap.
2: Consultation times were left unused by students, this is not a case of students not needing help, it was a case of inappropriate hours for consultation, the choice was either a Wednesday morning, or Thursday night. These consult time are very late in the week if there are initial design problems. A consultation on either Monday afternoon or Tuesday afternoon would allow students to discuss possible design issues early on rather then 12 or 48 hours before the milestone is due. No computer engineering student seems to like attending lectures or tutorials in the morning, especially after a late night coding session. Why place consultations in the morning? The project seemed to implement a system that was implemented in COMP3231. I had already implemented a frame table, page table, system call interface, file system tables all in COMP3231, it would be great if this could be avoided by providing stub code for these allowing students to try to tackle some new issues with operating system and allowing students to also get a system that may have some real world performance. Following the POSIX standard for system calls, why have different names for getpid()... The standard is useful and the sooner students understand and become comfortable with the standard the better. Test code, it is not hard for students to write, however if test code is provided students will test, and this also reduces the time taken to implement the system. Providing a shell is a great help, even if it is rather cryptic code.
3: ICK! NFS implementation was awful! Apparently it was meant to be like that but it frustrated the hell out of most people.
4: I've marked a few milestones as “hard”, but hard is a refreshing change at CSE. How about documenting L4 properly? Specifications were too informal (just informal is fine).
5: Maybe forcing more work done in the beginning of the session, as other deadlines seems to creep up by the end of session.
6: Milestone zero should include a semaphore server to help you do something more useful. I'm not convinced there aren't some issues with the networking stack/nfs which case problems on startup. Despite our best efforts we never found some of the problems. It is very true that if you sat down and did it all over again at the end of session it would be much better
7: The AOS Design Guide page mentions that we are relatively free to implement the project as we like, however I must admit I felt that I was going into each milestone not knowing what to expect the next week. Making large decisions early on, even mid-way through is very tough. Possibly consider spending some lecture time giving an overview of what you expect our SOS to be able to do. Give us more time to implement the file system, for the last few milestones it becomes critically important. Of course with the extended amount of time you should expect higher functionality, but this will only help us in the long run and will save a lot of stress and hair tearing-out in the last few weeks.
8: The filesystem milestones were mostly tedious--didn't learn much from them.
9: fix the documentation!
23. Any other comments/suggestions that might help us to improve the course in the future?
1: Maybe one could do a paper review at the half way point, rather than leaving both to the end? Some experience and feedback before doing both might have been good. either that or maybe every two weeks dedicating 20 minutes of the lecture to a "reading group" ... set a paper and have the experienced lecturer lead a dissection of the key points. critically analysing high-level papers is a very important skill, and personally it is not something that comes naturally, so any extra help from the experienced is great.
2: Regarding the project specs question above, the spec shouldnt be too detailed(..it wasnt..) since it might lead to some degree of spoon-feeding. Just my two bits.
3: Seems a little big for 6 units, more than twice as much work as any other course I've ever done, would be really sad to shrink it though but could be better as 12 units.
4: The project should be better documented, and harder. Consume the souls of all that enrol.
5: This should be a 12UOC course
6: Update the announcements section on the course web page more often.



2003-2004, phpSurvey

Last modified: 20 Feb 2007.