This preview shows page 1-2 out of 6 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 6 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 6 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 6 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

1CSE 4/521 Introduction to Operating Systems Fall 2004 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 system and to design and implement various operating system functions. Course Information Newsgroup: sunyab.cse.421 Website: http://www.cse.buffalo.edu/~bina/cse421/fall2004 Instructor: Bina Ramamurthy ([email protected]) Lecture Time: CSE421: 8.00-9.20PM Lecture Location: 225 NSC Office: 127 Bell Hall Office Hours: Tue: 9.00-11.00AM, Wed: 10.00-11.00AM Recitation A1: Tue 11.00 – 11.50AM, Norton 214, TA: Recitation A2: Wed 10.00 -10.50PM, Norton 214, TA: Recitation A3: Fri 3.00 - 3.50PM, Clemens 209, TA: Textbook and other material The primary textbook for this course is: Operating System Concepts by Siberchatz, Galvin and Gagne, Sixth Edition, John-Wiley and Sons, 2002.2While there are no other required textbooks, you should have in your possession appropriate reference books for both the C and C++ programming languages. Pre-requisites CSE421 is the capstone course for your Bachelor degree within the Department of Computer Science and Engineering. The course requires the use of many skills that you have developed and refined over the last several semesters. Due to the skill level required and inherent difficulty of this course, it is required that you have successfully completed the pre-requisite courses. Successful completion means that you have completed the course in a semester prior to the current one, and that you achieved a grade of C- or higher. The pre-requisites for this course include CSE241/EE378 and CSE250 or an equivalent course. If you do not possess the pre-requisites, you must drop the course immediately. Failure to do so will result in the department dropping you from the course at your expense. 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. I assume that since you are all seniors and graduates in Computer Science and Engineering you should be able to pick up the essentials of any programming language within a few weeks. Grading Distribution Grades will consist of the following components: Component (Quantity) Percentage Labs (3) 15%, 20%, 20% Midterm (1) 20% Final (1) 25% Point distribution guideline will be as follows: Point Range Letter Grade95.00-100 A 90.00-94.99 A- 85.00-89.99 B+ 80.00-84.99 B 75.00-79.99 B- 70.00-74.99 C+ 65.00-69.99 C 60.00-64.99 C- 55.00-59.99 D+ 50.00-54.99 D 0-49.99 F3 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 LAB COMPONENT CONSISTING OF THE THREE PROJECTS. Labs Lab assignments constitute a major portion of the course. Over the semester, you will be given three lab 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 lab experiments 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 lab! Although many parts of the Nachos lab assignment only require a few lines of code to implement, each lab does require that you have a strong understanding of the existing code. This understanding takes time, patience, and an experimenting attitude. 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 lab assignments, 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 lab 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


View Full Document

UB CSE 421 - Syllabus

Documents in this Course
Security

Security

28 pages

Threads

Threads

24 pages

Security

Security

20 pages

Security

Security

52 pages

Security

Security

20 pages

Load more
Download Syllabus
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Syllabus and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Syllabus 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?