ࡱ> 685M ;bjbj== "XWWv7l\\\\\\\p&#&#&#8^#r#Lp:h##"$$$%%%9999999$; =9\%%%%%9Y(\\$$9Y(Y(Y(%\$\$9Y(%9Y( Y(y.R6\\7$# Tp&#k&:7790:7B>>&>>7Y(pp\\\\CSE 521 Introduction to Operating Systems Fall 2002 Course Description An Operating System is a complex software package that manages the resources of a computer system, and provides the base upon which applications can be written. In this course we will study the basic components of an operating system, their functions, mechanisms, policies and techniques used in their implementation and several examples from popular operating systems. The components, which will be discussed, include: Process management: process description and control, system calls, concurrency, mutual exclusion, synchronization, inter-process communication, deadlock and scheduling. Multiprogramming and concurrency using processes. Programming with threads: creation, multi-threaded programs, synchronization, and scheduling. Storage management: virtual memory, I/O management and file systems. Networking and distributed systems: network protocols, two-tier and three-tier client/server application development; issues in building a distributed systems. Protection and security: protecting resources, security threats, public key encryption, access control, and network security. Hands on practical projects (in C++) using experimental operating system Nachos will support concepts discussed during the lecture. On completion of this course students will be able to understand the components and working of an operating systems and design and implement various operating system functions. Towards the end of the course, we will also read some papers on distributed systems. Course Information Newsgroup: sunyab.cse.421 Website: http://www.cse.buffalo.edu/~agarg/cse521/fall2002 Instructor: Ashim Garg (agarg@cse.buffalo.edu) Lecture Time: Tue/Thu 9:30AM 10:50AM Lecture Location: NSC 228 Office: 238 Bell Hall Office Hours: TW 1:00 PM 2:00 PM Recitations: R1: Thu, 3:30 PM- 4:20 PM, 216 Norton R2: M, 10:00 AM- 10:50 AM, 209 Norton R3: F, 3:00 PM- 3:50 PM, 260 Capen R4: F, 11:00 AM- 11:50 AM, 260 Capen TA Information: TBA Textbook and other material The primary textbook for this course is: Operating Systems Concepts by A. Silberschatz, P.B. Galvin, and G. Gagne, 6th Edition, John Wiley and Sons. , 2001. HTMLCONTROL Forms.HTML:Hidden.1  While there are no other required textbooks, you should have in your possession appropriate reference books for both the C and C++ programming languages. I would strongly suggest Kernighan and Ritchies The C Programming Language and Stroustrups The C++ Programming Language. Pre-requisites The course requires the use of many skills that you have developed and refined over your undergraduate study. Due to the skill level required and inherent difficulty of this course, it is required that you have successfully completed the pre-requisite courses. The pre-requisites for this course include CSE241/EE378 and CSE250, or their equivalent courses. If you do not possess the pre-requisites, you must drop the course immediately. Failure to do so may result in the department dropping you from the course at your expense! Further, I am suggesting that all students should have successfully completed a course in Computer Architecture and should have completed CSE305. Computer Architecture will help with the hardware concepts, and 305 will provide broader exposure to programming languages. You will also be working on several large programming projects over the course of the semester. You must have a strong working knowledge of C (intermediate level background or above). You must also have enough experience with C++ to understand the fundamentals of classes. This knowledge should extend to dynamic allocation and de-allocation of instances and fundamental pointer operations for class instances. You should also be familiar with Java, and its basic libraries (util, lang, net). NOTE: It is NOT the intent of this course to teach you how to program in a new programming language. I assume that since you are all seniors in Computer Science and Engineering you should be able to pick up the essentials of any programming language within a few weeks. Much of the project work revolves around strong design, which you have all been exposed to since Programming/Computer Science I. Grading Distribution Grades will consist of the following components: Component (Quantity)PercentageProject (3)15%, 20%, 20%Midterm (1)20%Final (1)25% Point distribution guideline will be as follows: Point RangeLetter Grade95.00-100A90.00-94.99A-85.00-89.99B+80.00-84.99B75.00-79.99B-70.00-74.99C+65.00-69.99C60.00-64.99C-55.00-59.99D+50.00-54.99D0-49.99F I reserve the right to alter component weighting or provide a curve on an assignment as warranted. NOTE : ( COMPONENT PASS POLICY ( IN ORDER TO PASS THIS COURSE, YOU MUST HAVE PASSING WEIGHTED COMPONENT AVERAGES (WEIGHTED COMPONENT AVERAGES MUST BE GREATER THAN 49.99) THERE WILL BE TWO COMPONENTS THIS SEMESTER. COMPONENT 1 IS THE EXAM COMPONENT CONSISTING OF THE MIDTERM AND FINAL. COMPONENT 2 IS THE PROJECT COMPONENT CONSISTING OF THE THREE PROJECTS. Projects Project assignments constitute a major portion of the course. Over the semester, you will be given three project assignments. The assignments will require you to alter and extend the capabilities of an instructional Operating System called Nachos. The Nachos Operating System provides both the instructor and the student with the ability to explore important implementation concepts without the hassle of a stand-alone development machine. The projects will cover fundamental areas of Operating System development. You will be given approximately 25 30 days to complete each exercise. Do not be lulled into a safe sense of security. Do not think you have a lot of time to implement each project! Although many parts of the Nachos project assignment only require a few lines of code to implement, each project does require that you have a strong understanding of the existing code. This understanding takes time, patience, and an experimenting attitude. All due dates will be clearly printed on the top of each assignment. Late assignments will not be accepted for any reason. Remember, it is better to submit your solution every so often before the due date! For each project, we will have a Nachos Walk-Through day in lecture. During these walkthroughs, we will show you what areas of code to look at, what you need to do, and different approaches to help you design your solution. During walk-through days, we may constrain or relax some of the conditions of the projects, so it is important to attend! Develop your code using the Incremental Development technique. Do not try to sit down and code the entire assignment in one sitting. Instead, take one section at a time, implement, test it, back up the code, and move on to the next section. You will turn in each project before 11:59 PM on the due date via the departmental submit command. You must also include appropriate testing programs to show the validity of your solution. In addition, you must include external documentation discussing the hows and whys of your design and implementation. You will be required to demonstrate your project to your TA. During testing, you will compile and run your Nachos code for the TA. The TA will also run test examples against your code to check your solutions overall correctness. The TA will provide a demo schedule. It is your responsibility to demo your project, or you will receive a zero for that portion of the grade. When your grade is assigned for the project, the TA will indicate critical areas that must be fixed in order to solve the next assignment. In general, solutions are not provided for the Nachos projects. It is not that we do not have them, or am unwilling to distribute them, its that there is no one answer to any project solution. Exams There will be a Midterm that will be administered and graded before the resign date. Midterm material will cover all lecture and reading assignments before the exam, as well as concepts from the project assignments. Midterms are closed book, closed notes, and closed neighbor. Please see the additional handout for exam taking policies for this course. The final is a comprehensive exam, covering all lecture, project, and homework areas. The final exam will also cover the papers on distributed systems that you will be given to read during the course. The final is closed book, closed notes, and closed neighbor. Please see the additional handout for exam taking policies for this course. We do not give make up exams for any reason. If you miss an exam, you will receive a zero for that portion of the grade. Attendance Policy Although attendance is not officially required, you are still responsible for the contents of all lectures and recitations (your assigned section). If you know that you are going to miss a lecture or a recitation, have a reliable friend take notes for you. Of course, there is no excuse for missing due dates or exam days. We do, however, reserve the right to take attendance in both lecture and recitation. We may use this information to determine how to resolve borderline grades at the end of the course, especially if we see a lack of attendance and participation during lecture sessions. During lectures, we will be covering material from the textbook. We will also work out several of the problems from the text. Lecture will also consist of the exploration of several real world Operating System problems not covered in the book. You will be given a reading assignment at the end of each lecture for the next class. Recitations are designed to review difficult concepts in the class and to spend additional time discussing the project work required for the course. The recitation is your time to communicate with your TA about the course. Use the opportunity to the fullest. Office Hour Policy In the first section of the syllabus, we have posted our office hours. Please respect these hours! If you cant meet during these hours, you will have to communicate with us via Email. Office hours are intended to resolve questions about the material that could not be answered in lecture or recitation. Come to office hours prepared! Office hours are NOT for the following: to repeat missed lecture material, to repeat missed recitation material or to have the instructor or TA solve an assigned problem for you. During office hours, we will NOT write or debug your code for you! Instead, we will direct you as to where to concentrate your debugging efforts. Grading Policy All assignments will be graded and returned in a timely manner. When an assignment is returned, you will have a period of one week to contest any portion of the grade. The TA who graded your assignment will be the first person to resolve a grading conflict. If the conflict cannot be resolved, the instructor will mediate the dispute. The judgment of the instructor will be final in all such cases. When contesting a grade, you must be able to demonstrate how your particular solution is correct. Also, when contesting a grade, the instructor or TA reserves the right to re-evaluate the entire project or exam, not just the portion in dispute. Incomplete Policy We only grant incompletes in this course under the direst of circumstances. By definition, an incomplete is warranted if the student is capable of completing the course satisfactorily, but some traumatic event has interfered with their capability to finish within the timeframe of the semester. Incompletes are not designed as stalling tactic to defer a poor performance in a class. Academic Integrity Policy UBs definition of Academic Integrity in part is, Students are responsible for the honest completion and representation of their work. It is required as part of this course that you read and understand the departmental academic integrity policy located at the following URL: http://www.cse.buffalo.edu/Academic_Integrity.html. There is a very fine line separating conversation pertaining to concepts and academic dishonesty. You are allowed to converse about general concepts, but in no way are you allowed to share code or have one person do the work for others. You must abide by the UB and Departmental Academic Integrity policy at all times. NOTE: Remember that items taken from the Internet are also covered by the academic integrity policy! If you are unsure if a particular action violates the academic integrity policy, assume that it does until you receive clarification from me. This semester, all projects will be checked using an electronic cheat checking system. We reserve the right to check or question any portion of any work submitted at any time during the semester or afterwards. If you are caught violating the academic integrity policy, you will minimally receive a ZERO in the course. We will also place the incident in your permanent record. If it is your second violation, we will recommend to the Director of Graduate Studies that formal proceedings be filed against you, which would mean either you could be expelled, or your degree progress will be terminated within the Computer Science and Engineering department. WE TAKE ACADEMIC HONESTY QUITE SERIOUSLY, SO SHOULD YOU! Web Site and Newsgroup The CSE521 website should be checked frequently for important news. Course assignments, slides, grade reporting, and general hints and tips will be posted on the website. The newsgroup will be used as a method to ask questions regarding assignments. We encourage all students to participate in newsgroup conversations. Generally, we will try to answer newsgroup questions within a period of 48 hours of their posting. Students with Disabilities If you have special needs due to a disability, you must be registered with the Office of Disability Services. If you are registered with ODS, I need to know as soon as possible. Do not assume that I have received the paperwork! PAGE  PAGE 6 E) < = > R p   0 1 2 3 -\0Gasv| !st()+qr|nt>""l#m#t#$$&&''''))f+z+,,--.'.00 5>*\6] j j 56\] j<Uj,!A CJUVaJ jUH*5\PDEXY:( ) < = X  * D h i  h^h^^ & F $a$v;; > R T p q 4 5 KL[\uv   !Rh^h h^h`$h`ha$ $^`a$$a$h^hRShstlwwDww<ww $$Ifa$p$$IfTl0 Gq B t064 la$If$^a$  %4xx@xx@x $$Ifa$m$$IfTl0d(I064 la$If$^a$ %()578DGHTWXdfgs<@@<@m$$IfTl0d(I064 la $$Ifa$svw@<,w$h^ha$$^a$m$$IfTl0d(I064 la $$Ifa$ qr{|DEqref""l#m#s#t#$$,&-&&$a$h^hh^h$h^ha$&&&&&&))`*a*e+f+y+z+..&.'.0000F2G2a2$^a$$h^ha$$a$$h^ha$^h^h0G2b2445?6i6t6x666666z888r::u;v;w;};~;;;;;;;;;;;0JmHnHu0J j0JU56>*\] 56\]6]5\"a2b23355668888q:r:::v;;;;;;;;;&`#$$^a$$a$h^h$h^ha$ 1h/ =!"#$%DdhJ  C A? "2 *Hn%2RD`!*Hn%2Rr` |xm=0 s/+ HLLexjTkH}&YHbDv3gI)t[՘$1HZB$GE(y*t:'&Fa!   !"#$%&'()*+,./012347;:<>=?C@ABDkEFGHIJlLMNOPQRSTUVWXYZ[\]^_`abcdefghijRoot Entry  FT9Data -WordDocument "XObjectPoolaTT_1092720684U\gaT@dTPRINTCompObjqObjInfo   !"#$%'()*+,-./0123456789:;<=>?ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnpqrstuy {    `- !_ !_- ! !^- !^ !]- ! !\  `I 2 ^.' U\gForms.HTML:Hidden.1Embedded ControlForms.HTML:Hidden.19q2U\g<INPUT TYPE="hidden" NAME="colid">Oh+'0  0< X d p |"Introduction to Operating SystemsosOCXDATA T1TableK>>SummaryInformation( DocumentSummaryInformation8\ntrChristopher A. EgerttinhrihriNormalpagargp65rMicrosoft Word 9.0t@F!@,17@i@ T-՜.+,0, px  University at Buffalo a)8 "Introduction to Operating Systems TitleȲ0* pHdProjectQ(@= l ˲> J< rstdole>stdoleP f%\*\G{00020430-C 0046}#2.0#0#C:\WINDOWS\SYSTEM\c2.tlb#OLE Automation^D@NormalDNABrmaE  *\CK l!OPfficfO`fPicf!G{2DF8D04C-5BFA-101B-BDE5fAAd42fgram Files\Microsoft 6\MSO9.DLL#  9.0 Ob Li`brarMacros`TTVBA`TTdirThisDocument&syCMSF>s>MSF>Hs3@@_D452EE1-E08FA,A-8-02608C4 D0BB4_FMl20& lL&/;!1}Bwy }00}#0}# 50 vA43B262C9-B5961D6-B1F486489A736c:\win dows\@P\Word8.0\DP.exd_U8.E .`M BJThisDocumentGThsDjcuien 2 HB1tZz",TJ""+2.RJJx(HTMLHidden9, 11, 11, MSForms, HTMLHiddenME PS"SS"<s<<<(1Normal.ThisDocument0x(%* 0* `p*! *# *% *' *) P*+ *- */  *1  %*3@ HH*\R8005*#83xðAttribute VB_Name = "ThisDocument" Bas1Normal.VGlobal!SpaclFalse CreatablPre declaIdTru BExposeTemplateDeriv$Custom izC1ControlHTMLHidden9, 11MSFs, _VBA_PROJECT@ PROJECT oPROJECTlkv6PROJECTwmw)am  *\G{000204EF-0000-0000-C000-000000000046}#4.0#9#C:\PROGRAM FILES\COMMON FILES\MICROSOFT SHARED\VBA\VBA6\VBE6.DLL#Visual Basic For Applications *\G{00020905-0000-0000-C000-000000000046}#8.1#0#C:\Program Files\Microsoft Office\Office\MSWORD9.OLB#Microsoft Word 9.0 Object Library*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\WINDOWS\SYSTEM\stdole2.tlb#OLE Automation*\CNormal*\CNormal˲> *\G{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}#2.1#0#C:\Program Files\Microsoft Office\Office\MSO9.DLL#Microsoft Office 9.0 Object Library*\G{0D452EE1-E08F-101A-852E-02608C4D0BB4}#2.0#0#C:\WINDOWS\SYSTEM\FM20.DLL#Microsoft Forms 2.0 Object Library*\G{43B262C9-B59F-11D6-B1F4-000086489A73}#2.0#0#c:\windows\TEMP\Word8.0\MSForms.exd#Microsoft Forms 2.0 Object Library.E .`M  ˲>JThisDocument0N3eb2cbb5ThisDocumentJ bCHs`'WordkVBAWin16~Win32MacVBA6#Project1 stdole`Project- ThisDocument< _EvaluateNormalOfficeuMSFormsC HTMLImage1| HTMLImage2} HTMLImage3~ HTMLHidden1V HTMLHidden2V HTMLHidden3V HTMLHidden4V HTMLHidden5V HTMLHidden6V HTMLHidden7V HTMLHidden8V HTMLHidden9VDocumentj`  ID="{43B262D8-B59F-11D6-B1F4-000086489A73}" Document=ThisDocument/&H00000000 Name="Project" HelpContextID="0" VersionCompatible32="393222000" CMG="25278DE2970B9B0B9B0B9B0B9B" DPB="5250FAD526D626D626" GC="7F7DD708291857195719A8" [Host Extender Info] &H00000001={3832D640-CF90-11CF-8E43-00A0C911005A};VBE;&H00000000 &H00000002={000209F2-0000-0000-C000-000000000046};Word8.0;&H00000000 U\gU\gThisDocumentThisDocument] i8@8 NormalCJ_HaJmH sH tH 8@8 Heading 1$$@&a$5\@@@ Heading 2$$@&^a$5\:@: Heading 3$h@&^h5\BB Heading 4$<@&5CJ\aJFF Heading 5 <@&56CJ\]aJ@@ Heading 6 <@&5CJ\aJ22 Heading 7 <@&88 Heading 8 <@&6]F F Heading 9 <@&CJOJQJ^JaJ<A@< Default Paragraph Font.U@. Hyperlink >*B*phBC@B Body Text Indent$h`ha$FR@F Body Text Indent 2$^a$FS@"F Body Text Indent 3$h^ha$, @2, Footer  !&)@A& Page Number<TR< Block Textx]^*Bb* Body Textx4Pr4 Body Text 2 dx6Q6 Body Text 3xCJaJHMaH Body Text First Indent `^N^ Body Text First Indent 2$hx^h`a$8"8 Caption xx5CJ\aJ*?* Closing ^44 Comment TextCJaJL@ DateJYJ Document Map-D M OJQJ^J4[4 E-mail Signature 4+4 Endnote Text!CJaJ`$"` Envelope Address!"@ &+D/^@ OJQJ^JF%2F Envelope Return#CJOJQJ^JaJ6B6 Footnote Text$CJaJ,R, Header % !2`b2 HTML Address&6]JerJ HTML Preformatted'CJOJQJ^JaJ2 2 Index 1(^`2 2 Index 2)^`2 2 Index 3*^`2 2 Index 4+^`22 Index 5,^`22 Index 6-^`22 Index 7.^`22 Index 8/^`22 Index 90p^p`@!@ Index Heading15OJQJ\^J,/", List2h^h`0220 List 23^`03B0 List 348^8`04R0 List 45^`05b0 List 56^`20r2 List Bullet 7 & F666 List Bullet 2 8 & F676 List Bullet 3 9 & F686 List Bullet 4 : & F696 List Bullet 5 ; & F:D: List Continue<hx^h>E> List Continue 2=x^>F> List Continue 3>8x^8>G> List Continue 4?x^>H> List Continue 5@x^212 List Number A & F6:"6 List Number 2 B & F6;26 List Number 3 C & F 6<B6 List Number 4 D & F 6=R6 List Number 5 E & F d-bd Macro Text"F  ` @ OJQJ^J_HmH sH tH Ir Message HeadergG8$d%d&d'd-DM NOPQ^8` OJQJ^J,^, Normal (Web)H66 Normal Indent I^,O, Note HeadingJ<Z< Plain TextKCJOJQJ^JaJ(K( SalutationL.@. Signature M^>J> SubtitleN$<@&a$ OJQJ^JL,L Table of AuthoritiesO^`D#D Table of FiguresP ^` N>N TitleQ$<@&a$5CJ KHOJQJ\^JaJ @.@ TOA HeadingRx5OJQJ\^J TOC 1S&& TOC 2 T^&& TOC 3 U^&& TOC 4 V^&& TOC 5 W^&& TOC 6 X^&& TOC 7 Y^&& TOC 8 Z^&& TOC 9 [^>V@> FollowedHyperlink >*B* ph7XDEXY:()<=X*Dhi>RTpq4 5 K L [ \ uv   !RShst %()578DGHTWXdfgsvwqr{|DEqreflmst ,"-"""""""%%`&a&e'f'y'z'**&*'*,,,,F.G.a.b.//11224444q6r666v777770000E0E0E 0E 0E 0E 0E 0E0E00E0E(0E0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000@0@0@0 0 0; * R%s&a2;!#$%&'()+;" 0 2 7[ !! 8@0(  B S  ?IW8= , cgimb.f.v777=Wv77733FFTUWW 3 \ \ c c ' * s s bi?F8 ? !!/!!&&,,,,x/x///3344u7v7v7777!Computer Science and Engineering1C:\My Documents\bina\cse421\fall2002\syllabus.doc!Computer Science and Engineering1C:\My Documents\bina\cse421\fall2002\syllabus.doc!Computer Science and Engineering1C:\My Documents\bina\cse421\fall2002\syllabus.doc!Computer Science and Engineering1C:\My Documents\bina\cse421\fall2002\syllabus.docComputer Science & EngineeringRC:\WINDOWS\Application Data\Microsoft\Word\AutoRecovery save of CSE531-handout.asdComputer Science & Engineering+C:\My Documents\ashim\CSE531-handout.mswordComputer Science & Engineering+C:\My Documents\ashim\CSE531-handout.mswordComputer Science & Engineering+C:\My Documents\ashim\CSE531-handout.mswordComputer Science & Engineering+C:\My Documents\ashim\CSE531-handout.mswordagargN:\cse521-handout.msword |}CE}~JvVD~dC6Bֻ;ıZ:h69*l8Ah7Oo&LJR ^`.^`.88^8`.^`. ^`OJQJo( ^`OJQJo( 88^8`OJQJo( ^`OJQJo(hh^h`. hh^h`OJQJo(h 88^8`OJQJo(h ^`OJQJo(oh   ^ `OJQJo(h   ^ `OJQJo(h xx^x`OJQJo(oh HH^H`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(hh^h`)^`)88^8`)^`()^`()pp^p`()  ^ `.@ @ ^@ `.  ^ `. R~}|Oo&          Shst %()578DGHTWXdfgsvw7@UUtU=7@@UnknownGz Times New Roman5Symbol3& z Arial;Wingdings5& z!Tahoma?5 z Courier New"qh|HF-*i:YA-a P9z!20d)8^C 2Q!Introduction to Operating SystemsChristopher A. EgertagargCompObj xj  FMicrosoft Word Document MSWordDocWord.Document.89q