Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY Operating System Engineering: Fall 2003

Similar documents
6.097 Operating System Engineering: Fall Quiz II THIS IS AN OPEN BOOK, OPEN NOTES QUIZ.

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Fall Quiz I

Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY Fall Quiz I

THIS IS AN OPEN BOOK, OPEN NOTES QUIZ.

Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY Fall Quiz I

Quiz I Solutions MASSACHUSETTS INSTITUTE OF TECHNOLOGY Fall Department of Electrical Engineering and Computer Science

Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY Fall Quiz I

6.033 Computer Systems Engineering: Spring Handout 13 - Quiz I THIS IS AN OPEN BOOK, OPEN NOTES QUIZ. NO PHONES, NO LAPTOP, NO PDAS, ETC.

Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY Fall Quiz I

CS140 Operating Systems Final December 12, 2007 OPEN BOOK, OPEN NOTES

Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY Fall Quiz I

Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY Fall Quiz I Solutions

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Fall Quiz II

6.824 Distributed System Engineering: Spring Quiz I Solutions

Quiz II Solutions MASSACHUSETTS INSTITUTE OF TECHNOLOGY Fall Department of Electrical Engineering and Computer Science

This is an open book, open notes exam. But no online or in-class chatting.

Quiz I Solutions MASSACHUSETTS INSTITUTE OF TECHNOLOGY Fall Department of Electrical Engineering and Computer Science

Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY Operating System Engineering: Fall 2003

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Database Systems: Fall 2008 Quiz I

Midterm Exam #2 Solutions April 20, 2016 CS162 Operating Systems

KINGS COLLEGE OF ENGINEERING DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING ACADEMIC YEAR / ODD SEMESTER

Midterm Exam #2 April 20, 2016 CS162 Operating Systems

CS-537: Midterm Exam (Fall 2008) Hard Questions, Simple Answers

CSE 451 Autumn Final Solutions mean 77.53, median 79, stdev 12.03

SHRI ANGALAMMAN COLLEGE OF ENGINEERING AND TECHNOLOGY (An ISO 9001:2008 Certified Institution) SIRUGANOOR, TIRUCHIRAPPALLI

Midterm #2 Exam April 26, 2006 CS162 Operating Systems

Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY Operating System Engineering: Fall 2004

CS510 Operating System Foundations. Jonathan Walpole

CS 537: Introduction to Operating Systems Fall 2015: Midterm Exam #1

Midterm #2 Exam Solutions April 26, 2006 CS162 Operating Systems

Quiz I Solutions MASSACHUSETTS INSTITUTE OF TECHNOLOGY Fall Department of Electrical Engineering and Computer Science

Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY Fall Quiz I

University of Waterloo Midterm Examination Model Solution CS350 Operating Systems

Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY

CSE 451 Midterm Exam May 13 th, 2009

The University of Texas at Austin CS 439 Principles of Computer Systems: Spring 2013 Midterm Exam II

G Distributed Systems: Fall Quiz I

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2018 Lecture 18

UNIX rewritten using C (Dennis Ritchie) UNIX (v7) released (ancestor of most UNIXs).

Quiz II Solutions MASSACHUSETTS INSTITUTE OF TECHNOLOGY Fall Department of Electrical Engineering and Computer Science

CS 5460/6460 Operating Systems

The University of Texas at Austin CS 372H Introduction to Operating Systems: Honors: Spring 2012 Midterm Exam

Homework / Exam. Return and Review Exam #1 Reading. Machine Projects. Labs. S&S Extracts , PIC Data Sheet. Start on mp3 (Due Class 19)

CS 333 Introduction to Operating Systems. Class 3 Threads & Concurrency. Jonathan Walpole Computer Science Portland State University

UNIVERSITY OF CONNECTICUT. ECE 3411 Microprocessor Application Lab: Fall Lab Test III

The University of Texas at Austin CS 439 Principles of Computer Systems: Spring 2013 Midterm Exam I

Computer Architecture and Engineering. CS152 Quiz #3. March 18th, Professor Krste Asanovic. Name:

Qualifying exam: operating systems, 1/6/2014

This is an open book, open notes exam. But no online or in-class chatting.

Macs don t have BIOS and some lower-end PCs use either emulated BIOS or the UEFI method. This project assumes an honest-to-goodness PC.

Introduction to Unix. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

Operating Systems Design Exam 2 Review: Spring 2011

CS 333 Introduction to Operating Systems. Class 3 Threads & Concurrency. Jonathan Walpole Computer Science Portland State University

CS 416: Opera-ng Systems Design March 23, 2012

CS350: Final Exam Review

Midterm Exam Answers

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Fall Quiz I

Example Sheet for Operating Systems I (Part IA)

Lab 4. Out: Friday, February 25th, 2005

[537] Locks. Tyler Harter

CS4411 Intro. to Operating Systems Final Fall points 10 pages

Exceptions and Processes

Precept 5: Virtual Memory. COS 318: Fall 2018

CS 240 Final Exam. Stanford University Computer Science Department. June 2, 2015 !!!!! SKIP 20 POINTS WORTH OF QUESTIONS.!!!!!

238P: Operating Systems. Lecture 5: Address translation. Anton Burtsev January, 2018

CS5460: Operating Systems

Review: Hardware user/kernel boundary

Midterm II December 4 th, 2006 CS162: Operating Systems and Systems Programming

Midterm Exam Solutions Amy Murphy 28 February 2001

x86 segmentation, page tables, and interrupts 3/17/08 Frans Kaashoek MIT

Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY Operating System Engineering: Fall 2006

Announcements. Persistence: Crash Consistency

CROWDMARK. Examination Midterm. Spring 2017 CS 350. Closed Book. Page 1 of 30. University of Waterloo CS350 Midterm Examination.

Universidad Carlos III de Madrid Computer Science and Engineering Department Operating Systems Course

Operating Systems CMPSCI 377 Spring Mark Corner University of Massachusetts Amherst

UNIT I Linux Utilities

CS140 Operating Systems and Systems Programming Midterm Exam

SNS COLLEGE OF ENGINEERING

Example Sheet for Operating Systems I (Part IA)

CS 4284 Systems Capstone

COMP 3361: Operating Systems 1 Final Exam Winter 2009

UNIT I Linux Utilities and Working with Bash

Project #1 Exceptions and Simple System Calls

UNIVERSITY OF CONNECTICUT. ECE 3411 Microprocessor Application Lab: Fall Lab Test III

Administrivia. Lab 1 due Friday 12pm. We give will give short extensions to groups that run into trouble. But us:

Lecture 10: Crash Recovery, Logging

(b) External fragmentation can happen in a virtual memory paging system.

UNIVERSITY OF CONNECTICUT. ECE 3411 Microprocessor Application Lab: Fall Quiz III

Lecture 4: Memory Management & The Programming Interface

CS162 Operating Systems and Systems Programming Lecture 11 Page Allocation and Replacement"

SOLUTIONS FOR THE THIRD 3360/6310 QUIZ. Jehan-François Pâris Summer 2017

143A: Principles of Operating Systems. Lecture 6: Address translation. Anton Burtsev January, 2017

Final Exam Preparation Questions

CS140 Operating Systems Midterm Review. Feb. 5 th, 2009 Derrick Isaacson

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Database Systems: Fall 2008 Quiz II

143A: Principles of Operating Systems. Lecture 09: First process. Anton Burtsev January, 2017

CS604 Final term Paper Fall (2012)

Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY Fall 2008.

C Compilation Model. Comp-206 : Introduction to Software Systems Lecture 9. Alexandre Denault Computer Science McGill University Fall 2006

Operating Systems Comprehensive Exam. Spring Student ID # 2/17/2011

Transcription:

Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY 6.828 Operating System Engineering: Fall 2003 Quiz II All problems are open-ended questions. In order to receive credit you must answer the question as precisely as possible. You have 80 minutes to answer this quiz. Write your name on this cover sheet AND at the bottom of each page of this booklet. Some questions may be much harder than others. Read them all through first and attack them in the order that allows you to make the most progress. If you find a question ambiguous, be sure to write down any assumptions you make. Be neat. If we can t understand your answer, we can t give you credit! THIS IS AN OPEN BOOK, OPEN NOTES QUIZ. 1 (xx/15) 2 (xx/25) 3 (xx/20) 4 (xx/25) 5 (xx/15) Total (xx/100)

6.828 FALL 2003, Quiz 2 Page 2 of 11 I Control-C and the shell 1. [15 points]:in UNIX when a user is running a program from the shell, the user can terminate the program by typing ctrl-c. How would you change the 6.828 kernel and its shell to support this feature? Be careful, make sure when a user types the name of the program and hits ctrl-c before the program runs that the right thing happens (i.e., don t kill the shell itself or the file system). (Sketch an implementation and define what the right thing is.)

6.828 FALL 2003, Quiz 2 Page 3 of 11 II CPU scheduling 2. [10 points]: primespipe spawns many environments until it has generated a prime greater than some specified number. If you modify your shell for the 6.828 kernel to run primespipe in the background and then type ls at your shell, it can happen that the output of ls won t show before primespipe completes. Explain why. (Keep it brief) 3. [5 points]: Describe a solution to the problem described in the previous question. (Keep it brief; no pseudocode required)

6.828 FALL 2003, Quiz 2 Page 4 of 11 Let s assume we modify the 6.828 kernel to build a high-performance Web server. We add a driver for ethernet card in in the Web server environment. Interrupts from the card are directly delivered to the Web server s environment, and the interrupt handler executes on a separate stack in the Web server s environment (in a similar style as the 6.828 kernel sends page faults to environments.) The Web server s interrupt handler runs with interrupts disabled, processes the received interrupt completely (including any TCP/IP and HTTP processing), returns all resources associated with handling the interrupt, and re-enables interrupts. Web pages in the cache are served straight from the interrupt handler. CGI scripts and pages not in the cache are handled by the Web server on the main stack (not in the interrupt handler). 4. [10 points]: Does this implementation suffer from receive livelock? If so, sketch a sequence of events that will result in receive livelock. If not, explain why. (If you need to make any more assumptions about the architecture of the system, be sure to state them explicitly.)

6.828 FALL 2003, Quiz 2 Page 5 of 11 III File systems and reliability Modern Unixes support the rename(char *from, char *to) system call, which causes the link named from to be renamed as to. Unix v6 does not have a system call for rename; instead, rename is an application that makes use of the link and unlink system calls. 5. [5 points]: Give an implementation of rename using the link and unlink system calls, and briefly justify your implementation. int rename(char *from, char *to) { } Some editors use rename to make a new version of a file visible to user atomically. For example, an editor may copy x.c to #x.c, make all changes to #x.c, and when the user hits save, the editor calls sync() followed by rename("#x.c", "x.c"). 6. [5 points]: What are the possible outcomes of running rename("#x.c", "x.c") if the computer fails during the rename library call? Assume that both #x.c and x.c exist in the same directory but in different directory blocks before the call to rename.

6.828 FALL 2003, Quiz 2 Page 6 of 11 Modern BSD UNIX implements rename as system call. The pseudocode for rename is as follows (assuming to and from are in different directory blocks): int rename (char *from, char *to) { update dir block for to to point to from s inode // write block update dir block for from to free entry // write block } BSD s Fast File System (FFS) performs the two writes in rename synchronously (i.e., using bwrite). 7. [5 points]: What are the possible outcomes of running rename("#x.c", "x.c") if the computer fails during the rename system call? Assume that both #x.c and x.c exist in the same directory but in different directory blocks before the call to rename. Assume the same scenario but now using FFS with soft updates. 8. [5 points]: How does using FFS with soft updates change this scenario?

6.828 FALL 2003, Quiz 2 Page 7 of 11 IV Virtual machines A virtual machine monitor can run a guest OS without requiring changes to the guest OS. To do so, virtual machine monitors must virtualize the instruction set of a processor. Consider implementing a monitor for the x86 architecture that runs directly on the physical hardware. This monitor must virtualize the x86 processor. Unfortunately, virtualizing the x86 instruction set is a challenge. 9. [5 points]: Using the instruction mov %cs, %ax, give a code fragment that shows how a guest operating system could tell the difference between whether it is running in a virtual machine or directly on the processor, if the virtual machine monitor is not sufficiently careful about how it virtualizes the x86 architecture. (List a sequence of x86 assembly instructions) 10. [5 points]: Describe a solution for how to virtualize the instruction mov %cs, %ax correctly. What changes do you need to make to the monitor? (Give a brief description; no pseudocode required)

6.828 FALL 2003, Quiz 2 Page 8 of 11 The monitor might emulate a load of CR3 as follows: // addr is a physical address void emulate_lcr3(thiscpu, addr) { Pte *fakepdir; } thiscpu->cr3 = addr; fakepdir = lookup(addr, oldcr3cache); if (!fakepdir) { fakedir = page_alloc(); store(oldcr3cache, addr, fakedir); // CODE MISSING: // May wish to scan through supplied page directory to see if // we have to fix up anything in particular. // Exact settings will depend on how we want to handle // problem cases. } asm("movl fakepdir,%cr3"); // Must make sure our page fault handler is in sync with what we do here. 11. [15 points]: Describe a solution for handling a guest OS that executes instructions stored in its data segment (e.g., user icode in the 6.828 kernel).

6.828 FALL 2003, Quiz 2 Page 9 of 11 V Feedback Since 6.828 is a new subject, we would appreciate receiving some feedback on how we are doing so that we can make corrections next year. (Any answer, except no answer, will receive full credit!) 12. [1 points]: Did you learn anything in 6.828, on a scale of 0 (nothing) to 10 (more than any other class)? 13. [1 points]: What was the best aspect of 6.828? 14. [1 points]: What was the worst aspect of 6.828? 15. [2 points]: If there is one thing that you would like to see changed in 6.828, what would it be?

6.828 FALL 2003, Quiz 2 Page 10 of 11 16. [2 points]: How should the lab be changed? 17. [1 points]: How useful was the v6 case study, 0 (bad) to 10 (good)? 18. [1 points]: How useful were the papers, 0 (bad) to 10 (good)? 19. [2 points]: Which paper(s) should we definitely delete? 20. [2 points]: Which paper(s) should we definitely keep?

6.828 FALL 2003, Quiz 2 Page 11 of 11 21. [1 points]: Rank TAs on a scale of 0 (bad) to 10 (good)? 22. [1 points]: Rank the professor on a scale of 0 (bad) to 10 (good)? End of Quiz II