We may earn an affiliate commission when you visit our partners.
Course image
Coursera logo

操作系统原理(Operating Systems)

Professor Chen Xiangqun

《操作系统原理》是针对计算机科学技术专业三年级本科生开设的一门专业基础课程。本课程着重学生系统观的培养,通过重点讲述操作系统的内部结构、工作原理及典型技术的实现,使学生建立起对操作系统的整体及各个功能模块的认识,从而系统掌握计算机的专业知识,进一步提升学生的软件开发能力乃至系统软件开发能力。

Read more

《操作系统原理》是针对计算机科学技术专业三年级本科生开设的一门专业基础课程。本课程着重学生系统观的培养,通过重点讲述操作系统的内部结构、工作原理及典型技术的实现,使学生建立起对操作系统的整体及各个功能模块的认识,从而系统掌握计算机的专业知识,进一步提升学生的软件开发能力乃至系统软件开发能力。

任何计算机都必须在加载相应的操作系统之后,才能构成一个可以运转的、完整的计算机系统。操作系统的功能是否强大,决定了计算机系统的综合能力;操作系统的性能高低,决定了整个计算机系统的性能;操作系统本身的安全可靠程度,决定了整个计算机系统的安全性和可靠性。操作系统是软件技术的核心和基础运行平台。因此,计算机科学技术专业的学生需要学习和掌握操作系统的基本原理和专业知识。

本课程的教学目标是:

1.掌握操作系统的基本概念、功能组成、系统结构及运行环境;

2.熟悉并运用操作系统工作原理、设计方法和实现技术,理解有代表性、典型的操作系统实例(如UNIX、Linux和Windows);

3.了解操作系统的演化过程、发展研究动向、新技术以及新思想,为后续相关课程的学习打下良好基础,为后续职业发展奠定基石。

Enroll now

What's inside

Syllabus

操作系统概述
主要内容:举例介绍操作系统所做的工作;操作系统的定义与特征;操作系统分类;操作系统发展中的典型技术;典型操作系统的结构。
操作系统运行环境
主要内容:特权指令/非特权指令、CPU状态;中断系统的作用;中断硬件工作原理;中断处理程序流程;中断处理程序举例;中断系统举例;系统调用基本概念;系统调用实现机制;系统调用实现实例。
Read more
进程线程模型
主要内容:进程基本概念;进程状态及状态转换;进程控制块的作用和内容;进程控制操作;进程地址空间与进程映像;为什么引入线程?线程的应用场景;Web服务器的实现;线程概念、线程与进程的区别;线程实现的三种方式;Pthreads线程库及应用;几个重要的概念:原语、可再入程序。
处理器调度
主要内容:调度层次与调度类型;调度时机与进程切换;调度算法设计原则;调度算法设计时考虑的各种因素;基本调度算法;多级队列反馈调度算法;调度算法应用;Linux调度算法的演化; Windows调度算法简介。
同步机制(1)
主要内容:进程/线程的并发执行;竞争条件的引入;进程互斥与进程同步的概念;进程互斥的软件解法;Peterson算法;进程互斥的硬件解法;睡眠与唤醒机制;信号量及PV操作;用信号量解决互斥问题举例;用信号量解决生产者消费者问题;用信号量解决读者写者问题。
同步机制(2)
主要内容:信号量的问题及管程的引入;管程的基本概念;Hoare管程;管程应用举例;Mesa管程;JAVA管程解决生产者消费者问题。
存储模型(1)
主要内容:基本概念介绍;物理内存管理方案之可变分区管理方案;物理内存管理方案之页式管理方案。
存储模型(2)
主要内容:虚拟存储管理基本思想;页表设计;地址转换过程;TLB引入;缺页异常处理;页面置换算法及应用;工作集模型;清除策略与页缓冲技术。
文件系统(1)
主要内容:文件系统的功能;文件分类;文件的逻辑结构和物理结构;文件控制块的内容和作用;文件目录与目录文件;文件系统的布局;文件的基本操作;文件系统的内存结构;磁盘空间管理;UNIX文件系统。
文件系统(2)
主要内容:FAT16/32文件系统;文件共享与保护机制;文件系统一致性;文件系统性能。
I/O系统
主要内容:设备管理的目标和任务;I/O设备分类;I/O设备组成;I/O端口地址;I/O控制方式;I/O软件层次;设备分配算法;设备驱动程序;缓冲技术;I/O性能问题。
死锁
主要内容:死锁的基本概念;产生死锁的原因;死锁举例;用资源分配图讨论死锁问题;死锁预防方法;死锁避免方法;银行家算法;银行家算法的应用;死锁检测方法;死锁解除方法;哲学家就餐问题。
期末

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
该课程介绍了操作系统设计的核心概念、功能组件、系统结构和运行环境,涵盖了操作系统运行环境、进程线程模型、处理器调度、同步机制、存储模型、文件系统、I/O系统、死锁等多个主题,旨在帮助学生建立对操作系统的整体及各个功能模块的认识,从而系统掌握计算机的专业知识,进一步提升学生的软件开发能力乃至系统软件开发能力。
该课程由中国科学技术大学计算机科学与技术学院教授陈湘群等专家教授,陈教授是操作系统领域知名学者,拥有丰富的教学和研究经验,其著作《操作系统原理与实践》是国内外操作系统教材的经典之作。
该课程通过重点讲述操作系统的内部结构、工作原理及典型技术的实现,为学生提供了深入理解操作系统原理的机会,有助于培养学生的系统观念和实践能力。
该课程注重与实际应用的结合,通过实例讲解和案例分析,帮助学生理解操作系统原理在实际系统中的应用,培养学生的动手能力。
该课程为后续相关课程的学习打下良好基础,为学生后续职业发展奠定基石。
该课程适合计算机科学与技术专业三年级本科生学习,具有较强的操作系统基础知识。

Save this course

Save 操作系统原理(Operating Systems) to your list so you can find it easily later:
Save

Reviews summary

Operating systems course

This course provides a comprehensive overview of operating systems, including their structure, functions, and implementation. Students will learn about different types of operating systems, including UNIX, Linux, and Windows, and will gain an understanding of the design principles and algorithms used in their development.
Delivers detailed explanations
"讲解很详尽"
Homework lacks explanations
"课后习题也没有详细解释"
Some complex concepts
"部分内容可能不是很易懂"

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 操作系统原理(Operating Systems) with these activities:
回顾前置计算机科学课程
复习前置计算机科学课程将帮助你理解操作系统原理中涉及的基本概念和技术
Show steps
  • 复习数据结构,如队列、栈和链表
  • 复习算法和复杂度分析
  • 回顾计算机体系结构
Show all one activities

Career center

Learners who complete 操作系统原理(Operating Systems) will develop knowledge and skills that may be useful to these careers:
Computer Scientist
Computer Scientists research and develop new computing technologies and applications. This course may be useful to those interested in this career path, as it provides a foundation in understanding the fundamental principles and concepts of computer science, including operating systems, which are essential for conducting research and developing new computing solutions.
Security Engineer
Security Engineers design, implement, and maintain security systems and technologies to protect organizations from cyber threats. This course may be useful to those interested in this career path, as it covers topics such as computer security, cryptography, and network security, which are essential for understanding and implementing effective security measures.
Technical Architect
Technical Architects design and develop the technical architecture of software systems and applications. This course may be useful to those interested in this career path, as it provides a foundation in understanding the principles and practices of software architecture and design, which are essential for designing and implementing complex software systems.
Systems Analyst
Systems Analysts design, develop, and implement computer systems and applications to meet the needs of organizations. This course may be useful to those interested in this career path, as it provides a foundation in understanding the principles and practices of systems analysis and design, which are essential for designing and implementing effective systems solutions.
Software Architect
Software Architects design and develop the overall architecture of software systems. This course may be useful to those interested in this career path, as it provides a foundation in understanding the principles and practices of software design and architecture, which are essential for designing and implementing complex software systems.
Software Developer
Software Developers design, develop, and test software applications. This course may be useful to those interested in this career path, as it provides a foundation in understanding the principles and practices of software development, which are essential for designing and implementing reliable and efficient software.
Software Quality Assurance Engineer
Software Quality Assurance Engineers test and evaluate software to ensure its quality and reliability. This course may be useful to those interested in this career path, as it covers topics such as software testing, quality assurance, and software reliability, which are essential for ensuring the quality and reliability of software products.
Database Administrator
Database Administrators manage and maintain databases, ensuring their integrity and performance. This course may be useful to those interested in this career path, as it covers topics such as file systems, storage management, and data security, which are essential for understanding and managing databases effectively.
Web Developer
Web Developers design, develop, and maintain websites and web applications. This course may be useful to those interested in this career path, as it provides a foundation in understanding the principles and practices of web development, which are essential for designing and implementing effective and user-friendly websites and web applications.
Network Administrator
Network Administrators manage and maintain computer networks, ensuring their reliability and security. This course may be useful to those interested in this career path, as it covers topics such as network protocols, routing, and network security, which are essential for understanding and managing networks effectively.
Information Security Analyst
Information Security Analysts plan and implement security measures to protect computer systems and networks from unauthorized access and attacks. This course may be useful to those interested in this career path, as it covers topics such as computer security, access control, and network security, which are essential for understanding and implementing effective security measures.
System Administrator
System Administrators maintain and configure computer systems, ensuring their smooth operation and security. This course may be useful to those interested in this career path, as it covers topics such as process management, memory management, and file systems, which are essential for understanding and managing computer systems effectively.
Software Engineer
Software Engineers design, develop, test, and maintain software systems. This course may be useful to those interested in this career path, as it provides a foundation in understanding the structure and principles of operating systems, which are essential for developing efficient and reliable software.
Computer Programmer
Computer Programmers write, test, and maintain the code that makes software applications and systems work. This course may be useful to those interested in this career path, as it provides a foundation in understanding the underlying principles and operation of computer systems, which is essential for writing efficient and reliable code.
Data Scientist
Data Scientists analyze and interpret data to extract meaningful insights and develop predictive models. This course may be useful to those interested in this career path, as it provides a foundation in understanding the management and processing of data, which is essential for handling and analyzing large datasets effectively.

Reading list

We've selected 14 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 操作系统原理(Operating Systems).
这本经典教科书全面介绍了操作系统原理,包括进程、线程、存储管理、文件系统、IO系统、死锁等核心概念,是学习操作系统必备的参考书。
这本教材由操作系统先驱Andrew Tanenbaum编写,提供了现代操作系统设计的全面概述,涵盖了微内核、虚拟机、分布式系统等先进概念。
This textbook is another popular choice for operating systems courses. It is known for its clear and concise explanations of complex concepts. It covers a wide range of topics, including operating system principles, process management, memory management, file systems, and I/O devices.
本书深入浅出地介绍了计算机系统的各个方面,包括硬件、操作系统和网络。作为操作系统原理课程的补充读物,可以帮助学生更加全面地理解计算机系统。
本书深入探讨了计算机硬件和软件之间的接口,是学习操作系统原理的重要参考书。可以帮助学生理解操作系统如何与硬件交互,以及如何设计和实现高效的操作系统。
This online textbook provides a modern and hands-on approach to learning operating systems. It is written in a clear and engaging style and is suitable for both beginners and experienced readers. It covers a wide range of topics, including operating system principles, process management, memory management, file systems, and I/O devices.
这本专著深入探讨了计算机系统性能分析的方法和技术,对于理解操作系统的优化非常有帮助。
这本教材专门介绍操作系统安全,对于理解操作系统安全机制的设计和实现至关重要。
这本经典教科书提供了计算机网络的全面介绍,对于理解操作系统网络通信至关重要。

Share

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

Similar courses

Here are nine courses similar to 操作系统原理(Operating Systems).
系统平台与计算环境
Most relevant
计算机操作系统
Most relevant
操作系统与虚拟化安全
Most relevant
系统平台与C#程序基础
Most relevant
离散数学概论 Discrete Mathematics Generality
Most relevant
计算机辅助翻译原理与实践 Principles and Practice of Computer-Aided...
Most relevant
计算机系统基础(一) :程序的表示、转换与链接
Most relevant
JAVA程序设计进阶
Most relevant
LangChain开发实战
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