Referenced in an academic text book

My MSc project on memory management in the Linux kernel has indeed been referenced in an academic text book – Computing Handbook, Third Edition: Computer Science and Software Engineering – you can look me up in the preview there. The article that references my work is by the great Peter J. Denning, the “father” of the working set.

The book (one volume of a set) costs £157 so I am not sure if I am going to buy it just yet.

A moment reached

Dougal and the Blue Cat
Dougal and the Blue Cat (Photo credit: Wikipedia)

I have just submitted my “qualifying dissertation” to the University of York.

Latterly I have been thinking of my PhD studies in terms of the film Dougal and the Blue Cat – I grew up at a bad time (the virtual collapse of cinema going in the 60s and 70s) and a bad place (in a civil war of varying intensity) and this was one of the few films I saw in my childhood (pre-13) in the cinema and it did have a profound impact!

In the film the Blue Cat has to undergo several trials on his route to kingship, rising in rank as he goes. I have just made my bid for the MSc stage (if the University fail me they may recommend I write up the literature review for a standard MSc). Next would come an MSc by Research, then an MPhil, then a PhD.

I don’t want any of them – except the last one of course – but it’s a decent guide to the amount of effort required, so this feels like a real milestone.

But it’s also the easiest part – I have to (assuming my dissertation is passed – my viva is in September) actually do some research and experimentation now!

Mission accomplished

Licensed for reuse under creative commons - credit required, no commercial use permittedToday was graduation day for my MSc and I have to say I rather enjoyed it.

The master of Birkbeck, David Latchman, gave a very good speech I thought, emphasising the college’s commitment to its part-time students and to helping them get the funding to which they are entitled and we also got a speech by Gulam Noon – being made a fellow – who made his views very clear when he quoted the Hadith “the ink of scholars outweighs the blood of martyrs”.

The master also made the point that Birkbeck’s graduates are its greatest recruiters and that we should do our bit to encourage applications – which I am more than happy to do.

So, onwards and upwards.

Master of Science

I am very pleased to report that I have been awarded the degree of Master of Science in Computer Science – with distinction.

So, a PhD next? Maybe, need to explore the options.

I think I will post up my project report in a few days for those of you who might be interested in Linux memory management and page reclaim.



Is the time pages are in the working set stochastic?

Reading about the Monte Carlo method has set me thinking about this and how, if at all, it might be applied to page reclaim in the Linux kernel.

In my MSc report I show that my results show that working set size is not normally distributed – despite occasional claims to the contrary in computer science text books. But it is possible that a series of normal distributions are overlaid – see the graphic below:

Working set size for MySQL daemonThe first question is: how do I design an experiment to verify that these are, indeed a series of normal distributions?

(I may find out how I have done in the degree in the next week or so – wish me luck)

Done and dusted

Image via Wikipedia

I submitted my MSc project report yesterday, so that is it, at least for now, as a computer science student.

The report was on “applying working set heuristics to the Linux kernel“: essentially testing to see if there were ways to overlay some elements of local page replacement to the kernel’s global page replacement policy that would speed turnaround times.

The answer to that appears to be ‘no’ – at least not in the ways I attempted, though I think there may be some ways to improve performance if some serious studies of phases of locality in programs gave us a better understanding of ways to spot the end of one phase and the beginning of another.

But, generally speaking, my work showed the global LRU policy of the kernel was pretty robust.

I find out how I did in November.

Need to find some other programming task now. Mad bit of me suggests getting engaged with GNU Hurd. Though mucking about with Android also has an appeal.

Jobs, jobs, jobs

.Net Framework Logo
Image via Wikipedia

My post on the HESA longitudinal survey of graduates made it on to slashdot and provoked a healthy discussion here.

Lots of people complaining that what universities call “computer science” is not computer science at all – not enough maths or rigour or theory in general.

That may or may not be true: I am not an undergraduate, so cannot comment. But I do know from my experience of the MSc that you can make of it what you will.

A lot of people on the course complained that the object-orientated programming and design part was in Groovy and not Java (or, heaven forfend, some .NET flavour). Unlike me they worked in IT and saw the course as a step up the career ladder – I saw it more as a mind expansion thing (though also was about proving to employers that my claim of IT skills was real). The more I read – especially when I got into Structure and Interpretation of Computer Programs – the more I could see what the lecturers were on about.

I don’t think one position was superior to the other and I certainly don’t think teaching Java instead of Groovy would have harmed anyone’s employment chances – so the argument that people teach useless task-orientated stuff and not enough science does not work for me in explaining high levels of unemployment.

Men and boys who are poorly socialised strikes me as a better explanation, but again I am not backing that with any evidence!

Coming close to the end

Shows the kernel's role in a computer.
Image via Wikipedia

Suddenly, the writing phase of my MSc project feels close to the end.

It’s not over by any means – I have a whole substantial section to write on experimental results and then another stating why the two main sets of experiments had similar (negative) results. But the end is visible.

That is actually a bit scarey. Because while the writing goes on it is possible to think “I can smooth that contradiction out later” – now later is getting close to now.

Actually, the remarkable thing so far is how coherent it all feels. Ten days ago, my results in the notebook seemed to be little more than a collection of random numbers produced by equally random software patches. But that was, it is now clear, mainly panic driven – actually I seemed to have approached the experimental phase in a reasonably sensible and rational way.

It is quite reassuring to discover you are not an idiot after all!

Nasty computer scientists

Bertrand Meyer
Image via Wikipedia

I am having a particularly bad day with the MSc project report – finding it difficult to motivate myself to write more and unconvinced the examiners will be impressed by my work – so maybe I should not dwell on this, but it is interesting, so what the hell.

Computer science, it can feel, is not taken quite seriously by other scientists – or indeed, by the world in general. Perhaps that explains the low level of graduate employment for those with computer science degrees (or perhaps the graduates explain why others do not take it quite as seriously as other scientific disciplines?). Or maybe it is to maths as engineering is to physics – insufficiently pure and for the artisan and not the gentleman?

Well, Bertrand Meyer has another possible explanation – it is because computer scientists are too rude about one another. This extract says it all:

The particular combination of incompetence and arrogance that characterizes much of what Naughton calls “bad refereeing” always stings when you are on the receiving end, although after a while it can be retrospectively funny; one day I will publish some of my own inventory, collected over the years. As a preview, here are two comments on the first paper I wrote on Eiffel, rejected in 1987 by the IEEE Transactions on Software Engineering (it was later published, thanks to a more enlightened editor, Robert Glass, in the Journal of Systems and Software, 8, 1988, pp. 199-246 External Link). The IEEE rejection was on the basis of such review gems as:

  • I think time will show that inheritance (section 1.5.3) is a terrible idea.
  • Systems that do automatic garbage collection and prevent the designer from doing his own memory management are not good systems for industrial-strength software engineering.


Birkbeck College
Image by Matt From London via Flickr

I get a lot of people coming to the site clearly considering whether it is worth their while taking up their offer of a place to do an MSc in Computer Science at Birkbeck. So, I want to say that they should, but they should think about:

  • Have they got the time – for a part-timer this can mean three evenings a week of three-hour’s worth lectures: you can get away with missing some (as I had to because I was out of the country) but you will suffer as a result.
  • Have they got the right mental attitude – I have to say I was a bit iffy on this in the first year (until the shock of the exams), as I thought it was all C++ (been there, done that) and a bit of ‘A’ level maths – turned out to be a bit harder than that after all!

It’s quite hard work in the end – especially the very end, with the project – your friends and relations will think that because you have passed the exams it must be a doddle from this part on, when it actually gets worse. You can think of it as passing the exams meaning you have reached the level of a graduate, you then have to complete the project to earn the Masters – so three years in two years (or one if you are full-timer) and then another year in three months!

But it’s also great, an intellectual stretch and a gateway to lots of other things.

If you do take it up, try and read up some stuff in advance – I really wish I had done that in my first year – I have a few recommendations here, but there are lots of other books to read.