Submind YouTube summaries
Thumbnail for 09 May 2017: Exam Review Recitation

09 May 2017: Exam Review Recitation

Watch on YouTube

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