We may earn an affiliate commission when you visit our partners.
Course image
骆斌 and 葛季栋

1946年第一台计算机面世之后,科学家与工程师们一直致力于让计算机更好地为人类工作,一代又一代操作系统因此应运而生。操作系统是计算机系统的灵魂,它管理计算机系统的资源,提供友善的人机互动,对于每一位计算机用户来说,认知和理解操作系统非常重要。

南京大学是中国最早从事,操作系统研发与教学的单位,1980年在中国首先出版了操作系统教程教材,至2014年该教材已更新至第五版。

本课程的教学组织为六个部分:计算机操作系统概述、处理器管理、存储管理、设备管理、文件管理、并发程序设计。学习者能够认知操作系统的基本概念与实现原理,并深入理解操作系统的设计方法与实现技术。

如果您是计算机科学、软件工程、电子、通信、控制、信息系统、电子商务、计算与信息科学等信息技术相关专业的学生,可以系统地学习本课程基本部分的内容,如果您想致力于操作系统的研发工作,可以进一步学习高级部分的内容;此外 如果您是计算机爱好者,

可以根据自己的需要,按需学习本课程相关部分的内容,建立对计算机操作系统整体或部分的认知。

Read more

1946年第一台计算机面世之后,科学家与工程师们一直致力于让计算机更好地为人类工作,一代又一代操作系统因此应运而生。操作系统是计算机系统的灵魂,它管理计算机系统的资源,提供友善的人机互动,对于每一位计算机用户来说,认知和理解操作系统非常重要。

南京大学是中国最早从事,操作系统研发与教学的单位,1980年在中国首先出版了操作系统教程教材,至2014年该教材已更新至第五版。

本课程的教学组织为六个部分:计算机操作系统概述、处理器管理、存储管理、设备管理、文件管理、并发程序设计。学习者能够认知操作系统的基本概念与实现原理,并深入理解操作系统的设计方法与实现技术。

如果您是计算机科学、软件工程、电子、通信、控制、信息系统、电子商务、计算与信息科学等信息技术相关专业的学生,可以系统地学习本课程基本部分的内容,如果您想致力于操作系统的研发工作,可以进一步学习高级部分的内容;此外 如果您是计算机爱好者,

可以根据自己的需要,按需学习本课程相关部分的内容,建立对计算机操作系统整体或部分的认知。

本课程有三个特点:第一,强调计算机软硬件协同设计技术,讲授操作系统各个模块的实现方法、策略与算法;第二,从大型软件系统构造的角度看待操作系统的实现,训练学生以折中的方法和方案,综合解决宏观问题的能力;第三,采用工程师的立场,强调操作系统的构造特征,即概念大于理论、技术大于算法、整体先于局部,培养学生综合解决实际问题的能力。欢迎大家修读本课程!

Enroll now

Here's a deal for you

Save money when you learn with a deal that may be relevant to this course.
All coupon codes, vouchers, and discounts are applied automatically unless otherwise noted.

What's inside

Syllabus

第一章 计算机操作系统概述
操作系统是计算机系统中最重要的系统软件。操作系统是一个大型复杂的并发系统,并发性、共享性和随机性是它的重要特征,并发机制支持多道程序设计,共享机制控制诸进程正确使用硬软件资源。其中,并发性和共享性又是两个最基本的特征,并发和共享虽能改善资源利用率和提高系统效率,但却引发了一系列问题,随机性使操作系统的实现更加复杂化,因而,设计操作系统时引进许多概念和设施来妥善解决这些问题。 多道程序设计技术是将多个作业放入主存并使它们同时处于执行状态,从宏观上看作业均开始运行但未运行结束,从微观上看多个作业轮流占有CPU交替执行,采用多道程序设计技术能改善CPU的利用率,提高主存和设备的使用效率和充分发挥系统的并行性。早期,操作系统沿着三条主线发展:多道批处理系统、分时交互系统和实时处理系统。多道批处理系统着眼于让CPU和外部设备同时保持忙碌,提高作业的吞吐率和系统的效率。其关键机制是:在响应一个作业的处理结束信号时,CPU将在主存中驻留的不同作业间切换;分时交互系统的设计目标是为用户提供方便的程序开发、调试环境和快速响应交互式用户的命令请求,但又要支持多用户同时工作,以降低系统的成本。其关键机制是:采用时间片轮转法,让CPU在多个交互式用户间多路复用;实时处理系统与分时系统相比常局限于一个或几个应用,例如,数据库的查询和修改应用或生产过程控制实时应用,但同样有响应时间的要求,甚至某些实时应用有更加严格的时间限制。其关键机制是:事件或队列驱动机制,当系统接受来自外部的事件后,快速分析这些事件,驱动实时任务在规定的响应时间完成相应处理和控制。上述各类操作系统都要妥善解决各种资源的管理和调度问题,使得操作系统功能变得愈加丰富和完整。 本章将讲述:计算机系统概览、计算机硬件系统、计算机软件系统、计算机操作技术的发展、计算机操作系统、资源管理的角度、程序控制的角度、操作系统控制计算机的角度、人机交互的角度、程序接口的角度、系统结构的角度。
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
深入理解操作系统的实现原理,提升技术水平。
系统地学习计算机操作系统基本原理,为专业方向奠定基础。
培养系统思维,提升综合解决实际操作系统问题的技能。
采用案例讲解的方式,提升理论与实践相结合的学习效果。
适合计算机科学、软件工程、信息技术等相关专业学生学习。
课程内容丰富,覆盖操作系统基本概念、处理器管理、存储管理等重要模块。

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

计算机操作系统核心概念与实现

据学生反馈,本课程在教授计算机操作系统核心概念与原理方面内容全面且深度足够。很多学习者称赞老师讲解清晰,能够帮助他们打下坚实的基础。课程强调工程视角,关注实现方法和构造特点,这对于希望深入了解操作系统内部机制的学生非常有益。尽管课程体系完整,但部分学生提到某些章节难度较大,需要投入更多时间和精力。此外,少数评论指出课程中的个别示例或参考资料可能稍显陈旧,建议结合最新技术发展进行补充学习。总的来说,这是一门评价很高的操作系统入门及深入课程。
注重从实现角度理解OS构造。
"课程不光讲概念,更注重操作系统如何实现,这对理解OS工作原理非常有益。"
"喜欢课程从工程师视角出发,讲解策略和算法的权衡。"
"通过课程的学习,我对操作系统作为大型软件系统的构造有了直观感受。"
"课程对实现细节的讲解让我对操作系统不再感到神秘,更加贴近实际。"
作业有助于巩固和应用所学知识。
"课程的作业设计得很好,能够帮助我把理论知识应用到实践中。"
"做作业的过程让我对操作系统原理有了更深的理解。"
"通过完成作业,感觉掌握了课程的关键概念和实现思路。"
"实践环节的设计很赞,通过动手加深了对理论的认识。"
老师能将复杂概念讲得易于理解。
"老师的讲课非常清晰,逻辑性强,把抽象的操作系统原理讲活了。"
"感谢老师的耐心讲解,很多难点听一遍就能理解。"
"授课老师的水平很高,对概念的阐释非常到位。"
"老师的教学方法很好,能引导学生思考,而不是简单地灌输知识。"
为后续学习或工作奠定扎实基础。
"这门课帮我系统地建立了操作系统的知识框架,为以后学习和工作打下了坚实基础。"
"通过学习这门课,我对操作系统的底层原理有了更深刻的认识,感觉受益匪浅。"
"对我理解计算机系统的运行机制非常有帮助,是必不可少的基础课。"
"感觉学完这门课,再去阅读操作系统相关的源码或文献会容易很多。"
课程涵盖OS核心模块,讲解深入。
"课程讲解操作系统各个主要模块,内容非常系统和全面,对我帮助很大。"
"作为入门和进阶学习者,我觉得这门课的深度足够,把原理讲得很透。"
"从处理器管理到文件管理再到并发,每个部分都讲得很详细,体系完整。"
"课程内容覆盖了操作系统应有的所有核心知识点,是系统学习的优秀资源。"
个别示例或参考资料稍显陈旧。
"课程整体很好,但有些提到的技术或例子感觉是比较早期的。"
"如果能加入一些现代操作系统的最新特性或案例就更好了。"
"偶尔感觉某些地方的讲解和现在的主流实现略有差异,需要自己补充。"
"希望能更新一些章节的内容,比如关于SSD的存储管理等新发展。"
某些章节概念复杂,需要深入学习。
"并发和死锁那几章理解起来确实有点吃力,需要反复看视频和查资料。"
"对我这个初学者来说,课程难度还是挺大的,尤其是内存管理部分。"
"课程深度很够,但这也意味着需要投入大量时间才能完全掌握。"
"感觉如果没有一定的计算机基础,学起来可能会比较吃力,需要额外努力。"

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in 计算机操作系统 with these activities:
Review Operating Systems: Design and Implementation
Review this text to refresh the system's structure and to strengthen foundational knowledge of operating systems.
Show steps
  • Read the introductory chapter.
  • Read the chapters related to the course.
  • Take notes on the key concepts.
  • Complete the practice exercises at the end of each chapter.
Organize Your Course Materials
Take your notes, assignments, quizzes, and exams, and bring them together to ensure you can easily navigate and learn from them.
Browse courses on Organization
Show steps
  • Gather all of your course materials.
  • Create a system for organizing your materials.
  • File your materials in your chosen system.
  • Review your materials regularly.
Participate in a Study Group
Form a study group with your classmates to discuss course material, work on projects, and prepare for exams.
Browse courses on Operating Systems
Show steps
  • Find a group of classmates who are interested in forming a study group.
  • Decide on a meeting time and place.
  • Create a study schedule and stick to it.
  • Take turns leading the discussions.
  • Help each other with homework assignments.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Explore Memory Management in C
Memory management is a critical aspect of operating systems. Explore memory management in the C programming language to enhance your understanding.
Browse courses on Memory Management
Show steps
  • Find a tutorial on memory management in C.
  • Follow the tutorial and complete the exercises.
  • Write a program that demonstrates your understanding of memory management.
  • Share your program with others and discuss your findings.
Practice Implementing Threading
Practice implementing threading concepts in your preferred programming language to reinforce your understanding of processor management.
Browse courses on Threading
Show steps
  • Choose a programming language that supports threading.
  • Create a simple program that creates multiple threads.
  • Experiment with different thread priorities and scheduling algorithms.
  • Debug and fix any concurrency issues that arise.
  • Write a report summarizing your findings.
Attend an Operating Systems Workshop
Attend a workshop to enhance your knowledge of operating systems, learn new skills, and network with others in the field.
Browse courses on Operating Systems
Show steps
  • Find an operating systems workshop that fits your interests and skill level.
  • Register for the workshop and pay the registration fee.
  • Attend the workshop and participate in the activities.
  • Network with other participants and learn from their experiences.
  • Apply what you learned in the workshop to your own projects.
Design a Memory Management System
Create a design for a memory management system to demonstrate your understanding of the concepts and algorithms involved.
Browse courses on Memory Management
Show steps
  • Research different memory management techniques.
  • Design a system that meets the requirements of the course.
  • Create a prototype of your system.
  • Test your system and make improvements.
  • Document your design and findings.

Career center

Learners who complete 计算机操作系统 will develop knowledge and skills that may be useful to these careers:
Software Engineer
A Software Engineer applies engineering principles to the design, development, and maintenance of software systems. They may also be responsible for testing and debugging systems. This course may be useful for a Software Engineer because it provides a foundation in computer operating systems, which are essential for understanding how systems work.
Systems Administrator
A Systems Administrator manages and maintains computer systems. They may also be responsible for system security and performance. This course may be useful for a Systems Administrator because it provides a foundation in computer operating systems, which are essential for understanding how systems work.
Software Developer
A Software Developer designs, develops, and maintains software applications. They may also be responsible for testing and debugging applications. This course may be useful for a Software Developer because it provides a foundation in computer operating systems, which are essential for understanding how software interacts with the hardware.
Computer Systems Analyst
A Computer Systems Analyst analyzes, designs, and implements computer systems. They may also be responsible for training users and maintaining systems. This course may be useful for a Computer Systems Analyst because it provides a foundation in computer operating systems, which are essential for understanding how systems work.
Information Security Analyst
An Information Security Analyst protects computer systems and networks from unauthorized access, use, disclosure, disruption, modification, or destruction. This course may be useful for an Information Security Analyst because it provides a foundation in computer operating systems, which are essential for understanding how to secure systems and networks.
Computer Programmer
A Computer Programmer writes and maintains computer programs. They may also be responsible for testing and debugging programs. This course may be useful for a Computer Programmer because it provides a foundation in computer operating systems, which are essential for understanding how programs interact with the hardware.
Database Administrator
A Database Administrator designs, implements, and maintains databases. They may also be responsible for data security and performance. This course may be useful for a Database Administrator because it provides a foundation in computer operating systems, which are essential for understanding how databases work.
Webmaster
A Webmaster manages and maintains websites. They may also be responsible for website security and performance. This course may be useful for a Webmaster because it provides a foundation in computer operating systems, which are essential for understanding how websites work.
Network Administrator
A Network Administrator manages and maintains computer networks. They may also be responsible for network security and performance. This course may be useful for a Network Administrator because it provides a foundation in computer operating systems, which are essential for understanding how networks operate.
Computer Hardware Engineer
A Computer Hardware Engineer designs, develops, and tests computer hardware components, such as processors, memory, and storage devices. This course may be useful for a Computer Hardware Engineer because it provides a foundation in computer operating systems, which are essential for understanding how hardware and software interact.
Web Developer
A Web Developer designs, develops, and maintains websites. They may also be responsible for website security and performance. This course may be useful for a Web Developer because it provides a foundation in computer operating systems, which are essential for understanding how websites work.
Computer Network Architect
A Computer Network Architect designs, builds, and maintains computer networks. They may also be responsible for network security and performance. This course may be useful for a Computer Network Architect because it provides a foundation in computer operating systems, which are essential for understanding how networks operate.
Data Analyst
A Data Analyst collects, analyzes, and interprets data to help businesses make informed decisions. This course may be useful for a Data Analyst because it provides a foundation in computer operating systems, which are essential for understanding how data is stored and managed.
Technical Writer
A Technical Writer creates and maintains technical documentation, such as user manuals, white papers, and training materials. This course may be useful for a Technical Writer because it provides a foundation in computer operating systems, which are essential for understanding how to write clear and accurate technical documentation.
Academic Researcher
An Academic Researcher designs and conducts research in a specialized field of study. They may develop new theories, analyze data, write research papers, and present their findings at conferences. This course may be useful for an Academic Researcher because it provides a foundation in computer operating systems, which are essential for managing and organizing data and running experiments.

Reading list

We've selected six books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in 计算机操作系统.
这本书提供了计算机体系结构的深入介绍,涵盖处理器设计、存储器层次结构和输入/输出设备。它对于理解计算机系统如何工作非常有用,并且可以作为本课程的补充读物。
这本书介绍了各种排序和搜索算法,并提供了它们的分析和比较。它对于理解算法设计和分析非常有用,并且可以作为本课程的补充读物。
这本书提供了计算机网络的全面概述,涵盖网络协议、路由和网络安全。它对于理解计算机网络如何工作非常有用,并且可以作为本课程的补充读物。
这本书提供了操作系统的深入介绍,涵盖进程管理、存储管理、设备管理和文件系统。它对于理解操作系统如何工作非常有用,并且可以作为本课程的补充读物。
这本书介绍了各种基本算法,并提供了它们的分析和比较。它对于理解算法设计和分析非常有用,并且可以作为本课程的补充读物。

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser