XML

kent logo

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.


Question 1:

Submission reference: IN82

Hi, as this module isn't starting until 2006 should it not read 'anonymous questions 2006' ?

Answer 1:

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).


Question 2:

Submission reference: IN86

Who will be lecturing the "architecture" part of the course ?

Answer 2:

Winston Waller from Electronics will be reponsible for this part of the course.


Question 3:

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?

Answer 3:

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.


Question 4:

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.

Answer 4:

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


Question 5:

Submission reference: IN104

Hi, I am just wondering have you set the first essay assessment yet?

Answer 5:

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)


Question 6:

Submission reference: IN106

Hi, what is the topic of the essay assessment? Thanks.

Answer 6:

This has now been set and is available here.

Keywords: essay


Question 7:

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.

Answer 7:

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


Question 8:

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!

Answer 8:

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


Question 9:

Submission reference: IN124

Hi! You haven't stated whether or not the referencing/bibliography counts in the 1000 word essay?

Answer 9:

The 1000 word limit is for the body of the essay. Additional words are allowed only in the references/bibliography section.


Question 10:

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.

Answer 10:

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.


Question 11:

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.

Answer 11:

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


Question 12:

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?

Answer 12:

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...


Question 13:

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?

Answer 13:

No particular plans as yet; we will have to see. Thanks for the suggestion.


Question 14:

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?

Answer 14:

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.


Question 15:

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.

Answer 15:

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 :-).


Question 16:

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 :)

Answer 16:

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.


Question 17:

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?

Answer 17:

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


Question 18:

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?

Answer 18:

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)


Question 19:

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 :)

Answer 19:

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


Question 20:

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?

Answer 20:

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)

Valid CSS!

Valid XHTML 1.0!

Maintained by Fred Barnes, last modified Thu May 8 12:58:03 2014