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

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

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

Read more

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

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

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

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

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

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

Enroll now

What's inside

Syllabus

第一章 计算机操作系统概述
操作系统是计算机系统中最重要的系统软件。操作系统是一个大型复杂的并发系统,并发性、共享性和随机性是它的重要特征,并发机制支持多道程序设计,共享机制控制诸进程正确使用硬软件资源。其中,并发性和共享性又是两个最基本的特征,并发和共享虽能改善资源利用率和提高系统效率,但却引发了一系列问题,随机性使操作系统的实现更加复杂化,因而,设计操作系统时引进许多概念和设施来妥善解决这些问题。 多道程序设计技术是将多个作业放入主存并使它们同时处于执行状态,从宏观上看作业均开始运行但未运行结束,从微观上看多个作业轮流占有CPU交替执行,采用多道程序设计技术能改善CPU的利用率,提高主存和设备的使用效率和充分发挥系统的并行性。早期,操作系统沿着三条主线发展:多道批处理系统、分时交互系统和实时处理系统。多道批处理系统着眼于让CPU和外部设备同时保持忙碌,提高作业的吞吐率和系统的效率。其关键机制是:在响应一个作业的处理结束信号时,CPU将在主存中驻留的不同作业间切换;分时交互系统的设计目标是为用户提供方便的程序开发、调试环境和快速响应交互式用户的命令请求,但又要支持多用户同时工作,以降低系统的成本。其关键机制是:采用时间片轮转法,让CPU在多个交互式用户间多路复用;实时处理系统与分时系统相比常局限于一个或几个应用,例如,数据库的查询和修改应用或生产过程控制实时应用,但同样有响应时间的要求,甚至某些实时应用有更加严格的时间限制。其关键机制是:事件或队列驱动机制,当系统接受来自外部的事件后,快速分析这些事件,驱动实时任务在规定的响应时间完成相应处理和控制。上述各类操作系统都要妥善解决各种资源的管理和调度问题,使得操作系统功能变得愈加丰富和完整。 本章将讲述:计算机系统概览、计算机硬件系统、计算机软件系统、计算机操作技术的发展、计算机操作系统、资源管理的角度、程序控制的角度、操作系统控制计算机的角度、人机交互的角度、程序接口的角度、系统结构的角度。
Read more
第二章 处理器管理
处理器管理是操作系统的重要组成部分,负责管理、调度和分派计算机系统的重要资源处理器,并控制程序执行,由于它是操作系统中最核心的部分,无论是应用程序,还是系统程序,最终都要在处理器上执行,以实现其功能,因此,它的优劣直接影响系统的性能。程序以进程形式来占用处理器和系统资源,处理器管理中最重要的是处理器调度,即进程调度,也就是控制、协调进程对处理器的竞争。 进程可被调度在一个处理器上交替执行,或在多个处理器上并行执行,不同类型的操作系统可能采用不同调度策略,交替和并行执行都是并发的类型。为了提高并发粒度和降低并发开销,现代操作系统又引进线程概念,此时进程仍然作为资源分配和管理单位,线程则成为处理器调度的基本单位。本章在简要介绍处理器的硬件运行环境后,首先着重介绍计算机系统的中断机制,然后详细论述进程和线程的基本概念及其实现,最后全面讨论各个层次的处理器调度方法。 本章将讲述:处理器与寄存器、指令与处理器模式、中断、中断源、中断系统、多中断的响应与处理、进程及其状态、进程的数据描述、进程的管理、进程切换与模式切换、多线程技术概述、KLT与ULT、多线程实现的混合策略、处理器调度的层次、处理器调度算法。
第三章 存储管理
存储管理是操作系统的重要组成部分,负责管理计算机系统的重要资源-主存储器,由于任何程序及数据必须占用主存空间才能执行和处理,因此,它的优劣直接影响系统性能。主存对数据的存取比处理器处理数据的速度慢得多,硬件技术的发展还进一步拉大这种距离,通过高速缓存可部分缩小差距,但高效的主存管理仍然是操作系统设计中的重要课题。 主存空间一般分为两部分:一部分是系统区,存放操作系统内核程序和数据结构等;另一部分是用户区,存放应用程序和数据,存储管理对核心区和用户区都应提供支持和进行管理,当然也包括对辅存(磁盘)空间的管理。尽管现代计算机主存容量不断增大,但仍然不能保证有足够大空间支持大型应用和系统程序及数据的使用。因此,操作系统的任务之一是要尽可能方便用户使用和提高主存利用率,此外,有效的存储管理也是多道程序设计系统的关键支撑。具体地说,存储管理包含以下功能: ·分配和去配:进程可请求对主存区的独占使用,主存区的请求与释放、即主存空间分配和去配操作由存储管理完成; ·抽象和映射:主存被抽象使得进程认为分配给它的地址空间是一个大而连续地址组成的数组,或者把主存抽象成二维地址空间,以支持模型化程序设计;同时建立抽象机制支持进程使用逻辑地址来映射到物理主存单元,实现地址转换; ·隔离和共享:系统负责隔离分配给进程的主存区,互不干扰、免遭破坏,确保进程对自己存储单元的独占使用,以实现存储保护功能;系统也允许多个进程共享主存区,在这种情况下,越过隔离机制并授权进程允许共享访问,达到既能提高主存利用率又能共享主存某区内信息的目的; ·存储扩充:实际主存容量不应该限制应用程序的大小,物理主存和辅存被抽象为虚拟主存,允许用户的虚拟地址空间大于主存物理地址空间,存储管理能自动地在不同存储层次中移动信息。 本章将讲述:存储管理的主要模式、存储管理的功能、虚拟存储器的概念、存储管理的硬件支撑、单连续分区存储管理、可变分区存储管理、页式存储管理的基本原理、页式存储管理的地址转换、页式虚拟存储管理、页面调度、反置页表、段式存储管理、段式虚拟存储管理、段页式存储管理。
第四章 设备管理
设备管理是操作系统中最庞杂和琐碎的部分,普遍使用I/O中断、缓冲区管理、通道、设备驱动调度等多种技术,这些措施较好地克服由于设备和CPU速度的不匹配所引起的问题,使主机和设备并行工作,提高设备使用效率。另一方面,操作系统将所有设备(如磁带机、打印机、显示器和终端等)都定义为文件,统一在文件系统之下,赋予文件属性,对设备的操作就类似于对文件的操作,其优点是:尽可能统一文件和设备的I/O处理;尽可能把设备文件和普通文件纳入同一保护机制下。为了方便用户或高层进程使用,设备管理还对各种设备进行抽象,配置驱动程序,提供统一界面,屏蔽设备的物理细节和操作过程。为此,设备管理应具有以下功能:1)设备中断处理;2)缓冲区管理;3)设备分配和去配;4)设备驱动调度;5)虚拟设备及其实现。 本章将讲述:设备管理概述、I/O控制方式、总线与I/O、I/O软件的实现层次、I/O软件的实现、I/O缓冲区、设备独立性、独占型外设的分配、磁盘的物理结构、磁盘的驱动调度、SPOOLing系统、批处理系统的作业管理。
第五章 文件管理
文件系统是操作系统中负责存取和管理信息的模块,它用统一方法管理用户和系统信息的存储、检索、更新、共享和保护,并为用户提供一整套方便有效的文件使用和操作方法。文件这一术语不但反映用户概念中的逻辑结构,而且和存放它的辅存的存储结构紧密相关,所以,一个文件必须从逻辑文件和物理文件两个侧面来观察。对于用户来说,可按需要并遵循文件系统的规则定义文件信息的逻辑结构,由文件系统提供“按名存取”来实现对文件信息的存储和检索;对于系统来说,必须采用特定数据结构和有效算法,实现文件的逻辑结构到存储结构的映射,实现对文件存储空间和文件信息的管理,提供多种存取方法。例如,用户希望与具体的存储硬件无关,使用路径名、文件名、文件内位移就可进行数据的读、写、改、删操作;而作为实现这些功能的文件系统来说,它的工作与存储硬件紧密相关,是根据用户的文件操作请求,转化为对磁盘上的信息按照所在的物理位置进行寻址、读写和控制。所以,文件系统的功能就是要在逻辑文件与物理文件、逻辑地址与物理地址、逻辑结构与物理结构之间实现转换,并做到存取速度快、存储空间利用率高、数据可共享、安全可靠性好。文件系统的主要功能有:文件的按名存取,实现从逻辑文件到物理文件的转换;文件目录的建立和维护;文件的查找和定位;文件存储空间的分配和管理;提供文件存取方法和文件存储结构;实现文件共享、保护和保密;提供一组方便易用的文件操作和命令;提供与设备管理的统一接口。 本章将讲述:文件的概念、文件系统及其功能、文件的存储、文件的逻辑结构、文件的物理结构、文件目录结构、文件目录的管理、文件共享、文件保护和保密、存取方法、文件的使用、辅存空间管理、文件操作的执行过程。
第六章 并发程序设计
在多道程序设计系统中,同一时刻可能有许多进程/线程,它们之间存在两种基本关系:竞争关系和协作关系。并发进程/线程可能需要竞争使用资源,互斥是解决进程/线程间竞争关系的手段,为了避免竞争条件,引入临界区概念以解决进程互斥问题;为完成同一任务,某些进程/线程需要分工协作,同步是解决进程/线程间协作关系的手段,进程同步的主要目的是使协作的并发进程之间能有效地共享资源和相互协同工作,从而,使进程的执行过程具有可再现性和执行结果的惟一性。进程低级通信机制主要有:原子操作、锁机制、信号量和PV操作及管程;进程高级通信机制,如消息传递等。 死锁是系统中一组并发进程/线程因等待其他进程占有的资源而永远不能向前推进的僵化状态,对操作系统十分有害。系统产生死锁有四个必要条件:互斥条件、占有并等待条件、不剥夺条件和循环等待条件,以及解决死锁问题的三种策略和方法:死锁的预防、死锁的避免、死锁的检测和解除。 本章将讲述:并发程序设计的概念、并发进程的制约关系、临界区、临界区管理实现的尝试、临界区管理实现的硬件方式、PV操作与进程互斥、PV操作与进程同步、生产者消费者问题探究、管程概述、霍尔管程、霍尔管程的例、进程通信、高级进程通信机制、死锁的产生、死锁的防止、死锁的避免、死锁的检测。

Good to know

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

Save this course

Save 计算机操作系统 to your list so you can find it easily later:
Save

Reviews summary

Operating systems: concepts and practice

This course delves into the fundamental concepts and practical applications of operating systems. It covers topics such as processor and storage management, device management, file systems, and concurrent programming. While some students found the course informative, others noted concerns about outdated content and a lack of engagement.
Gain valuable knowledge in operating systems concepts.
"学习了很多实用的知识"
Course material may not be up-to-date.
"Out of date."
Lectures can feel monotonous and unengaging.
"感觉枯燥、老师基本上念PPT"

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

Here are nine courses similar to 计算机操作系统.
系统平台与计算环境
Most relevant
操作系统原理(Operating Systems)
Most relevant
系统平台与C#程序基础
Most relevant
操作系统与虚拟化安全
Most relevant
计算机系统基础(一) :程序的表示、转换与链接
Most relevant
计算机组成 Computer Organization
Most relevant
Windows可视化程序设计
Most relevant
Advanced Chemical Engineering Thermodynamics | 高等化工热力学
Most relevant
基于Unity引擎的游戏开发基础
Most relevant
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 - 2024 OpenCourser