课程简介

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

课程大纲

国家精品在线开放课程认定评审专家请关注:

由于国外平台访问课程视频有困难,评审专家可在华文慕课平台查看视频等静态内容,在Coursera查看互动情况,链接:https://www.coursera.org/learn/os-pku


第1章 操作系统概述

主要内容:举例介绍操作系统所做的工作;操作系统的定义与特征;操作系统分类;操作系统发展中的典型技术;典型操作系统的结构。

第2章 操作系统运行环境

主要内容:特权指令/非特权指令、CPU状态;中断系统的作用;中断硬件工作原理;中断处理程序流程;中断处理程序举例;中断系统举例;系统调用基本概念;系统调用实现机制;系统调用实现实例。

第3章 进程线程模型

主要内容:进程基本概念;进程状态及状态转换;进程控制块的作用和内容;进程控制操作;进程地址空间与进程映像;为什么引入线程?线程的应用场景;Web服务器的实现;线程概念、线程与进程的区别;线程实现的三种方式;Pthreads线程库及应用;几个重要的概念:原语、可再入程序。

第4章 处理器调度

主要内容:调度层次与调度类型;调度时机与进程切换;调度算法设计原则;调度算法设计时考虑的各种因素;基本调度算法;多级队列反馈调度算法;调度算法应用;Linux调度算法的演化; Windows调度算法简介。

第5、6章 同步机制

主要内容:进程/线程的并发执行;竞争条件的引入;进程互斥与进程同步的概念;进程互斥的软件解法;Peterson算法;进程互斥的硬件解法;睡眠与唤醒机制;信号量及PV操作;用信号量解决互斥问题举例;用信号量解决生产者消费者问题;用信号量解决读者写者问题;信号量的问题及管程的引入;管程的基本概念;Hoare管程;管程应用举例;Mesa管程;JAVA管程解决生产者消费者问题。

第7、8章 存储模型

主要内容:基本概念介绍;物理内存管理方案之可变分区管理方案;物理内存管理方案之页式管理方案;虚拟存储管理基本思想;页表设计;地址转换过程;TLB引入;缺页异常处理;页面置换算法及应用;工作集模型;清除策略与页缓冲技术。

第9、10章 文件系统

主要内容:文件系统的功能;文件分类;文件的逻辑结构和物理结构;文件控制块的内容和作用;文件目录与目录文件;文件系统的布局;文件的基本操作;文件系统的内存结构;磁盘空间管理;FAT16/32文件系统;UNIX文件系统;文件共享与保护机制;文件系统一致性;文件系统性能。

第11章I/O系统

主要内容:设备管理的目标和任务;I/O设备分类;I/O设备组成;I/O端口地址;I/O控制方式;I/O软件层次;设备分配算法;设备驱动程序;缓冲技术;I/O性能问题。

第12章死锁

主要内容:死锁的基本概念;产生死锁的原因;死锁举例;用资源分配图讨论死锁问题;死锁预防方法;死锁避免方法;银行家算法;银行家算法的应用;死锁检测方法;死锁解除方法;哲学家就餐问题。

课程说明


课程目标

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

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

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

本课程共12章。


授课形式

1.本课程由一系列教学视频组成,每周的学习内容大约由6-10段视频组成,每段视频的长度约8-12分钟。

2.每周布置课后作业。

3.鼓励学习者在课程论坛上提出问题,并互相帮助,回答问题。教学团队会始终关注课程论坛的讨论,有选择性的回答疑难问题。


常见问题

1.这门课程需要编写代码吗?

    在学习进程线程同步机制时,需要读懂用C、JAVA等编写的程序。在用信号量及P、V操作解决进程线程同步问题时,需要用伪码编写简单程序。

2.这门课程需要了解计算机硬件系统吗?

    通常在课上会讲解涉及到的相关内容。如果熟悉计算机硬件系统,会有利于对本课程的理解。

参考资料

教材

《现代操作系统》(原书第3版),(荷)Andrews S. Tanenbaum著,陈向群、马洪兵 等译,机械工业出版社,2012年7月。

参考书目

《操作系统—精髓与设计原理》(原书第7版),(美)William Stallings著,陈向群、陈渝 译,电子工业出版社,2012年9月。

《操作系统概念》(原书第6版),(美)Abrahan Silberschatz、Peter Baer Galvin、Greg Gagne著,郑扣根 译,高等教育出版社,2010年1月。
《深入理解计算机系统》(原书第2版),(美)Randal E. Bryant、David R. O’Hallaron著,龚奕利、雷迎春 译,机械工业出版社,2011年1月。

拓展阅读

其他

主讲教师

陈向群   

暂无简介

课程助教

  • jingpinmooc

相关课程推荐

  • 正在进行
    程序设计实习
    《程序设计实习》课程是北京大学的本科生主干基础课程。本科生程序设计类基础课程体系包含了四门课,按修课顺序分别为:计算概论、程序设计实习、数据结构与算法、算法分析与设计。
  • 正在进行
    算法设计与分析
    本课程的内容分成两大部分:算法的基础知识、通用算法设计技术与分析方法。 第一部分是算法基础知识,约占20%,主要介绍算法相关的基本概念和数学基础。比如,什么是算法的伪码描述?什么是算法最坏情况下和平均情况下的时间复杂度?算法时间复杂度函数的主要性质,算法复杂度估计中常用的数学方法,如序列求和及递推方程求解。 第二部分是通用的算法设计技术与分析方法,主要介绍分治策略、动态规划、贪心法、回溯与分支限界。主要介绍这些设计技术的使用条件、分析方法、改进途径,并给出一些重要的应用。
  • 正在进行
    数据分析软件平台----ROOT
    ROOT(下载地址: https://root.cern.ch/ )是科学数据处理的平台。利用它,可将数据(普通数值或C++类)以压缩二进制的办法保存起来并且可以很方便的对其进行挑选、画1维、2维、3维直方图、散点图、拟合等分析工作。利用个人电脑可以登录到远程服务器进行多个文件大批量操作分析数据。ROOT还提供数学及统计工具、并行处理、神经网络及多变量分析软件包,实现多种分布的数据样本产生工具以便于对复杂问题的MC模拟开发,可方便地绘制高质量的图形并存储成pdf等不同格式。对于代码可以不需要编译即可进行解释运行以追求便利也可轻松实现编译运行以追求速度。 该软件现为国际上高能物理数据分析的必备工具,也可用于低能物理、工程、经济、军事等需要处理和分析科学数据及软件开发的领域。通过本培训的学习,学员可以在短时间将数据处理能力快速提高。ROOT系全免费开源软件且可运行在Windows和Linux下,国际上有大量科研人员及科研机构使用,学员掌握该软件后,有助于在参与国际合作和交流的科研活动过程中迅速适应国际科研环境。

恭喜,报名成功

进入学习中心

恭喜,报名成功

确定

请进入开课界面预览

确定

X

请去您的邮箱验证

还没收到验证邮件?

1. 试试去广告邮件、垃圾邮件目录看看

2. 再次发送验证邮件

对不起,班次容量已满

请报名下一班次

知道了~!

对不起,您没有操作权限

知道了~!