Operating systems are an essential part of any computer system. Similarly, a course on operating systems is an essential part of any computer science education. This Field is undergoing rapid change, as computers are now prevalent in virtually every arena of day-to-day life—from embedded devices in automobiles through the most sophisticated planning tools for governments and multinational firms. Yet the fundamental concepts remain fairly clear, and it is on these that we base this course.
Jinan University FulltimeUndergraduate Program Course De___scription
Course Offered by: International School Student Type: Computer Science
Credits: 3.5 Hrs./Week: 3 Total Hrs. 63
Course Title | Operating Systems | ||||||||||||||||||||||||||||
Previous Course Title |
| ||||||||||||||||||||||||||||
Course Code | 60080015 | Course Type | Compulsory | ||||||||||||||||||||||||||
Prerequisite Course(s) | C,Java, Problem Solving and Programming | Course Evaluation | Exam | ||||||||||||||||||||||||||
(Teaching Objectives、Teaching Requirements、Teaching Contents)
1. Teaching Objectives "Operating system" is a computer professional and compulsory basic course. It is a technical and practical course. This course will enable students to fully grasp the exclusive formation and development of the operating system, processor memory management, device management, operations management and processes, synchronization, communication and deadlock, to learn how to use Windows, Linux, Android, other different operating systems, and to solve practical problems. 2. Teaching Requirements 1) describe the basic organization of computer systems 2) provide a grand tour of the major components of operating systems 3) give an overview of the many types of computing environments 4) explore several open-source operating systems
3. Teaching Contents
The content is organized in eight major parts: 1. Overview. Chapters 1 and 2 explain what operating systems are, what they do, and how they are designed and constructed. These chapters discuss what the common features of an operating system are and what an operating system does for the user. We include coverage of both traditional PC and server operating systems, as well as operating systems for mobile devices. The presentation is motivational and explanatory in nature. We have avoided a discussion of how things are done internally in these chapters. Therefore, they are suitable for individual readers or for students in lower-level classes who want to learn what an operating system is without getting into the details of the internal algorithms. 2. Process management. Chapters 3 through 7 describe the process concept and concurrency as the heart of modern operating systems. A process is the unit of work in a system. Such a system consists of a collection of concurrently executing processes, some of which are operating-system processes (those that execute system code) and the rest of which are user processes (those that execute user code). These chapters cover methods for process scheduling, interposes communication, process synchronization, and deadlock handling. Also included is a discussion of threads, as well as an examination of issues related to multicore systems and parallel programming. 3. Memory management. Chapters 8 and 9 deal with the management of main memory during the execution of a process. To improve both the utilization of the CPU and the speed of its response to its users, the computer must keep several processes in memory. There are many different memory-management schemes, reflecting various approaches to memory management, and the effectiveness of a particular algorithm depends on the situation. 4. Storage management. Chapters 10 through 13 describe how mass storage, the file system, and I/O are handled in a modern computer system. The file system provides the mechanism for on-line storage of and access to both data and programs. We describe the classic internal algorithms and structures of storage management and provide a firm practical understanding of the algorithms used their properties, advantages, and disadvantages. Since the I/O devices that attach to a computer vary widely, the operating system needs to provide a wide range of functionality to applications to allow them to control all aspects of these devices. We discuss system I/O in depth, including I/O system design, interfaces, and internal system structures and functions. In many ways, I/O devices are the slowest major components of the computer. Because they represent a performance bottleneck, we also examine performance issues associated with I/O devices. 5. Protection and security. Chapters 14 and 15 discuss the mechanisms necessary for the protection and security of computer systems. The processes in an operating system must be protected from one another’s activities, and to provide such protection, we must ensure that only processes that have gained proper authorization from the operating system can operate on the ®les, memory, CPU, and other resources of the system. Protection is a mechanism for controlling the access of programs, processes, or users to computer-system resources. This mechanism must provide a means of specifying the controls to be imposed, as well as a means of enforcement. Security protects the integrity of the information stored in the system (both data and code), as well as the physical resources of the system, from unauthorized access, malicious destruction or alteration, and accidental introduction of inconsistency. 6. Case studies. Chapters 20 through 22 in the text, along with Appendices A and B, present detailed case studies of real operating systems, including Linux, FreeBSD, and Mach. Coverage of both Linux and Windows 7 are presented throughout this Text; however, the case studies provide much more detail. It is especially interesting to compare and contrast the design of these two very different systems. Chapter 20 briefly describes a few other influential operating systems.
| |||||||||||||||||||||||||||||
Text Book(s) and Reference Materials | Text Book:Operating Systems Concepts ISBN: 9787040209280 Higher Education Press Reference Materials: Operating Systems:Principles and Design ISBN: 9787302274896, 7302274894
|
Jinan University
Undergraduate Syllabus for
__Operating Systems ____ (Course Title)
Course code 60080015
Course title Operating Systems
Course type Compulsory[√ ] Specialized Optional [ ] Common Optional [ ]
Prerequisites C,Java,Problem Solving and Programming
Credits 3.5
Total course hours 63
Majors applicableto Computer Science
Students classification Mainland[√] Non-mainland [√]
Department/Schooloffering the course InternationalSchool
I. TeachingObjectives and Requirements
"Operatingsystem" is a computer professional and compulsory basic course. It is atechnical and practical course. This course will enable students to fully graspthe exclusive formation and development of the operating system, processormemory management, device management, operations management and processes,synchronization, communication and deadlock, to learn how to use Windows,Linux, Android, other different operating systems, and to solve practicalproblems.
TeachingRequirements:
1) describe the basic organizationof computer systems
2) provide a grand tour of themajor components of operating systems
3) give an overview of the manytypes of computing environments
4) explore several open-sourceoperating systems
II. Key Pointsand Main Areas of Difficulty of the Course
1) organization of computersystems
2) processor memory management,device management, operations management and processes, synchronization,communication and deadlock, Protection & Security,
III. Lab or Practical Work Required to Support theCourse
1) Elevator schedule: A buildingof 20-floors,five interconnected elevator. Based multi-thread, writing anelevator scheduler.
2) Banker's algorithm: processesP0 through P4;3 resource types: A (10 instances), B (5instances), and C (7instances),Snapshot at time T0: Can request for (1,0,2) by P1 be granted?Canrequest for (0,1,0) by P2 be granted?
3) Protection: Please givethe rights-set matrix, and implement the management system.
4) MIT’s Lab
IV. Textbooks and References
a) Text Book:Operating Systems Concepts
ISBN:9787040209280
Higher Education Press
b) Reference Materials:
n Operating Systems:Principles andDesign
ISBN:9787302274896, 7302274894
n Conference list
No. | Conference | URL | ||
1 | ISCA | International Symposium on Computer Architecture | ACM SIGARCH, IEEE TCCA | http://www.acm.org/pubs/contents/proceedings/series/isca/ |
2 | MICRO | IEEE, ACM SIGMICRO | http://www.microarch.org/ | |
3 | ASPLOS | Architectural Support for Programming Languages and Operating Systems | ACM SIGOPS/SIGARCH/SIGPLAN | http://www.acm.org/pubs/contents/proceedings/series/asplos/ |
4 | FAST | Conference on File and Storage Technologies | USENIX | http://www.usenix.org/events/bytopic/fast.html |
5 | PACT | Parallel Architectures and Compilation Techniques | IEEE ACM SIGARCH | http://pact07.cs.tamu.edu/ |
6 | HPCA | High-Performance Computer Architecture | IEEE | http://www.ece.arizona.edu/~hpca/ |
7 | PPoPP | Principles and Practice of Parallel Programming | ACM SIGPLAN | http://research.ihost.com/ppopp08/ |
8 | SPAA | ACM Symposium on Parallelism in Algorithms and Architectures | ACM | http://www.cs.jhu.edu/~spaa/2007/ |
9 | SIGMETRICS | International Conference on Measurement and Modeling of Computer Systems | ACM SIGMETRICS | http://www1.cs.columbia.edu/~sigmet08/ |
10 | RTSS | Real-Time Systems Symposium | IEEE | http://www.rtss.org/ |
n Journals Directory
V. Grading System and Evaluation Methods
n 30%: Exam
n 30%: Course project(Source Code, Run Video, Presentations)
(13 persons/week for two weeks, between 15nd and 16th weeks)
n 20%: Exercises and participation
n 20%: Paper reviews and Coursepresentations(20 Mins/person )
(two persons/week for 13 weeks, between 2nd and 14th weeks)
VI. Detailed Points of Teaching Contents
Date / Month | Lesson | Class hours | Main contents (objectives and requirements, key points) | ||
Lec- ture | Lab | ||||
1 | March 3-4 | Ch 1 Introduction | 4 |
| 1.1 What Operating Systems Do 4 1.2 Computer-System Organization 7 1.3 Computer-System Architecture 12 1.4 Operating-System Structure 19 1.5 Operating-System Operations 21 1.6 Process Management 24 1.7 Memory Management 25 1.8 Storage Management 26 1.9 Protection and Security 30 1.10 Kernel Data Structures 31 1.11 Computing Environments 35 1.12 Open-Source Operating Systems 43 1.13 Summary 47 |
2 | March 10-11 | Ch 2 Operating-System Structures | 4 |
| 2.1 Operating-System Services 55 2.2 User and Operating-System Interface 58 2.3 System Calls 62 2.4 Types of System Calls 66 2.5 System Programs 74 2.6 Operating-System Design and Implementation 75 2.7 Operating-System Structure 78 2.8 Operating-System Debugging 86 2.9 Operating-System Generation 91 2.10 System Boot 92 2.11 Summary 93 |
3 | March 17-18 | Ch 3 Processes | 4 |
| 3.1 Process Concept 105 3.2 Process Scheduling 110 3.3 Operations on Processes 115 3.4 Interprocess Communication 122 3.5 Examples of IPC Systems 130 3.6 Communication in Client– Server Systems 136 3.7 Summary 147 4.1 Overview 163 4.2 Multicore Programming 166 4.3 Multithreading Models 169 4.4 Thread Libraries 171 4.5 Implicit Threading 177 4.6 Threading Issues 183 4.7 Operating-System Examples 188 4.8 Summary 191 |
Ch 4 Threads | |||||
4 | March 24-25 | Ch 5 CPU Scheduling | 4 | 3 | 5.1 Background 203 5.2 The Critical-Section Problem 206 5.3 Peterson’s Solution 207 5.4 Synchronization Hardware 209 5.5 Mutex Locks 212 5.6 Semaphores 213 5.7 Classic Problems of Synchronization 219 5.8 Monitors 223 5.9 Synchronization Examples 232 5.10 Alternative Approaches 238 5.11 Summary 242 |
5 | March 31-April 1 | Ch 6 Process Synchronization Ch 7 Deadlocks | 4 |
| 6.1 Basic Concepts 261 6.2 Scheduling Criteria 265 6.3 Scheduling Algorithms 266 6.4 Thread Scheduling 277 6.5 Multiple-Processor Scheduling 278 6.6 Real-Time CPU Scheduling 283 6.7 Operating-System Examples 290 6.8 Algorithm Evaluation 300 6.10 Summary 304
7. Deadlocks 7.1 System Model 315 7.2 Deadlock Characterization 317 7.3 Methods for Handling Deadlocks 322 7.4 Deadlock Prevention 323 7.5 Deadlock Avoidance 327 7.6 Deadlock Detection 333 7.7 Recovery from Deadlock 337 7.8 Summary 339 |
6 | April 7-8 | Ch 8 Main Memory | 4 | 3 | 8.1 Background 351 8.2 Swapping 358 8.3 Contiguous Memory Allocation 360 8.4 Segmentation 364 8.5 Paging 366 8.6 Structure of the Page Table 378 8.7 Example: Intel 32 and 64-bit Architectures 383 8.8 Example: ARM Architecture 388 8.9 Summary 389 |
7 | April 14-15 | Ch 9 Virtual Memory | 4 |
| 9.1 Background 397 9.2 Demand Paging 401 9.3 Copy-on-Write 408 9.4 Page Replacement 409 9.5 Allocation of Frames 421 9.6 Thrashing 425 9.7 Memory-Mapped Files 430 9.8 Allocating Kernel Memory 436 9.9 Other Considerations 439 9.10 Operating-System Examples 445 9.11 Summary 448 |
8 | April 21-22 | Ch 10 File-System Interface | 4 | 3 | 10.1 Overview of Mass-Storage Structure 467 10.2 Disk Structure 470 10.3 Disk Attachment 471 10.4 Disk Scheduling 472 10.5 Disk Management 478 10.6 Swap-Space Management 482 10.7 RAID Structure 484 10.8 Stable-Storage Implementation 494 10.9 Summary 496 |
9 | April 28-29 | Ch 11 File-System Implementation | 4 |
| 11.1 File Concept 503 11.2 Access Methods 513 11.3 Directory and Disk Structure 515 11.4 File-System Mounting 526 11.5 File Sharing 528 11.6 Protection 533 11.7 Summary 538 |
10 | May 5-6 | Ch 12 Mass-Storage Structure | 4 | 3 | 12.1 File-System Structure 543 12.2 File-System Implementation 546 12.3 Directory Implementation 552 12.4 Allocation Methods 553 12.5 Free-Space Management 561 12.6 Efficiency and Performance 564 12.7 Recovery 568 12.8 NFS 571 12.9 Example: The WAFL File System 577 12.10 Summary 580
|
11 | May 12-13 | Ch 13 I/O Systems | 4 |
| 13.1 Overview 587 13.2 I/O Hardware 588 13.3 Application I/O Interface 597 13.4 Kernel I/O Subsystem 604 13.5 Transforming I/O Requests to Hardware Operations 611 13.6 STREAMS 613 13.7 Performance 615 13.8 Summary 618
|
12 | May 19-20 | Ch 14 Protection | 4 | 3 | 14.1 Goals of Protection 625 14.2 Principles of Protection 626 14.3 Domain of Protection 627 14.4 Access Matrix 632 14.5 Implementation of the Access Matrix 636 14.6 Access Control 639 14.7 Revocation of Access Rights 640 14.8 Capability-Based Systems 641 14.9 Language-Based Protection 644 14.10 Summary 649
|
13 | May 26-27 | Ch 15 Security | 4
|
| 15.1 The Security Problem 657 15.2 Program Threats 661 15.3 System and Network Threats 669 15.4 Cryptography as a Security Tool 674 15.5 User Authentication 685 15.6 Implementing Security Defenses 689 15.7 Firewalling to Protect Systems and Networks 696 15.8 Computer-Security Classifications 698 15.9 An Example: Windows 7 699 15.10 Summary 701
|
14 | June 2-3 | Ch 21 The Linux System | 4 | 3 | 15.1 Linux History 687 15.2 Design Principles 692 15.3 Kernel Modules 695 15.4 Process Management 698 15.5 Scheduling 701 15.6 Memory Management 706 15.7 File Systems 715 15.8 Input and Output 721 15.9 Interprocess Communication 724 15.10 Network Structure 725 15.11 Security 727 15.12 Summary 730 Exercises 731 Bibliographical Notes 733 |
15 | June 9-10 | Appendix A: BSD UNIX Project Presentation | 2 |
| A.1 UNIX History A1 A.2 Design Principles A6 A.3 Programmer Interface A8 A.4 User Interface A15 A.5 Process Management A18 A.6 Memory Management A22 A.7 File System A24 A.8 I/O System A32 A.9 Interprocess Communication A36 A.10 Summary A40
Project Presentation |
16 | June 16-17 | Appendix B: The Mach System Project Presentation | 2 |
| B.1 History of the Mach System A897 B.2 Design Principles A899 B.3 System Components A900 B.4 Process Management A903 B.5 Interprocess Communication A909 B.6 Memory Management A914 B.7 Programmer Interface A919 B.8 Summary B24 A920 Exercises A921 Bibliographical Notes A922 Credits A923
Project Presentation |
17 | June 23-24 | Review | 2 |
|
|
18 | June 30 -July 1 | Review | 2 |
|
|
19 | July7 | Exam | 2 |
|
|
Part 1: Overview |
n Chapter 1,Introduction, includes updated coverage of multiprocessor and multicoresystems, as well as a new section on kernel data structures. Additionally, thecoverage of computing environments now includes mobile systems and cloudcomputing. We also have incorporated an overview of real-time systems.
n Chapter 2,Operating-System Structures, provides new coverage of user interfaces formobile devices, including discussions of iOS and Android, and expanded coverage of Mac OS X as a type of hybrid system.
·Overview.Chapters 1 and 2 explain what operating systems are, what they do, and how theyare designed and constructed. These chapters discuss what the common featuresof an operating system are and what an operating system does for the user. Weinclude coverage of both traditional PC andserver operating systems, as well as operating systems for mobile devices.
Part 2: Process Management |
n Chapter 3, Processes, now includes coverage ofmultitasking in mobileoperating systems, support for the multiprocess model inGoogle's Chromeweb browser, and zombie and orphan processes in UNIX.·
n Chapter 4, Threads, supplies expanded coverage ofparallelism andAmdahl's law. It also provides a new section on implicitthreading,including OpenMP and Apple's Grand Central Dispatch.·
n Chapter 5, Process Synchronization (previouslyChapter 6), adds a newsection on mutex locks as well as coverage ofsynchronization usingOpenMP, as well as functional languages.·
n Chapter 6, CPU Scheduling (previouslyChapter 5), contains new coverageof the Linux CFS scheduler andWindows user-mode scheduling.Coverageof real-time scheduling algorithms has also been integrated intothischapter.·
n Chapter 7:Deadlocks ,Sections7.1 through 7.3 may be covered quickly for students already familiar withdeadlocks. The Bankers Algorithm makes an excellent Chapter 7, Deadlocks.
Overview.Process management.Chapters 3 through 7 describe the process concept and concurrency as the heartof modern operating systems. A process is the unit of work in a system. Such asystem consists of a collection of concurrently executing processes, some ofwhich are operating-system processes (those that execute system code) and therest of which are user processes (those that execute user code). These chapterscover methods for process scheduling, interprocess communication, processsynchronization, and deadlock handling. Also included is a discussion ofthreads, as well as an examination of issues related to multicore systems andparallel programming.
Part 3: Memory Management |
n Chapter 8, Main Memory, includes new coverage ofswapping on mobilesystems and Intel 32- and 64-bit architectures. A new sectiondiscussesARM architecture.·
n Chapter 9, Virtual Memory, updates kernel memorymanagement toinclude the Linux SLUB and SLOB memory allocators.
·Overview. Memory management. Chapters 8 and 9 deal with the managementof main memory during the execution of a process. To improve both the utilizationof the CPU and thespeed of its response to its users, the computer must keep several processes inmemory. There are many different memory-management schemes, reflecting variousapproaches to memory management, and the effectiveness of a particular algorithmdepends on the situation.
Part 4: Storage Management |
n Chapter 10: Mass-Storage Structure ,Sections 10.1, 10.2, and10.4 may be covered quickly depending upon students' background. Thedisk scheduling algorithms (Section 10.4) make nice programmingexercises. adds cover-age of solid-state disks.·
n Chapter 11, File-System Interface (previouslyChapter 10), is updatedwith information about current technologies.·
n Chapter 12, File-System Implementation (previouslyChapter 11), isupdated with coverage of current technologies.·
n Chapter 13, I/O, updates technologies andperformance numbers, expandscoverage of synchronous/asynchronous andblocking/nonblocking I/O,and adds a section on vectored I/O.·
·Overview. Storage management. Chapters 10 through 13describe how mass storage, the file system, and I/O are handled in a modern computer system. Thefile system provides the mechanism for on-line storage of and access to bothdata and programs. We describe the classic internal algorithms and structuresof storage management and provide a firm practical understanding of thealgorithms used their properties, advantages, and disadvantages. Since the I/O devices that attach to acomputer vary widely, the operating system needs to provide a wide range offunctionality to applications to allow them to control all aspects of thesedevices. We discuss system I/O in depth, including I/O system design, interfaces, and internalsystem structures and functions. In many ways, I/O devices are the slowest major components ofthe computer. Because they represent a performance bottleneck, we also examineperformance issues associated with I/O devices.
Part 5: Protection and Security |
n Chapter 14 Protection,We recommend covering thischapter in its entirety in an advanced operating systems class.
n Chapter 15, Security, has a revised cryptographysection with modernnotation and an improved explanation of various encryptionmethods andtheir uses. The chapter also includes new coverage ofWindows 7security.·
··Overview. Protection and security. Chapters 14 and 15 discussthe mechanisms necessary for the protection and security of computer systems.The processes in an operating system must be protected from one another's activities,and to provide such protection, we must ensure that only processes that havegained proper authorization from the operating system can operate on the files,memory, CPU, andother resources of the system. Protection is a mechanism for controlling theaccess of programs, processes, or users to computer-system resources. Thismechanism must provide a means of specifying the controls to be imposed, aswell as a means of enforcement. Security protects the integrity of theinformation stored in the system (both data and code), as well as the physicalresources of the system, from unauthorized access, malicious destruction oralteration, and accidental introduction of inconsistency.·
Part 6: Case Studies |
n Chapter20, The Linux System
n Appendix A:BSD UNIX
n Appendix B: The MachSystem
n
Overview. Case studies. Chapters 20 through 22 in the text, alongwith Appendices A and B (which are available on (http://www.os-book.com),present detailed case studies of real operating systems, including Linux,Windows 7,FreeBSD, and Mach. Coverage of both Linux and Windows 7 are presentedthroughout this Text; however, the case studies provide much more detail. It isespecially interesting to compare and contrast the design of these two verydifferent systems.
Author’s signature Shuhua Zhu Examiner’s signature_____________
Date 01/03/2015 Date____________________
(dd/mm/yy) (dd/mm/yy)
I. Thisform should be completed after discussionbetween the Teaching and Research Section staff of the department concerned,and then Confirmed and sealed by the corresponding college. Regarding anyspecialized Compulsory Courses and specialized optional courses, which are notattached to any specific Teaching and Research Section, or are lectured by oneteacher alone, discussion should be organized by the department, andConfirmation signed and sealed by the college. In the case of Common OptionalCourses, syllabuses should first be drawn up by the lecturer in charge, thendemonstrated and Confirmed by specialists selected by the Academic Affairs Department(AAD) of the university, and finally approved and signed by the Director incharge.
II. TheContents of the Syllabus should be consistent with Undergraduate Program ofYear 2006 Students.
III. “Course Type” refers to CompulsorySpecialized Optional or Common Optional course.
IV. “Students Classification” refers toMainland Student or Non-Mainland Student.
V. “MajorsApplicable to” refers to all the major titles that could be applied to acertain syllabus. “Public Compulsory Course” should be marked as “All Majors ofthe University”.
VI. “Course offered by” refers to college,Department and Teaching and Research Section, or simply College and Departmentif the course has no Teaching and Research Section.
VII. “Total Course Hours” are counted as 18hours per I credit for one course.
VIII. “Practice-oriented Teaching Contentsand Requirements”. Name of practicing/internship to be noted. For detailedinformation, see “Laboratory Syllabus” or “Internship Syllabus”.
IX. “Textbooksand References” refers to the main textbooks used. Instructors should selecttextbooks of high quality, or published within 3 years of the current academicyear; or those recommended by specified research fields. If the instructorschoose self-edited textbooks/ references, they must document the titles of thetextbooks or references and state the reasons for their choice.
X. “GradingSystem and Evaluation Methods”. Grading System refers to the percentageallocation of final scores, with assignments, quizzes and attendance mark etc notexceeding 40% of the total score; Evaluation Methods refers to the form of theexamination, e.g. “open-book”, “closed-book” or “thesis writing” and so on.
XI. “Main Points of Teaching Contents”.Instructors should fill in the objectives and requirements, key points, classhour allocation of each chapter, as well as the main contents of each chapter.