CO527 Anonymous Questions and Answers |
This page lists the various questions and answers. To submit a question, use the anonymous questions page. You may find the keyword index and/or top-level index useful for locating past questions and answers.
We have taken the liberty of making some minor typographical corrections to some of the questions as originally put. Although most of the questions here will have been submitted anonymously, this page also serves to answer some questions of general interest to those on the course.
Submission reference: IN82
Hi, as this module isn't starting until 2006 should it not read 'anonymous questions 2006' ?
The 2005 refers to the 2005/2006 academic year. Putting 2005 avoids a potential problem if the module ever switches term (e.g. to the first term in 2006/2007).
Submission reference: IN86
Who will be lecturing the "architecture" part of the course ?
Winston Waller from Electronics will be reponsible for this part of the course.
Submission reference: IN92
Hi, will this module extend any aspects of Java/C/C++ or assembly programming as part of the materials covered? Will it cover any aspects of kernel or socket programming on unix or linux?
Although we've not finalised the coursework component yet, chances are it will involve some programming, or a programming-related task. The previous CO501 course (operating systems) used Java. However, more than a few students were frustrated by this. Turns out that the CS students' only exposure to Java was through BlueJ (which is woefully inadequate for the coursework that was given, although I did try). And the CSE students mainly used C and not Java, so complained about having to do Java. For the operating-systems part of the course, at least, we will not be extending existing knowledge about Java, C, C++ or assembler. Socket programming will probably be covered in a small amount of detail (in general information about the POSIX interface). I'd like to do more, but that would probably require a working knowledge of C to be useful and CS students will only have studied Java and Haskell in any depth by this point. It's not an ideal situation; I'm open to suggestions..
Updated: It's likely that some MIPS assembler will be involved, in both parts of the course. Although MIPS hardware isn't as widespread as Intel or Sparc, it's definitely a much nicer architecture to program.
Submission reference: IN96
Can you please post the reading list, with recommended reads and any wider reading, so we can get the books before course start.
I've updated the reading list on the module web-page. Keep an eye on it, as more may be added (e.g. architecture), but what's there should provide a good starting point.
Keywords: book
Submission reference: IN104
Hi, I am just wondering have you set the first essay assessment yet?
Not quite yet, but very shortly. Our bad for the delay, sorry about that. To compensate, the deadline has been moved to Monday in week 16 (30th Jan).
Referrers: Question 7 (2005)
Submission reference: IN106
Hi, what is the topic of the essay assessment? Thanks.
This has now been set and is available here.
Keywords: essay
Submission reference: IN117
Hello, I see the assesment has been set and you said that you would adjust the deadline accordingly, when is the approximate date and time you would like this work in by ? Thank you.
The deadline can be found on the assessments page, or from Question 5 (2005) -- it's Monday 30th Jan, hand in a printout of your essay to CAS by 4pm.
Oh, and if you look at the actual assessment, all the information is on there...
Keywords: essay
Submission reference: IN118
Is there any chance that the Electronics and Computer Science departments could communicate before setting us coursework, please? We already have a 12 page report due the same week!
Unfortunately, chances are such collaboration is unworkable. I'm guessing this effects only the CSE students ? The CS department manage deadlines within its own degree programmes across modules (Dr. Andy King coordinates this), and Electronics probably does similar. Trying to rearrange coursework deadlines in both departments to fit CSE students would probably be too much hard work (bear in mind that there's a load issue on the markers to consider, not just the students!). Not the answer you wanted I think, but two ways forward: talk to your course-rep, who can bring it up for discussion at the relevant boards of studies; and effective time-management :-).
Keywords: coursework
Submission reference: IN124
Hi! You haven't stated whether or not the referencing/bibliography counts in the 1000 word essay?
The 1000 word limit is for the body of the essay. Additional words are allowed only in the references/bibliography section.
Submission reference: IN137
Hi, do you know of any operating systems based journals? Would the ACM journal be acceptable? Also, when you asking about memory and cpu time, do we have to look at wastage outside of those factors that might effect the variables. Or, do we just generalize and assume i.e while outside variables may also effect the given wastage? The topic is very general so I just want to isolate a given condition of assumption that operating systems are a wastage of memory and cpu time.
You may be taking a more detailed, technical view than I require. The question is general, and the answer can be fairly general too; just make sure that you can justify your answer.
I am not sure that OS journals will help too much here; you'd probably be better off taking a look at the early parts of a textbook or two, as a start.
Submission reference: IN138
Where can we find out information on guidelines for referencing structure for a computer science related essay ( bibiliography entries, footnotes, general referencing within the essay) as every dept seems to have a different requirement/guideline? Thanks.
I have no particular issues with any reasonable style. The department has
no hard and fast rules, although you might want to use the stuff you were
supposed to use in CO321 last year, which is at:
http://www.cs.kent.ac.uk/teaching/05/modules/CO/3/21/materials/referencing.html.
Keywords: essay
Submission reference: IN142
Is the assessment question answerable from lecture material already given, or can we assume that relevant information will be given out in the next few weeks? Basically I'm asking, if I write the essay now, will I be missing out key points?
The answer is...neither! OK, the first lecture will help a bit...but the idea is for you to go away and find out. Lectures between now and the deadline are not going to hep a great deal...
Submission reference: IN154
Hello, are you going to cover any examples from Inferno or Plan 9, apart from Unix/Linux, Windows, and VMS, as part of this module?
No particular plans as yet; we will have to see. Thanks for the suggestion.
Submission reference: IN186
I am 200 words over the proposed 1000 target, will this be a problem? Also, will we need to quote books/ websites in our essay or is it adequate enough to just mention what we have looked at in the bibliography?
It is a bit too much. You should try and reduce it.
It's up to you how much you quote, but probably best to keep it to a minimum if you are running out of words! A bibliography is required and sufficient.
Submission reference: IN197
Hello. Do you think that for assesment 2 the 'see MIPS run' book ISBN 1-55860-410-3 would come in quite useful? i have looked at the librarys stock holding and they seem to have no copies of this book at all.
According to the library, some orders have been passed to "acquisitions" (whether or not they'll appear anytime soon who knows..). The book would indeed be useful, but it is not necessary. The lecture notes, other information provided by us and google should do just fine :-).
Submission reference: IN200
Reading the AQP today, I see that you now specify a bibliography is required. I'm now a little concerned because you never specified this earlier, and I'm sure you've guessed by now that I didn't do one. A giveaway would have been to specify the citation style, but this was never mentioned. Given that you state its required, am I to assume that I'll automatically lose marks for not doing one? If so, my question is to ask why someone who pasted in a couple of Wikipedia citations becasue they couldn't define 'operating system' off the top of their head should get more marks than someone who didn't need to look it up? Another example is reference to low-level code and operating systems in the tech press - why should we be penalised if we *knew* relevant material instead of googling for it? If not, then I look forward to the next essay :)
It's sort of assumed that you'd do one, or you might not be able to satisfy the plagiarism rules by stating what isn't your work.
However, I won't treat it as essential.
Submission reference: IN208
assessment 2: what is it you want us to do with it ie code what, where, to do what? What are the questions? It just states a whole lot of assembly code not enough explanation of what exactly you want us to do?
Sure you followed the links to further down the page ..? Quoting from the sorting-strings description:
For this option, you should download sortstrings.s. When run in its default state, this will print out the strings, call the sort routine (which you have to implement), then print the strings again (hopefully sorted correctly now).
Which states fairly clearly what you're expected to do: i.e. implement the code for the sort routine. Looking at the code in the context of the question may help for some.
Keywords: mips-asm
Submission reference: IN237
I was trying to read the example (factorial) Java and MIPS side by side, and I have a few questions...
Whats the point of the nop instruction? Is it to kill time for something else to happen?
I understand that you want to store the return address, but how do you know its 4 slots on from the stack pointer?
I also understand you want to save parameters in the stack frame (from CO524), but the line:
sw $a0, 0($sp) #; save n
puzzles me... surely you are saving *over* the stack pointer? Or are you just saving at the very first location in the stack frame?
For the nop instruction, yes, it's kind of killing time, but has a more specific function in some of the places I've used it. You'll see it tends to appear after jump or branch instructions -- this is, in theory, sitting in the branch delay slot. The pipeline nature of the MIPS architecture means that by the time the target of a branch goes into the instruction-pointer, the instruction after the jump will already have started executing. You don't need to worry too much about this because (1) SPIM doesn't emulate the branch delay slot, (2) the way that the assembler codes branches usually means that something useful ends up in the delay slot anyway. As a general rule of thumb though, after a branch or jump, drop in a 'nop'. Incidently, some other RISC architectures (like the Sparc) have this feature; Intel doesn't (at least not at the programmer-visible level).
For storing the return-address at offset 4 on the stack (or any other offset), I know it's there because that's where I decided :-). It's up to the assembler programmer to decide how to arrange things on their stacks, but the general convention is to put saved registers near the top (bigger offsets) and local-vars near the bottom (smaller offsets). On entry to the procedure, the stack-pointer is decremented by the space required (stacks grow down in memory).
The "sw $a0, 0($sp)" is storing at the memory location the stack-pointer holds (so the very first location on the stack). The stack-pointer is a processor register -- "sw" writes to memory.
Keywords: mips-asm
Referrers: Question 29 (2005)
Submission reference: IN248
Hi,
I have been giving the string sorting assembler a try over the last week but to be honest my *attempts* are not amounting to anything useful. I have had a go at the exercises you have set but I can't seem to write a correct solution, despite being able to (mostly) understand your solutions.
One of my major problems at the moment is determining how you read each string in seperately to compare the two of them. I am presuming you get two different ones then store them in temp registers before comparing those temp registers using blt, however im probably completely wrong. Im just not sure how to read in two different strings from the 'array', because I cannot see a way to indiviually pick out one string from another.
Any help would be much appreciated :)
Now that you've seen my solutions to the exercises, I'd suggest going back and having another go at them. Part of being able to code in assembler is understanding what the problem is and then formulating a solution that you can code (from knowledge about what the individual instructions do and how registers/memory can be used). What probably won't work are "umm, don't quite understand, I'll try this and see what happens" approaches (as I so often see with people's Java code). Having said that, for the exercises and the assessment, you really will need to continuously refer to the MIPS assembler documentation (the one provided in the SPIM documentation is sufficient).
Your second paragraph hints at some confusion. For these exercises, try and forget everything you know about Java and its Strings. In this code, strings are just bytes in memory with nulls (byte value 0x00) at the end. In that sense, you don't need to read any strings -- they're already there. What you'll probably be dealing with are pointers to strings -- i.e. the memory address at which the first byte of the string appears. So to compare the strings, you might first compare the first bytes of each (which would clearly involve a load-byte instruction), then onto the next byte, and so on. The strings are of arbitrary length, registers are fixed-width (32-bits on this MIPS); so talking about reading strings into registers is a bit nonsensical, but you can talk sensibly talk about reading individual characters from strings (in memory) into registers.
Keywords: mips-asm
Submission reference: IN249
For the string sort option in the mips assignment, would it be enough just to do an ascii sort instead of a letter level sort?
That's fine, and indeed, what I'd expect -- most languages/libraries/utilties do string comparison this way.
Keywords: mips-asm
Referrers: Question 37 (2005) , Question 39 (2005)
Maintained by Fred Barnes, last modified Thu May 8 12:58:03 2014 |