THIS IS AN OPEN BOOK, OPEN NOTES QUIZ.

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

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

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Fall Quiz I

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 Operating System Engineering: Fall 2003

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

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

University of Waterloo Midterm Examination Model Solution CS350 Operating Systems

Operating Systems Comprehensive Exam. Spring Student ID # 3/16/2006

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

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

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

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

Operating Systems (1DT020 & 1TT802)

(In columns, of course.)

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

Process Time. Steven M. Bellovin January 25,

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

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

Memory Management Part 1. Operating Systems in Depth XX 1 Copyright 2018 Thomas W. Doeppner. All rights reserved.

Operating Systems Comprehensive Exam. Spring Student ID # 3/20/2013

CSE 410 Final Exam 6/09/09. Suppose we have a memory and a direct-mapped cache with the following characteristics.

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

The Kernel Abstraction. Chapter 2 OSPP Part I

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

CPS 310 first midterm exam, 2/26/2014

CS 5460/6460 Operating Systems

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Database Systems: Fall 2015 Quiz I

Process Description and Control. Chapter 3

Why use an Operating System? Operating System Definition

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Database Systems: Fall 2008 Quiz I

Two hours. Question ONE is COMPULSORY UNIVERSITY OF MANCHESTER SCHOOL OF COMPUTER SCIENCE. Date: Friday 25th January 2013 Time: 14:00-16:00

Process Scheduling Queues

CS4411 Intro. to Operating Systems Final Fall points 12 pages

Machines and Virtualization. Systems and Networks Jeff Chase Spring 2006

The Kernel Abstraction

Lec 22: Interrupts. Kavita Bala CS 3410, Fall 2008 Computer Science Cornell University. Announcements

Midterm Exam CPS 210: Operating Systems Spring 2013

Chapter 9 Memory Management

CS4411 Intro. to Operating Systems Final Fall points 10 pages

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Fall Quiz II

Processes. Dr. Yingwu Zhu

University of Waterloo CS350 Midterm Examination Model Solution

Lecture 4: Mechanism of process execution. Mythili Vutukuru IIT Bombay

Xen and the Art of Virtualization. CSE-291 (Cloud Computing) Fall 2016

IT 540 Operating Systems ECE519 Advanced Operating Systems

CSE 153 Design of Operating Systems

Memory Protection. Machines and Virtualization. Architectural Foundations of OS Kernels. Memory and the CPU. Introduction to Virtual Addressing

Lecture 4: Memory Management & The Programming Interface

PROCESS CONTROL: PROCESS CREATION: UNIT-VI PROCESS CONTROL III-II R

6.824 Distributed System Engineering: Spring Quiz I Solutions

Address spaces and memory management

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

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

Operating Systems Comprehensive Exam. Fall Student ID # 10/31/2013

Lecture 2: September 9

15 Sharing Main Memory Segmentation and Paging

CS 318 Principles of Operating Systems

CS350: Final Exam Review

Processes. Process Management Chapter 3. When does a process gets created? When does a process gets terminated?

Last 2 Classes: Introduction to Operating Systems & C++ tutorial. Today: OS and Computer Architecture

Course Description: This course includes the basic concepts of operating system

G Operating Systems: Spring Final Exam

ADVANCED OPERATING SYSTEMS

Review: Hardware user/kernel boundary

Classifying Information Stored in Memory! Memory Management in a Uniprogrammed System! Segments of a Process! Processing a User Program!

CIS Operating Systems Memory Management Cache. Professor Qiang Zeng Fall 2017

What is an Operating System? A Whirlwind Tour of Operating Systems. How did OS evolve? How did OS evolve?

CS370 Operating Systems

Problem Set: xv6. Lecture Notes on Operating Systems. 1. Consider the following lines of code in a program running on xv6.

PROCESS STATES AND TRANSITIONS:

CPS 310 first midterm exam, 10/6/2014

Processes Prof. James L. Frankel Harvard University. Version of 6:16 PM 10-Feb-2017 Copyright 2017, 2015 James L. Frankel. All rights reserved.

Midterm Exam Solutions and Grading Guidelines March 3, 1999 CS162 Operating Systems

Process Description and Control. Major Requirements of an Operating System

Major Requirements of an Operating System Process Description and Control

Hardware OS & OS- Application interface

CS A320 Operating Systems for Engineers

Memory Management. Disclaimer: some slides are adopted from book authors slides with permission 1

CS370 Operating Systems

200 points total. Start early! Update March 27: Problem 2 updated, Problem 8 is now a study problem.

ICS143A: Principles of Operating Systems. Midterm recap, sample questions. Anton Burtsev February, 2017

CPSC/ECE 3220 Fall 2017 Exam Give the definition (note: not the roles) for an operating system as stated in the textbook. (2 pts.

Processes and Threads. Processes and Threads. Processes (2) Processes (1)

Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY

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

The cow and Zaphod... Virtual Memory #2 Feb. 21, 2007

CIS Operating Systems Memory Management Cache and Demand Paging. Professor Qiang Zeng Spring 2018

16 Sharing Main Memory Segmentation and Paging

Anne Bracy CS 3410 Computer Science Cornell University

Memory Management. q Basic memory management q Swapping q Kernel memory allocation q Next Time: Virtual memory

Midterm Exam Amy Murphy 6 March 2002

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2018 Lecture 24

Problem Set 2. CS347: Operating Systems

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2018 Lecture 23

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

2 nd Half. Memory management Disk management Network and Security Virtual machine

VM Design and Tradeoffs

Transcription:

Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY 6.097 Operating System Engineering: Fall 2002 Quiz I 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/35) 2 (xx/20) 3 (xx/25) 4 (xx/15) 5 (xx/5) Total (xx/100)

6.097 FALL 2002, Quiz 1 Page 2 of 7 I Traps/Interrupts 1. [15 points]: Draw a picture of the kernel stack after the following events have happened: (1) the icode program has called the exec system call; and (2) a clock interrupt handler has interrupted exec() at line 3027; and (3) the clock handler just finished executing line 3739? For each entry on the stack describe what that entry represents. You may ignore local variables. (Draw high addresses high.) The kernel stack starts off empty. A system call must be the first thing on a trap frame at this point if any interrupts happened before, they would not have had any other process to switch to on the return path. in trap in trap in trap1 in exec CLOCK interrupt in clock PSW from icode PC of icode s SYS instruction r0 of icode PSW after trap (br7 + 6) r1 of icode SP of icode masked PSW after trap (6) return address for call1 return (line 786) saved r5 saved r4 saved r3 saved r2 &cret &exec (an argument to trap1) return address in trap (line 2772) saved r5/r4/r3/r2 + &cret return address in trap1 (line 2848) saved r5/r4/r3/r2 + &cret PSW from exec PC from exec (line 3027) r0 from exec PSW after interrupt (br6) r1 from exec sp (same as sp now) masked PSW return address in trap (line 800) saved r5/r4/r3/r2 + &cret

6.097 FALL 2002, Quiz 1 Page 3 of 7 2. [5 points]: Which kernel stack is the one you drew in response to question 1? Kernel stack 0? Kernel stack 1? Kernel Stack 1 is used. Process 1 (icode) was executing at the time of the trap and so its kernel stack is used. If the machine is already in kernel mode when an interrupt happens, the current kernel stack is used. 3. [5 points]: Can another clock interrupt interrupt the handler at line 3739? At line 3770? At line 3739, another clock interrupt can not interrupt the handler: the priority of the processor has been set to 6 already as a result of line 534 (or 535). At line 3770, the interrupt handler has lowered the priority level to 5 so another clock interrupt (at level 6) could interrupt the handler at this point. 4. [10 points]: Estimate how large a kernel stack must be to handle recursive traps and interrupts correctly? The kernel stack must be able to hold sufficient stack and trap frames for the most recursive case. This occurs if a process executes a system call, receives a priority 4 interrupt, followed by a priority 5 interrupt, followed by a priority 6 interrupt, followed by a re-entrant priority 6 interrupt. In addition to the size of the trap frame (i.e. the arguments to trap), you would need to consider stack frames generated by the deepest system call procedure call path (e.g. open calls namei which calls... ; this is probably not too deep but might change as the kernel evolved), the deepest interrupt 4 handler call path, etc. From the figure, we can see that a system call trap requires 20 stack elements for the trap frame and stack frames for the trap dispatch code (plus some extra for locals). Similarly, a non-syscall trap requires 8 stack elements for the trap frame. Assume that the maximum call depth for a function in the kernel is 4, where each stack frame requires 6 stack elements (5 from csav, and an average of 1 argument). This gives a maximum depth of approximately 20 + 4 6 + 4 (8 + 4 6) = 172. Since each stack entry is two bytes, this gives a lower bound of 344 bytes. Of course, some additional room will be needed to account for local variables, which were ignored for this problem.

6.097 FALL 2002, Quiz 1 Page 4 of 7 II Coordinating threads 5. [5 points]: What do the statements at line 2088 and line 2092 do? Line 2088 calls spl6() which sets the processor privilege level to 6. This causes all interrupts of priority less than or equal to 6 to be ignored. Line 2092 calls spl0(), lowering the privilege level back to 0. These calls are used to mark atomic sections. 6. [15 points]: Why are these statements needed? Give an actual sequence of events that will result in erroneous behavior if these two statements are omitted. Your sequence of events should be as concrete as possible, not merely hypothetical. (Illustrate your answer using a time line) Several scenarios can lead to incorrect behavior: Deadlock: 1. runin++ on 1954 2. scheduler calls sleep on 1955 with runin as channel 3. executes lines 2089 setting p wchan to &runin 4. processor is interrupted by clock 5. clock interrupt handler sets runin to zero (3821) 6. handler calls wakeup with &runin as argument (3822) 7. wakeup calls setrun, which sets p wchan to zero and p stat to SRUN (2139 2140) 8. handler returns 9. now scheduler sets p stat to SSLEEP (2090) 10. and calls swtch 11. scheduler will never be woken up, because p stat == SSLEEP and p wchan is zero Deadlock: 1. a user process calls indirectly bwrite(), which launches write on buffer. 2. then calls iowait, 3. which calls sleep with the address of the buffer as the channel 4. sleep sets p wchan (2089) 5. disk interrupt comes in completing the write of the buffer 6. it calls iodone, which calls wakeup on the buffer address 7. calls setrun, which sets p wchan to zero and p stat to SRUN 8. interrupt handler completes 9. process sets p stat to SSLEEP (2090) 10. and call swtch 11. process will never be woken up because p wchan is zero and p stat SSLEEP

6.097 FALL 2002, Quiz 1 Page 5 of 7 III Address spaces 7. [10 points]: Draw the prototype segmentation registers with their actual content after the call to estabur() on line 3152 has completed. Assume that w0 is 410, w1 is 129, w2 is 32, and w3 is 128 (see lines 3076 through 3082). Explain the content of the registers briefly. (Ignore the protection bits in the descriptor) Converting what we are given into blocks (and hence the arguments to estabur), we get: text size is 129 bytes (w1 = 129) ==> nt = 3 blocks SSIZE (stack size) = 20 blocks ==> ns = 20 blocks data size is 160 bytes (w2 = 32, w3 = 128) ==> nd = 3 blocks USIZE = 16 blocks That is, estabur(nt = 3, nd = 3, ns = 20, sep = 0). Since each segment (8KB) contains 128 blocks, the text, data, and stack each fit within one segment: PAR[7]: -89 PDR[1]: 108 ED RW PAR[7] = USIZE + nd + ns - 128 = 16 + 3 + 20-128 = 39-128 = -89 PDR[1] = (128 - ns) << 8 ED RW = 108<<8 ED RW PAR[1]: USIZE PDR[1]: 2 RW PAR[1] = USIZE = 20 PDR[1] = (nd - 1) << 8) RW = 2<<8 RW PAR[0]: 0 PDR[0]: 2 RO PAR[0] = 0, because at line 1675 a = 0 PDR[0] = (nt - 1) << 8) R0 = 2<<8 R0 All other PARs and PDRs are cleared by lines 1694 1696.

6.097 FALL 2002, Quiz 1 Page 6 of 7 8. [10 points]: Why is a-128 stored in the prototype segment for the stack? Explain your answer by showing how the virtual address 0177777 is translated to a physical address. At the point where a-128 is written into PAR[7], a equals the combined sizes of the u area, data, bss and stack. A contiguous region of physical memory ( a blocks in size) is allocated to hold these components of the process. +-----------+ stack +-----------+ data+bss +-----------+ u area +-----------+ a blocks in size Dividing the VA 0177777 into its constituent fields, APF:block number:block offset yields 7:127:63. Translation of this VA selects PAR[7] which holds a-128. Added to this number is the block number, 127, resulting in physical block number a-1. The physical address refernced is therefore a-1 :63. But since the chunk of physical memory allocated was of size a blocks, this precisely refers to the last byte (byte 63) of the last block (block a-1 ). This is where the first byte of the stack is located. 9. [5 points]: What happens if the processor executes the instruction tst -(sp), and the user stack pointer falls below the stack segment? Write down the names of the functions that v6 invokes in order. (Explain briefly) A segmentation exception will result and the stack will grow (assuming free memory can be found). The following calls will be made: Machine generates exceptions => trap: => trap() => backup() => grow() Then control returns back to the user process and it resumes execution where it left off, re-executing the tst -(sp) instruction. The second execution succeeds of course. IV I/O and file systems 10. [5 points]: Why does the structure struct file exist? Why not have a file descriptor point directly to the incore inode structure, and store f offset in it? struct file exists so that if two separate processes open the same file, they have their own offset pointer into it.

6.097 FALL 2002, Quiz 1 Page 7 of 7 11. [10 points]: Assume the directory d exists, that it is the current working directory, and that it has two entries (including. and.. ). If an application calls creat ( bar, 0444), and the power fails right after the processor completed the call wdir on line 7467, what is the state of the file system on disk? More specifically, does the file bar exist on disk? Does the file bar show up in the directory d on disk? (Be brief) The updated inode of directory d exists (because inodes are updated synchronously). The data of d may not be written because v6 wrote it using bdwrite (it is a partial block). The file doesn t exist yet, because we haven t gotten far enough yet into the creat call (maknode is called from line 5790). End of Quiz I Solutions

MIT OpenCourseWare http://ocw.mit.edu 6.828 Operating System Engineering Fall 2012 For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms.