DistOS 2023W 2023-02-13

From Soma-notes

Notes

COMP 4000/5102 Midterm Review
-----------------------------

Potential questions

* What was the vision of the creators of UNIX at Bell Labs?  How did later systems violate that vision, and how did later systems from Bell Labs try to return to it?

* How has the abstraction of files changed in the context of early distributed operating systems?  What is a "file" in different contexts?  Why has it changed?

* How has the abstraction of volatile memory changed?  What was it originally, what did it become, and what was it along the way?

Good answers to essays will talk about several systems (at least 3, often 5 or more), but won't summarize them.  Instead it will make reference to them as part of discussing higher-level points, bringing in relevant details as needed.

Open book, open note, just no collaboration/communication (except with me)

Midterm will be made available through brightspace, open at 11:30, submissions due by 12:55, close at 1 PM (so 5 min grace on both ends).
  - just an "assignment", you download a PDF of the test questions and upload a PDF or text file with your answers

I'll set up the assignment tonight, it should have accommodations, if you don't see the extra time you should get let me know

You don't need to join the class zoom.  I'll be here, though, to answer questions.

Intellectual honesty matters and if I see evidence otherwise I'll have to report it.

Remember the point of the midterm is to see if you read and understood the readings and have integrated that knowledge beyond just "paper X says Y".

Your essays should have a clear introduction and conclusion, and the introduction should contain a thesis that you argue for.  Both intro and conclusion can be short (maybe even one sentence each) but they should be there.  Make it a self-contained essay that is readable without reading the prompt question.

You can look stuff up in wikipedia etc, just no collaboration
and no large language models

Please use multiple paragraphs

I would make an outline of your question first then write your essay.  You can submit the outline in addition to your answer if you don't manage to finish an essay, I can give partial marks.


Student questions
-----------------
* How does a distributed operating system ensure reliability and fault tolerance?
 - lots to say
 - but really more applicable to second half of the course


* What were the competing visions of what a distributed OS should be or offer to users? How did the MoAd/Alto compare to later implementations Locus/Sprite?
 - bit vague
 - I do like comparing earlier and later systems esp on level of the vision


* How is the security in all systems? Compare and contrast
 - UNIX, Multics have security, as does Plan9
 - other systems not so much


* What strategies were used to try to achieve scalability in the systems we have discussed? What are some examples and why are the beneficial?
 - not so scalable really
 - again, better for the final exam
 - but there are a few mechanisms
 - maybe discuss "how scalable" and "what were the limits" and caused by what?

* Explain how caching is used in all the systems?
 - definite caching in Sprite, AFS, Plan9 to a degree
 - most others didn't really

* What are the reasons for each system's greater performance and scalability?
 - would have to quantify, can be hard given the limited data we've seen in the papers

* How does a distributed operating system handle files? What different ways are there and what are their consequences?
 - good thing, files are everywhere and how they are handled varies


* What did RPC and DSM both try to provide? Why was one successful and the other not?
 - I like this
 - but only really covers a subset of readings


* How does a distributed operating system differ from a traditional operating system?
 - lots of ways to answer
 - could answer without referring to the readings
 - would want a more specific question


* How does a distributed operating system scale up and down?
 - again we haven't really discussed scalability yet
 

* which techniques would you use if you were to build a distributed operating system? 
 - only makes sense if you discuss specific design goals

* Discuss Unix inspiration in systems that came after? How would things be different if unix wasn’t easily available to everyone and wasn’t developer friendly?
 - Maybe focus more on how systems are unix-centric versus not
 - I like the idea but doesn't quite fit the readings, they are a bit more focused

* Can you classify local OSes have a lot of distributed OS features? (Like cloud connectivity etc)
 - not sure how to answer without reference to modern systems?

* What was the main abstraction in Unix and what impact did it have on the design of other operating systems
 - might just talk about files directly
 - but definitely a big thread in this course

* Is there any similar reason that both Multics and DSM failed
 - I'm not quite sure how I'd answer this, but it is an interesting question!

* How have early distributed operating systems influenced the development of more recent systems, and what are some of the key lessons learned from these early systems? 
 - good for the end of the term
 - could work if scope is a bit narrowed
 - good to focus on a specific aspect of this influence