CSE 4300 - Operating Systems. Syllabus. Instructor: Wei Wei. Office: ITE 331.
Office Hours: Tu, Th 3:30pm – 4:30pm, Wednesday 1:30pm – 4:30pm.
CSE 4300 - Operating Systems Syllabus Instructor: Wei Wei Office: ITE 331 Office Hours: Tu, Th 3:30pm – 4:30pm, Wednesday 1:30pm – 4:30pm Phone: 860-486-8771 e-mail:
[email protected] Prerequisites: • • •
A rudimentary understanding of algorithms and data structure is required. A previous course in computer architecture is required. You must be able to program in C/C++.
Course Materials: • • • •
Text: Operating Systems Concepts, seventh edition, Silberchatz, Galvin, and Gagne, John Wiley & Sons, Inc. Assigned readings from the text and the WWW. Class Notes: Class notes (highly recommended) are posted on the class WWW site (see "On-line materials" below). On-line materials. A WWW site is maintained for the course. Web site: http://www.engr.uconn.edu/~weiwei/cse4300
This course provides an introduction to operating system design and implementation. The operating system provides a well-known, convenient, and efficient interface between user programs and the bare hardware of the computer on which they run. The operating system is responsible for allowing resources (e.g., disks, networks, and processors) to be shared, providing common services needed by many different programs (e.g., file service, the ability to start or stop processes, and access to the printer), and protecting individual programs from one another. The course will start with a brief historical perspective of the evolution of operating systems over the last fifty years, and then cover the major components of most operating systems. This discussion will cover the tradeoffs that can be made between performance and functionality during the design and implementation of an operating system. Particular emphasis will be given to three major OS subsystems: process management (processes, threads, CPU scheduling, synchronization, and deadlock), memory management
(segmentation, paging, swapping), file systems, protection and security, and operating system support for distributed systems This course is intended for undergraduate Computer Science and Computer Engineering majors (junior and senior students) and for MS students. Part 1: Introduction What is an operating system? Why operating system is important? History of operating system Operating systems and architecture
Part 2: Process management Processes, threads CPU scheduling Synchronization Deadlock
Part 3: Memory management Explicit memory management Virtual memory Paging & page replacement algorithms Virtual memory in the real world
Part 4: File systems File system I/O management Storage system Part 6: Advanced topics Networking, Protection & Security
Coursework Coursework
Timing
Assigned readings
Weekly
Written homeworks
5 assignments/semester
Approx % of grade 20%
2 weeks each (approx). Programming Assignments
3 programs 2 weeks each (approx)
30%
Midterm Exam 1
1/3 of semester
15%
Midterm Exam 2
2/3 of semester
15%
Final Exam
after last class
20%
Quiz
random in class
+5%
Copying of programs, written homeworks, or exams is not permitted. You can talk to other students about he assignments, but the work must be substantially your own. If you're having trouble with an assignment or if you're having trouble meeting a deadline, see the instructor; we will bend over backwards to help you but we will not tolerate cheating. No late homework or project is allowed. No incomplete is given for this course.
Class Master Schedule NOTE: The dates below represent an ideal schedule not the actual schedule.
Class #
Date
Topic
1
8/26
Class overview, mechanics, goals.
2
8/28
OS & computer architecture.
3
9/2
Processes I
4
9/4
Processes II
5
9/9
Linux, C/C++ intro I
6
9/11
Linux, C/C++ intro II
7
9/16
Linux, C/C++ intro III
8
9/18
Threads
9
9/23
Scheduling
10
9/25
Exam 1
11
9/30
Synchronization I
12
10/2
Synchronization II
13
10/7
Synchronization III
14
10/9
Deadlock
15
10/14
Deadlock
16
10/16
Memory management
17
10/21
Explicit memory management
18
10/23
Virtual memory in practice
19
10/28
File system I
20
10/30
Exam 2
21
11/4
File system II
22
11/6
I/O systems
23
11/11
Storage systems
24
11/13
RAIDS
25
11/18
Networking
26
11/20
Protection
No class
11/25
Thanksgiving holiday
No class
11/27
Thanksgiving holiday
27
12/2
Security
28
12/4
Class review