Video summary
The upcoming final exam on May 15 is a comprehensive three-hour assessment covering the entire semester's curriculum in computer organization and operating systems. It consists of ten multiple-choice questions, six short-answer items where only the best four are graded, one medium-length question worth twenty points, and two required long-answer essays totaling fifty points. The review material spans from process abstraction and synchronization primitives like locks and semaphores to interrupts, context switching, scheduling algorithms, and address translation mechanisms involving page tables and TLB faults. Post-midterm topics include HDD and SSD architectures, file system structures such as inodes and buffer caches, journaling systems including the Berkeley Fast File System and log-structured filesystems, as well as research on virtualization types like full, para-, and container technologies. Students are also expected to understand computer design principles exemplified by Amdahl's Law corollaries regarding diminishing returns, performance benchmarking methods, and specific hardware components of disk drives.
Preparation strategies emphasize integrating lecture slides with programming assignments and previous exams while adopting a concise writing style for short answers to avoid unnecessary point deductions. For the essay questions, which are likely to integrate multiple subsystems rather than focusing on isolated topics, students should practice comparing pros and cons of different approaches, such as evaluating log-structured versus inode-based filesystems. Effective test-taking involves drawing diagrams where helpful, reading questions carefully to identify specific constraints like required kernel privileges, and allocating approximately twenty-five minutes per long-answer question while utilizing the full three-hour duration available. The review also touches upon advanced architectural concepts, including how big.LITTLE heterogeneous core designs impact virtual memory, CPU architecture, threading, and process management across various system topics.
The discussion further explores future technological shifts where terabytes of flash memory may replace traditional hard drives and dynamic RAM, a transition that would significantly alter file systems, process management, and virtual memory design principles. In the realm of virtualization, containers are highlighted as lightweight solutions suitable for resource-constrained devices like smartphones but dependent on operating system support to limit hosts to running only one type of OS, whereas full virtualization enables multiple distinct operating systems such as Linux alongside Windows or macOS to run simultaneously. The session concludes by inviting further questions and thanking the attendees for their participation in OS 421/521, reinforcing that a deep understanding of these interconnected concepts is essential for success on the cumulative exam.
Read the full video transcript
welcome to the final rotation and we're
going to do the final exam review so
it's going to be mostly similar to the
midterm exam review but customized for
the final exam so again we're going to
go over the location day time and then
the final exam material format and tips
we will also review last year's exam
glaive after we're done with the slides
so final exam will be next Monday 15 May
15 from 3:30 to 6:30 so three hours exam
the location will be the same as what's
your room but please double-check in
your my help and also keep an eye on the
discourse forum for exam announcements
the procedure will be similar to the
midterm there will be seating charts and
it will be almost similar to the midterm
procedure so final exam material I've
divided that into midterm topics we have
post midterm topics and then we also
have papers on some additional topics
that you've discussed in class so going
again quickly over the midterm topics
that you covered so sorting with the
process abstraction and you want that
process organized information about
other abstractions and it is not tied to
a hardware component we use process
abstraction to separate policy the what
from McKenna's the hell and why do we
use abstraction is to just like hide
undesirable properties provide or add
new features and organize information
you also should now have a clear view
that the threads abstract CPU
address space I'll track the memory and
the files of strike the disks
we've also presented you with the
process model that process Hal could
have one or more threats it could have
it also has an address space and a file
table that is a private to it we've also
said that there is a file handle or file
system is divided into three levels you
have the file table that is private to
the process and it has references to the
file handles file handles are also
privates to process but once you start
working to be sure the parent and child
and then you have the file objects that
are shared system-wide and file handles
have a reference to the file objects and
file objects map to locks on disk
we've also presented you with palces
goals processes goals you should have
now a good after completing the
programming assignment you should have a
good idea what and what each of these
process and falses goals does also we
then discussed synchronization and you
should by now know what is a critical
section why do we need to protect the
politicals a critical section and how do
we protect it so you've been presented
with various and also implemented
various synchronization primitives
sleep locks the condition variables read
the writer locks so you should have a
good understanding of these how to
implement them you should also have an
idea of deadlocks starvation race
conditions what are the definition of
each one of these and the differences
how should you avoid them also you
should have a good idea about some
synchronization problems in case you're
being asked about them
so you want waste time just like
figuring out what is that problem then
we moved into the interrupt and
exception handling
so for interrupt exception handling you
should know the types of interrupts and
you should know how to differentiate
between an interrupt and an exception
how should we handle an interrupt and
you've also discussed the context
switching you should have a good idea of
the process of context switch for
scheduling you should know why we need
scheduling which is we need it for
multiplexing CPU and you should have a
good idea of the thread States and the
transition from one state to another
what does it mean
also you should have a good idea about
scheduling algorithms round-robin and
all of the q RS DL you should be able to
compare them and prove them talk about
advantages disadvantages of each one of
them then we moved into the memory
management and that where we discussed
the virtual and physical addresses so
you should know the process of
translating virtual to physical
addresses how we divided up the virtual
address how we do retrieve the physical
address for a given virtual address what
is a page table what is a core map what
does the core map keep tracks off what
does the page table keeps a track up or
why do we need them also the different
implementation that we've discussed for
page tables
Flattr a linked list multi-level arrays
you should know how are these
implemented and advantages disadvantages
of each one of them also then we moved
into the TLB we've said that TLB is used
by the MMU
as part of the CPU to speed up the
virtual to physical address translation
also memory falls paid full TLB for the
difference between each one of them and
which one triggers the other so TLB for
doesn't necessarily triggers a page
fault but a page fault you must be
preceded by a TLB fault then we
discussed swapping also we've discussed
some algorithms on how we can choose a
page that we need to affect or swap out
so you should have a good idea of these
algorithms and advantages disadvantage
of each this is the midterm topics that
we covered then we moved into post
midterm topics we discussed disks and so
you should know what is an HDD SSD it
pros and cons for each one of them the
parts of the hdhdd you should know these
parts advantages disadvantages of each
one of them then we moved into files
what is a file what do we expect from a
file and file structure you should have
an idea of all of this for example where
should we store how should we store the
meta data about the file so you have
different ways for that you should know
all of these ways advantage disadvantage
you should be able to compare them
improve them file systems then we moved
into the file systems so you should know
the expectation of a file system why do
we need the file system what are the
design goals for a file system and what
are the data structures that are
presented so we presented several data
structures to organize data blocks we
should know these algorithms
and should be able to compare them
caching consistency caching and
consistency we've discussed buffer cache
we should know what is a buffer cache
and where should we put buffer cache and
why there are several scenarios for that
so you should be able to compare each
one of them and then we moved into
discussing journaling file systems so
you should know what is a journaling
what does a journaling mean and how does
a journaling file system works different
scenarios when there is a crash and how
does it recover we've also discussed the
Berkeley fast file system and also log
structured file system so for each of
these you should know you should have an
idea how does it work and advantages
disadvantages and several other topics
subtopics that are I couldn't cover
everything here but you should go over
the slides since the final exam is
cumulative so everything discussed from
day one up until the last day of classes
is included in the final so then we also
present a deal with some papers and some
additional topics so for the grade paper
you should have a good understanding
what is great different kinds different
types afraid and you should be able to
compare them then we moved into
discussing virtualization full
virtualization / virtualization
container virtualization so again all of
these you should have a good idea about
and
we should be able to compare them so to
what extent you should know to the
extent that's being discussed in the
class then we moved into performance and
benchmarking also we've discussed under
slow and then the paper hence for
computer system design so these are the
topics that we've covered throughout the
semester there are some stuff that you
really shouldn't miss for example page
table translation questions about page
table how to translate addresses you
should know if this is this comes into
the exam you should know how to do that
you shouldn't really lose point on these
such questions rate types make sure you
don't miss these also hence for computer
system design make sure you understand
and know couple of them you should be
able to compare them and discuss them so
these are some stuff that you shouldn't
for example and there's also the HDD
parts the this part don't miss out on
this stuff a question comes with a
figure we did have a question comes that
previous exams with the figure of the
disk and ask you asking you about parts
of the disk so you shouldn't really miss
points on such questions so any
questions on the material covered
throughout the semester
okay call any night to anything well I
just covered a lot of the material also
bounced through some of those bullet
points we were talking about so possibly
just go back to what the other one on
this yeah that was like one of three
okay
Oh people are hearing but the people out
in video land are not hearing on this so
as I was just mentioning on this Ali's
list up there is as he had mentioned it
doesn't cover every last tale on this
but what I would say is in terms of exam
preparation obviously you want to make
sure that you are familiar with the
specifics those are going to show up in
some of the short answer questions on
this I would expect that the short
answer questions are going to as with
the essays disproportionately wait the
last part of the course but again
everything from January on is fair game
on this in terms of like what is on the
short answer questions I don't want to
say it's an order you don't but it's the
sort of thing like what violate what Ali
was saying like keep track of you don't
want to make sure that like the virtual
address is not the same thing as a
physical address yadda yadda on that
besides that a couple comments with
respect to the essay questions I assume
that Jeff is going to be addressing this
in much more detail and tomorrow of
wrap-up class but he is fond of
designing at least one or two of the
especially like a 25-point questions to
try to cover lots of topics all at once
on this like if you look at last year's
exam which will be kind of paging
through as an example in a couple
minutes there was one question the 20
point question which was kind of on one
specific area obviously virtualization
but then the other two questions really
did cut a wide swath across the entire
course and that's something that he's
actually going to be expecting so it's
not like well what should I study should
I study hmm maybe scheduling because is
there going to be an essay question on
scheduling there conceivably could be
I'm just saying if you look at the
format of these essay questions in the
past it's probably going to be an essay
question that will involve scheduling
but it will also involve other
subsystems too so you need to kind of
know how they subsystems interplay on
this so this makes sense just it's not
going to be like one particular question
on this or that or what have you it's
well it's going to be a combination
of them at all so I was going to kind of
dime it into again last year's exam on
this but before we go on possible
questions about like in particular some
of the lessons that I had caught it
covered on this but in terms of like who
knows processes synchronization well who
knows interrupts remember the kernel
everything begins with interrupts on
that we talked about you people designed
a process subsystem and kind of had an
interface if you will tie in with a
threading subsystem again you should
have a good idea on what's the
difference between a thread and a
process on that in terms of scheduling
scheduling again Holly had mentioned the
various types of schedulers on here I
would be remember take a clue from the
midterm in terms of I'll just ask this
that yes you need to be familiar with a
particular type of scheduler but then
well maybe go a little bit beyond that
what's a weakness in the scheduler and
how can we possibly address that
weakness that's more going to be what
the grading staff is going to be looking
for in terms of paging swapping the
whole like memory management system
questions about that anything else on
this going once going twice sold to the
person what have you and then maybe next
one discs in terms disks files again
this is post midterm on this like we
know the metadata in terms of like where
does everything start remember there's
going to be the anchor block and then
you've got these eye nodes and then
there's obviously different ways of
skinning the cat on this what we're
trying to do is remember the genesis of
file system that's to provide persistent
storage on this but we're also dealing
with legacy mechanical Hardware so
that's where a lot of these design
decisions came in in terms of remember
we try to scatter the eye nodes
throughout the disk in strategic
locations if at all possible we're
trying to minimize our movement on this
in terms of let's say where do we store
data on this well we've got the data
data we've got the metadata and how much
metadata do we actually store and
there's other things remember Jeff I
know he talks about in terms of like
there's typically levels of
on this so in other words depending upon
how big the file is you know if we have
a really small file that's only 50 bytes
maybe just have one reference to it and
done on this as opposed to a really big
file is probably going to have several
layers to the tree on it
and don't create them unless you
actually have to have them and then you
know I would say perhaps a good essay
type question might be to compare and
contrast something like the log file
system with a standard UNIX type file
system in other words why have I nodes
in the first place as opposed to
remember Jeff's lecture in terms of with
log file system we're just going to kind
of write everything sequentially and
then we've got the trade-off with the
cleaning process and there's pros and
cons on this so it's not simply a
discussion of one file system but well
wet and then you might ask you under
what type of use scenarios would
something like log file systems be
better as opposed to let's say a more
traditional file system involving inodes
and well not login when I say logging
let me be clear we're not talking about
journaling in the sense of safety on
this everyone clear on that distinction
logging first in terms of the log file
system as opposed to journaling which is
a type of logging on this write in terms
of when we're talking about like
journaling what we're talking about is
essentially safety of the file system
itself in the case of a power-cut or
other types of corruption on this so and
then I think that should be about it and
then as Ollie had mentioned like aw I
like the research papers too and that's
I will that's another thing if you look
at previous exams I would say dollars to
doughnuts at least one of the essay
questions is going to involve one of the
published papers on this and even
something like the virtualization
question last year which you're thinking
we'll wait a minute we just talked about
that in classes well in order really to
understand the third component to
virtualization which is a pair of
virtualization it was actually buried in
the discussion about how can you virtual
eyes on a smartphone so that's actually
where the discussion of per
virtualization took place so I would say
at
certainly at some level you want to make
sure that you have a handle on the
research papers that wood discs were
discussed I would say there's a better
than even chance that something's going
to show up from that just knowing
history on this so westerns comments
absolutely nothing well we were going to
plan to do is kind of wrap things up
kind of take a quick peek through last
year's exam in terms of what you would
have taken again one year ago
essentially at this time May ninth about
2016 instead of 2017 and how could you
actually approach this again like we had
mentioned from the lecture that I had
covered yesterday
it's the midterm in other words 10
multiple-choice questions plus a bunch
of short answer questions plus an essay
a 20-point essay
but Jeff's also going to throw on there
225 point neighs oh did I jump ahead on
it yeah sorry about that yeah exactly on
this so that's yes okay so and like I
had mentioned I don't think that time is
going to be the issue like it was for
the midterm I would just encourage
everyone here and everyone again in
video land please do take advantage of
that extra time I know you want to get
out just kind of cut and run for the
summer but again this is where the
majority of the points can be garnered
and it is typically in certainly for
this year's midterm and previous year's
classes what separates the sheep from
the goats so to speak that the essays
they require a little bit of thought in
planning and spilling of ink too so just
don't rush into writing them and don't
rush getting through them on that
because again that's where you'll
typically see the greatest disparity in
terms of scores I would say in terms of
where you can actually save time and
effort it's going to be the short answer
questions I would say uh not only if you
want to chime in on this but the short
answer questions from my experience
people actually tend to write too much
to the extent that people miss points on
the short answer question it really
doesn't matter how much they write if I
can almost tell
reading like the first sentence sentence
and a half or so whether or not this
person is going to get pretty much all
credit or is half way off the boat or is
completely out to sea on this so the
short answer questions really may be a
few sentences at most if you find
yourself filling up a half a page that
really is too much on this it's that's
something that you can save time and get
through very quickly on this so okay and
then in terms of the essays though again
that's something it's not even so much
the length but the fact that you really
do need to think through and plan what's
going on so let's take a look at okay
I'm pulling up the the final exam for
last year
oh sorry okay yeah I'm paying yeah you
want to so let's move into the final
exam format and this is based on last
year's exam so you're going to have
again something similar to the midterm
in addition to two long answer questions
so the total points going to be out of
100 points and you're going to have 10
multiple-choice questions that worth one
point each and these are drawn directly
from the second half lecture slides and
it should be easy
so all these information you can find it
from the first page of the last year
final exam so then you're going to have
six short answer questions we will give
you credit for the best four and each
1/4 worth five points for a total of 20
points and please answer them in four or
five sentences shouldn't take longer
than that and these are mostly drawn
from second half material but not until
so something some of them could cover
the first midterm topics then you're
going to have one medium answer question
this is equivalent to the long answer
question of the midterm this is worth of
20 points
and it's thrown from the second half
material and you should answer it
and at page or two and then you're going
to have to long answer questions that
are really long so each one more 25
points for a total of 50 points both of
them are required it's not like the
midterm where you need to choose one so
please answer both of them and they
integrate material from the entire
semester and your answer should respond
to several pages two or more so ten
multiple choices six short answer
questions and then one medium answer
question and then two long answer
questions all are required you're going
to have three hours you shouldn't have
problems with the time so it's not like
the term 15 minutes so use your time
wisely and as for tips how should you
prepare again study lecture slides then
link that to what you learned in your
programming assignments and their
station material then start solving
previous exams once you do that you
should be fine how to answer please
write your answer clearly if you want to
maximize the number of points that you
get make sure we do understand we can
read your handwriting and we can
understand what you're answering so as
much as much that we better understand
your answer you can maximize the number
of points that you'll get so draw
figures diagrams if they help be concise
and be organized use bullets if needed
how to allocate your time again the
points assigned to every question should
tell you how much time you need so long
answer question twenty-five points so
that mean
25 minutes around half an hour for lung
and for medium and long answer questions
know what is being asked please read the
question completely when we created the
midterm we so that many student didn't
really read the question for example the
questions that ask you for the kernel
privileges for multiplexing memory many
student didn't read that what we need is
the special privileges that occur only
for memory multiplexing and not the
general kernel privileges if also for
the long answer question that was asking
about predicting the wait times many
student just like they discuss some
other wait times other than the one that
were clearly asking the question that is
when after I just put to the waiting
queue so please read the answer two
times at least read it completely you do
have time then start then start
answering and link it to what you've
learned throughout this semester so that
should be all for me so you can if you
have any tips and you can stop finals
it's last year's exam so the 2016 yep
I'm just going to jump right into the
short answer questions on this again
just a few minutes bang through the
multiple choice just make sure that you
haven't made a dumb mistake on those and
the other thing I can suggest too is
you're going to have ample time probably
to do all of the short answer questions
on this I know probably the majority of
people did more than what was required
on the midterm but for the final there
really is no good reason for you're not
taking a whack at all of them and then
you will have enough time to go by back
and with a clear head decide well which
of these is actually going to be the
ones that you want to submit for grading
on this actually you know what we pick
the highest so that that is correct so
you know what you don't even have to
select so just write down something for
all of them it does not hurt you on this
because I'm going to assume that time
should not be an issue on this so we
begin with the first short answer
question here which is question number
two and talking about raid here and
remember recall that raid level 1 we've
got an array here and remember what raid
1 is that's the mirroring thing we've
got two disks that essentially are
duplicating each other and well so
obviously you want to make sure what's
the difference between raid 1 raid 0
when these exotic things like raid 5
raid 6 on this so we're going to start
off with something like this and it's
not so much that Jeff wants you to
regurgitate what it is but well why is
it that it dies a little bit deeper
why is there a asynchronous performance
to be expected from raid 1 thinking hey
wait a minute raid 1 is not the one that
we typically pick for performance that
is true it's raid 0 on here but what
he's looking for is do you know the fact
that raid 1 we've got two disks that
contain duplicate information here so
why can we expect to see a jump and read
performance on this think about like
this since we have two
completely duplicate copies of this we
can kind of mimic raid0 in terms of
reading on this
in other words read a block from one
disk and a block from another disk kind
of almost at the same time we can also
take advantage of the fact that we have
two different disks with two different
disk arms so in terms of where that file
is we can kind of look ahead and see
well maybe optimize it so we've got when
it comes to reading the best of both
worlds we have two complete copies and
we can kind of pick I'll either leave it
to speed up the reading process
obviously that's not going to be the
case in terms of writing so that's why
we see this performance disparity in
terms of writing so that either would be
the sort of thing that we would expect
for you to kind of put down for this
some questions raid what it makes sense
okay moving right along question number
three and look at that here the
performance hits paper that we talked
about yesterday in this case it's
showing up on a short answer question on
here and Jeff is asking essentially you
know what kind of list off a bunch of
the hints well that we talked about
either yesterday or again if you took a
look through the paper you can kind of
pick beyond that so what are some of the
hints that we can actually talk about
well Jeff has some listed that are there
but again you can go beyond that what
we're talking about like remember
separating the normal and the worst-case
on this we spent a little bit of time
discussing that yesterday and then just
beyond that we also want watch it read
the question here it's one point per hit
and then he's also looking for at one
point per explanation on this so in
terms of we can get six points kind of
maxed out at five points on this but you
can keep going on this so we might take
an example of what is an example of
let's say separating out normal and
worst case on this about this one
yesterday I gave one specific visa via
assignment three but again feel free to
create an example that you might I'm
talking about swapping
I'm sorry like the tlb shoot-down okay
and remember the fact that in many cases
most cases you really don't have to do a
TLB shoot down on this so optimize your
code past that in most cases you don't
have to deal with that and then separate
out the worst case that that's going to
just take some time okay plan to throw
one away and again you could even say
how about an example of that
is well my original design for
assignment 3 or what have you but not to
be cynical on this what he's trying to
say is don't worry about starting over
completely over because very often you
need to kind of let ideas percolate in
your brain before you can come up with a
workable idea on this route force do
things well complete in background
certainly background that's not
something that we talked about you had
to do yourself in terms of programming
but let's say in a user operating system
you could spin off a worker thread or
actually you know what if you were
toying around with let's say kicking off
a paging daemon that's certainly an
example of doing work in background to
try to optimize what's going on so any
of these the grading staff is going to
be flexible as long as you stick to the
design of the question on that so if
you're thinking like we'll wait a minute
how much flexibility do we give read the
verbiage of the question on this so as
long as you're fulfilling that you're
good to go on this questions about this
in terms of just essentially I don't
want to say to memorize but it's this is
about as close as it gets to it just
knock off a bunch of what the hints are
and give an example of each and again
that's the sort of thing really probably
five or six sentences tops because
example under example hint example
example done
okay question number four am dolls law
now reading here remember a discussion
of Amdahl's law essentially that what
we're talking about is if you work on
improving one part of a system typically
the overall performance is going to be
limited by the rest of the system
remember back to 341 on this my strong
suspicion is that the people who because
you can see most people did fairly well
on this question but the people who did
not do well it's probably because it's
not because they didn't know I'm dollars
law but because take a look at what the
question is asking here just not asking
you to state Annabelle's law but a
particular corollary to that so this is
one of these and it's not so much that
we're being picky but just do read and
make sure that you answer what the
question is asking for here so in this
case here corollary was talking about
that the longer you work on improving a
particular subsystem the essentially
you're going to hit diminishing returns
a less result it's going to have in
terms of improving systems performance
on this so that's what we'd be looking
for and then in terms of what we want to
go beyond that is take a look at how
this would guide you in the future so
you can say like well you know what if
let's say I'm really trying to tune the
memory subsystem of my kernel well after
a while I need to kind of step back and
see is that still the biggest problem
and then maybe it is in which case I
need to keep working on it but maybe not
maybe I now need to because I've exposed
something else as being my biggest
problem so again this question here
probably could be answered or knocked
off in two or three sentences if that so
you don't need to list like the all the
equations for this you don't need to go
into lots of deep examples those will be
nice but the grading staff is going to
simply say do you know what the
corollary is and essentially how does
that apply you're tuning and development
of a system Donna
question number five and okay looking at
the grades for this it looks like this
was a tougher question on this but again
you know what you might as well take a
crack at it because now we're going to
pick the highest actually the computer
grading algorithm is going to scan over
what degrees that were assigned it'll
automatically pick whatever the highest
scores are but question okay what's the
difference between placing the buffer
cache above the file system or below it
and if you recall this was the subject
of a couple specific lecture slides on
this so it's kind of specific but you
know even if you let's say you were
completely cookie for that particular
lesson and you just or you just don't
remember that slide I think what were
those what were the pros and cons of
that you can probably reason this
question out here so in other words
where can we actually put the buffer
cache here so into the above the file
system or below the file system and what
impact does that have here because well
number one what interface must the cache
support at each level and what's cached
and then well how does it kind of affect
overall so let's kind of take a look at
these two things well if we put the
buffer cache above the file system in
effect what are we intercepting we're
intercepting thing in terms of OS 161
well remember the file system was given
to you that was that whole VFS layer
that everyone was hurrying you don't
touch it it works it's a black box here
well you're intercepting calls down to
this from typically let's say the
process file system like a sis call or
something like that so you're cashing in
effect let's say opens read write closes
on this so that's kind of what's going
on in terms of the interface that we're
dealing with it's well a quasi syscall
interface that is what we're kind of
having a cash-in well the buffer cache
on this as opposed to if we put the
files of the buffer cache below the file
system well what does the VFS layer call
down to well I talked about this in one
recitation probably about two months or
so
ago remember VFS lair calls down to like
the I know lair and eventually down to
device drivers well we're talking about
accessing the hardware typically at the
block level on this so that's the if you
will the interface that the buffer cache
would be dealing with if we were putting
it below the file system we're talking
about let's say dealing with it in terms
of a block to be read or a block to be
written on this so there's pros and cons
of that here and what's going on in
terms of well what we want from this we
also need to know okay what's cached in
each cases is it let's say data in terms
of files or data in terms of blocks here
and how does that impact well how we do
things on this well again there's pros
and cons in terms of if we cache things
at the file level we can kind of get an
idea about well what are the file access
patterns in other words if this file X
is read we noticed from machine learning
that file Y it tends to be read pretty
soon after so we might be able to do
some let's say prefetching or
what-have-you
so we can study these file access
patterns that's something we wouldn't be
able to understand with box because
blocks really we don't know what they
represent
because remember file X could be stored
in one location in a disk but then maybe
somewhere else later on so that
definitely would be an advantage to
having the buffer cache above the file
system but remember Jeff also talked
about if you put the buffer cache below
the file system
what are we catching we're essentially
catching all IO on this and that's
important because in terms of the data
that gets returned at the file system
level it's essentially just that it's
data we're not really intercepting or
dealing with metadata and that's
something if we put the buffer cache
below the file system we're also going
to be able to cache things like inodes
and to other directories are like bitmap
or whatever it happens to be we can
cache that and speed that up to which we
would not be able to do yeah we had it
above the file system there's also
another thing kind of bonus
points if you notice that putting the
cash below the file system you also
don't have to worry about like
consistency on this too because if let's
say at the file level on this the user
may think that you know what I let's say
done a call to F Sync and I think that
all the stuff is written out well you
know what that may or may not be the
case here as opposed if we let's say put
it below we're actually going to have or
be able to eliminate some of these
potential consistency issues so again
this is something my guess is it
requires a little bit more thought and
that's probably why the scores on this
particular thing we're a little bit
lower it's also it is a somewhat
detailed question it picks from a
particular part of a lecture but on the
other hand even if you didn't remember
what those were you can probably sit
down and puzzle out and get a lot of
points from this because well what is it
what what is it that the file system
expects and what is it that the file
system kind of needs from the lower
levels and I can probably at least take
a pretty good guess at what it is that
the graders are going to be looking for
moving one question six actually whoops
you know what in the interest of time so
that unfortunately I don't have three
hours here I think I would bore you to
tears if we did that today let's
actually kind of skip ahead to maybe
some of the likely well take a look at
let's say like the middle question
question number eight virtualization and
here essentially what you're going to be
asked is let's take a look at the three
types of virtualization that are out
there and well obviously you need to
know what they are but what we also want
to know is okay what are the three types
how do they work and like what are the
mechanics of making them work what's
virtualized in other words what's the
interface that we're dealing with in
terms of virtualization and what are
essentially the pros and cons again in
terms of this it stated like what are
the challenges to this virtualization
approach
I can tell you when you take your exam
next week
most of the essay questions are going to
involve what are the pros of this
approach and the cons of this approach
as opposed to the pros and cons of this
other approach so if you haven't
discussed the pros and cons of multiple
approaches you're probably missing
something in your answer it's just it's
again it's the way these essay questions
tend to be structured so let's kind of
take a look at these first one remember
full virtualization on this and what are
we essentially virtual as I visualize an
entire operating system and at the
hardware level we're kind of providing
or we're not kind of we are providing
virtualized Hardware we're faking out a
guest operating system on this so that's
what's being virtualized and in the
mechanics what we'd be looking for is a
grading staff is obviously you've got a
guest operating system you have to have
a host operating system and you also
need remember this widget this VM M
virtual machine manager that's the
virtualization tool so in other words
you've got a host operating system then
an application the VM m and then above
that we've got the guest operating
system so those are the parts to it now
on and we would expect you to discuss a
little bit about how it actually works
here and that well we're saying well
we're running the guest operating system
as a program well that's great except
what what happens when we run programs
that think that their operating systems
you've got this problem with member
traps because user programs are going to
be doing things like executing syscalls
or referring to locations in memory and
that's great if you're a real operating
system but remember I'm just a lowly
program the virtual machine manager and
I can't risk the guest operating system
trapping because I'm not going to get it
it's going to go to the real operating
system so this is the big challenge with
full operating a full virtualization and
this is what you need to do to solve it
remember this was the whole thing that
was a big discussion yeh about 15 years
ago essentially you have to kind of keep
reading ahead
and sometimes pre likes a compiling or
recompiling on the fly
certain instructions so that the guest
operating system doesn't trap that's
what makes this all work so logically we
get the same result but what's going on
is the operating system we're going to
try to run as much code natively on the
CPU but some of it we're just not going
to be able to do that we're going to
have to intercept calls on the fly and
again this is one of the things we
talked about yesterday kind of
just-in-time compiling well this is the
very real use for that in terms of
inserting stability into full
virtualization now that's going to make
it slow but on the other hand the nice
thing is it works for all operating
systems and it's a great drag-and-drop
resource for legacy systems so that in a
nutshell is full virtualization and
frankly we would probably want you to
mention all of that the fact that it's
full virtualization the three components
the big challenge is we have to
intercept traps and we do that by
recompiling on the fly the benefit is we
can essentially virtualize everything
and I know I as a grater in the matter
of fact I did raid this that is what I
would be looking for in order to ladle
out the full credit for the full
virtualization on that as opposed to
let's look at the next one para
virtualization on this well this also
involved a guest operating system and a
VM M although it's typically called a
hypervisor but kind of same function
here there's no host operating system
though so that's again it's one of these
that's one of those you just need to
remember that
don't mention it because going to get
lost that way and the genius behind para
virtualization and the subject of
research on this too is remember the
problem with full virtualization is it's
slow we're constantly having to read
ahead and compile and interpret this
well remember this is the old software a
paradigm of dynamic versus static on
this instead of having to do dynamic
translation on-the-fly
let's do it statically let's kind of
take a look at the guest operating
system where the problem children are in
the guest operating system and in effect
change things ahead of time that's why
it runs a lot faster now the fly in the
ointment with this is we have to make
these changes ahead of time which means
we need essentially cooperation with the
guest operating system in the case of
something like UNIX that's great where I
should say Linux it's open source in the
case of Windows that means you're going
to need the support of Microsoft because
they've got their source code in a
lockbox but again it can be made to work
in it is made to work so that I would
expect you to mention the parts in terms
of guest operating system a virtual
machine manager again there is no host
operating system we would expect you to
talk a little bit about the pros and
cons it's going to run a lot faster as a
result it's great for running server
farms on this con is it does require
cooperation from the operating system
designers on this and and kind of
brownie points if you talked about the
Zen people who got this actually working
they took advantage of the fact that
let's say the Intel chips have multiple
levels of privilege so you can actually
run the hypervisor at the really highest
level of privilege and then you've got
the hypervisor and the guest operating
systems at a middle level of privilege
and then the user programs at the lowest
level of privilege so that was kind of
like a nice genius insight that they
took advantage of then the last part the
container virtualization again the
source for that was the research paper
that talked about phones and how can you
run multiple desktop earning systems on
a phone and here what are the parts
we've got a host operating system but we
don't have a hypervisor or a VM m per se
what we have is provisions within the
host operating system to virtualize the
namespace and containers on this so we
have let's say each pseudo operating
system all we're really doing is we're
peeling off various levels that let's
say I can have a copy of Microsoft
Windows running in this instance and
well actually not let's say it's process
ID is X but I'm running the same program
in enough
guest container and its price ID is why
on this so I have to virtualize things
like process IDs file handles namespaces
on this the upside to that is that what
gets virtualized is it a much higher
level on this you know I'm not running
an entire guest operating system I'm
only running one host operating system
and a whole bunch of guest containers on
top of that so the downside is I have to
have support for this from the operating
system I also am limited I have can only
run one type of operating system for
example like with full virtualization I
can virtualize Linux next to Windows
next to perhaps even a grey market copy
of OS X all on the same machine as
opposed to container virtualization if
I'm running Linux I can only have a
whole bunch of Linux containers of the
exact same type plus side - that is
since it is lightweight I can it's going
to be great for resource constraint
advice devices like a phone on this so
again that's what we'd be kind of
looking for for these three levels of
virtualization on this and what are kind
of some of the pros and cons so
questions comments about this okay and
again that was a discussion of the 20
point question for the others take a
look at it it's essentially I would say
the only big thing I'll just mention is
very briefly like something like the
heterogeneous cores thing that's a case
of Jeff is talking about if you've got
two chips okay under two cores a big
core in a little core and how does it
impact the various systems you can see
right away you're going to have to
discuss how impacts virtual memory how
it impacts CPU architecture how it
impacts threading and processes so it's
cutting a wide swath across different
topics and that's what he did expect you
to discuss and the same thing is true in
terms of the last question on this in
terms of let's say that we had a whole
bunch of memory in the future rather
than a simple hard drive and dynamic
memory we're just going to give you a
terabyte of flash memory and how does
that change
your system design on this again it's
going to impact files it's going to
impact processes it's going to impact
virtual memory and we would want to see
a discussion of this make sense ok we'll
stick around long as there's any
questions but good luck people
thanks for taking os 421 521 Gipper our
pleasure