操作系统原理(慕课版)

操作系统,中国大学慕课平台人气课程,慕课版教材,配套资源丰富
分享 推荐 1 收藏 53 阅读 5.8K
苏曙光 (作者) 978-7-115-58615-5

关于本书的内容有任何问题,请联系 刘博

特色1:原理与实践(或实例研究)并重。目前大多数教材只是侧重于原理和算法,学生学起来枯燥无味,也无法真正利用这些原理去编程控制计算机或学习相关源代码去真实感受真实操作系统。这很容易挫伤初学者的兴趣,也影响技术人员的参考。因此为了便于读者学习,本书在对概念和理论进行介绍的同时会结合充分的实践和实例来介绍其应用,以帮助读者理解。
特色2:每章都有推荐的扩展阅读或编程应用,帮助读者深化理解原理或者增强编程应用能力。该部分内容涉及广泛,与本章的正文内容结合紧密,相关性强,在逻辑上有深化或扩充的作用。内容涉及操作系统的实例研究,设计,实现,应用编程等。
特色3:与本书配套的MOOC视频,在中国大学MOOC平台得到广泛好评,选课人数数万人。
特色4:教材配有视频,课件PPT,源代码等丰富的教辅资源。能有效帮助教师和学生提高教与学的效率和质量,降低教师使用教材的难度,提高备课效率。大量的课后习题能有效地促进学生巩固学习内容,促进思考,扩充视野。
特色5:本教材将充分利用新的信息技术手段,开发成慕课版教材,利用二维码等技术,在书中相应知识点处设置微课,形成线上线下互动的立体化教材。

内容摘要

操作系统是计算机系统中最重要和最基础的软件系统。本书主要介绍操作系统的四大核心内容:进程管理、存储管理、设备管理和文件管理。本书以Linux和Windows工作机制作为示例,以帮助读者更好地理解抽象的原理。本书概念清晰规范、内容系统完整、语言通俗易懂。
本书多数章节都提供了教学视频,可供读者参考。每章后面提供了一定数量的习题和开放性的思考题。
全书共9章,先后介绍操作系统的功能、定义、发展历史、逻辑结构、基本硬件环境、启动过程、用户界面、进程管理、进程调度、存储管理、设备管理、文件管理等内容。
本书适合作为计算机、软件工程、网络安全、电子信息等相关专业本科生和研究生操作系统原理或操作系统设计等课程的教材或参考书,也可供专业技术人员参考。

诚邀您加入【人邮社操作系统教师交流群】

目录

第1章 操作系统概述 1
1.1 操作系统直观认识和定义 1
1.1.1 操作系统的直观认识 1
1.1.2 操作系统的定义 3
1.2 操作系统的发展历史 4
1.2.1 手动操作阶段 5
1.2.2 单道批处理系统 5
1.2.3 多道批处理系统 7
1.2.4 分时操作系统 8
1.2.5 分时操作系统衍化 9
1.2.6 经典操作系统实例 11
1.3 操作系统的功能 14
1.3.1 处理机管理 14
1.3.2 存储管理 15
1.3.3 设备管理 16
1.3.4 文件管理 17
1.4 操作系统的特征 17
1.5 操作系统评价指标 18
1.6 操作系统虚拟机 19
1.7 操作系统的逻辑结构 19
1.7.1 整体式结构 19
1.7.2 层次式结构 20
1.7.3 微内核结构 21
1.8 本章习题 22
第2章 操作系统的硬件基础 24
2.1 计算机三总线硬件结构 24
2.2 CPU结构 24
2.3 CPU的态 26
2.4 内存 27
2.5 时钟 27
2.6 中断系统 28
2.7 基本输入输出系统 33
2.8 操作系统启动过程 36
2.8.1 操作系统启动概述 36
2.8.2 Linux启动过程 36
2.8.3 主引导记录 38
2.8.4 GRUB引导 39
2.8.5 Linux 0.11启动过程 40
2.9 计算机虚拟化和虚拟机 43
2.9.1 计算机虚拟化 43
2.9.2 虚拟机 45
2.10 操作系统的生成 46
2.11 本章习题 46
第3章 用户界面 47
3.1 用户环境 47
3.2 用户界面概念 47
3.3 操作界面 48
3.3.1 操作命令 48
3.3.2 重定向和管道命令 51
3.3.3 批处理程序命令 53
3.3.4 图形用户界面 55
3.3.5 Shell 56
3.3.6 Shell脚本程序 58
3.4 系统调用 62
3.4.1 系统调用概念 63
3.4.2 系统调用工作原理 63
3.4.3 Linux系统调用机制 67
3.4.4 Linux系统调用实现 68
3.5 本章习题 70
第4章 进程管理 71
4.1 进程的概念 71
4.1.1 程序的顺序执行 72
4.1.2 程序的并发执行 73
4.1.3 进程的定义和特点 77
4.2 进程的状态和转换 79
4.3 进程控制块 82
4.4 Linux进程控制块和进程状态 83
4.4.1 Linux进程控制块task_struct 83
4.4.2 Linux进程状态及转换 84
4.5 进程基本控制 86
4.5.1 进程创建 87
4.5.2 进程阻塞 87
4.5.3 进程唤醒 88
4.5.4 进程撤销 89
4.5.5 原语 89
4.6 Windows进程控制 90
4.7 Linux进程控制 91
4.7.1 Linux进程分类 91
4.7.2 Linux进程创建 91
4.7.3 fork()函数实现过程 92
4.7.4 clone()函数创建进程 99
4.7.5 execve()函数创建进程 100
4.7.6 Linux进程撤销 102
4.7.7 Linux的wait()函数 104
4.7.8 Linux进程间的层次关系 104
4.7.9 Linux 0.11任务0与进程树建立 107
4.8 线程 109
4.8.1 线程概念 109
4.8.2 Windows线程 110
4.8.3 Linux线程概念 111
4.8.4 Linux线程实现 112
4.9 进程相互制约关系 113
4.9.1 互斥关系 113
4.9.2 同步关系 114
4.9.3 同步机制 115
4.10 锁 116
4.10.1 临界资源和临界区 116
4.10.2 锁的概念 119
4.11 信号量与P-V操作 121
4.11.1 信号量概念 121
4.11.2 P-V操作的定义 121
4.11.3 利用P-V操作实现进程互斥 122
4.11.4 利用P-V操作实现进程同步 124
4.11.5 利用P-V操作解决前趋图描述的进程同步 126
4.11.6 利用P-V操作解决同步互斥混合问题 127
4.11.7 经典同步问题 128
4.12 Windows同步机制 131
4.13 Linux同步机制 133
4.13.1 Linux内核同步机制 133
4.13.2 进程间同步机制 135
4.13.3 线程间同步机制 136
4.14 进程间通信 140
4.14.1 通信的概念 140
4.14.2 Windows进程通信 141
4.14.3 Linux进程通信 144
4.15 Linux信号机制实现 148
4.16 本章习题 151
第5章 死锁 153
5.1 进程饥饿 153
5.2 死锁的概念 153
5.3 死锁的起因 154
5.3.1 资源分类 154
5.3.2 死锁的起因 155
5.3.3 死锁的必要条件 157
5.4 死锁的解决 157
5.4.1 解决死锁的4类方法 157
5.4.2 预先静态分配法 159
5.4.3 有序资源分配法 159
5.4.4 鸵鸟算法 160
5.5 本章习题 160
第6章 进程调度 161
6.1 调度概念 161
6.1.1 调度的定义 161
6.1.2 调度的分类 161
6.2 调度的原则 163
6.2.1 调度的宏观原则 163
6.2.2 调度的时间性能测度 163
6.3 进程调度过程 164
6.3.1 进程调度的功能 164
6.3.2 进程调度的时机 165
6.3.3 进程调度的方式 165
6.4 作业调度算法 166
6.4.1 先来先服务调度算法 166
6.4.2 短作业优先调度算法 166
6.4.3 响应比高者优先调度算法 167
6.5 进程调度算法 168
6.5.1 优先数高者优先调度算法 168
6.5.2 时间片轮转调度算法 169
6.5.3 多重时间片轮转调度算法 170
6.6 Linux进程调度 171
6.6.1 Linux调度机制 171
6.6.2 完全公平调度算法 174
6.7 Linux进程调度实现 175
6.7.1 Linux 0.12进程调度策略 175
6.7.2 Linux 0.12进程切换过程 176
6.7.3 Linux 0.12进程调度时机 178
6.7.4 Linux 0.12基于时钟中断的进程调度 179
6.7.5 Linux 0.12进程睡眠与唤醒 182
6.7.6 Linux内核抢占机制 185
6.8 本章习题 185
第7章 存储管理 187
7.1 存储管理概述 187
7.1.1 多级存储体系 187
7.1.2 存储管理的功能 188
7.2 地址映射 190
7.2.1 地址映射的概念 190
7.2.2 地址映射的方法 190
7.3 分区存储管理系统 194
7.3.1 分区存储的概念 194
7.3.2 单一分区管理 194
7.3.3 固定分区管理 195
7.3.4 动态分区管理 196
7.3.5 内存碎片 197
7.3.6 分区回收管理 198
7.3.7 分区分配与放置策略 199
7.4 覆盖和交换 200
7.4.1 覆盖技术 200
7.4.2 交换技术 201
7.5 页式存储管理系统 202
7.5.1 页式管理的概念 202
7.5.2 页面调入策略 203
7.5.3 页式虚拟地址 203
7.5.4 页面映射表 204
7.5.5 页式地址映射过程 205
7.5.6 空闲页框管理 206
7.5.7 快表 207
7.5.8 页面共享 208
7.5.9 缺页中断 209
7.5.10 多级页表 211
7.5.11 页面淘汰算法 212
7.6 段式存储管理系统 215
7.6.1 段式管理的概念 215
7.6.2 段式地址和段表 216
7.6.3 段式地址映射 217
7.7 段页式存储管理系统 217
7.7.1 段页式存储的概念 217
7.7.2 段页式地址和地址映射 218
7.8 IA-32 CPU内存管理机制 219
7.8.1 实模式与保护模式 219
7.8.2 段与段描述符 220
7.8.3 描述符表与段选择子 222
7.8.4 门与门描述符 225
7.8.5 任务状态段与段描述符 227
7.8.6 分页机制 229
7.8.7 3种地址与保护模式地址映射过程 231
7.8.8 保护模式下的中断机制 233
7.8.9 特权级保护机制 234
7.8.10 多任务支持 236
7.9 Linux内存管理 238
7.9.1 Linux内存管理概述 238
7.9.2 Linux 0.11内存管理设计 240
7.9.3 Linux 0.11页式内存基本操作 242
7.9.4 Linux 0.11缺页中断实现 245
7.9.5 Linux 0.11页面共享的实现 247
7.9.6 Linux 0.11为任务建立页表 249
7.9.7 Linux 0.11内存分配系统调用 251
7.9.8 Linux 0.11可执行文件 253
7.10 本章习题 256
第8章 设备管理 258
8.1 设备管理概念 258
8.1.1 设备分类 258
8.1.2 设备管理的目标 259
8.1.3 设备管理的功能 260
8.2 设备分配 262
8.2.1 独享分配 263
8.2.2 共享分配 263
8.2.3 虚拟分配 263
8.2.4 SPOOLing技术 264
8.3 缓冲技术 265
8.3.1 缓冲概念 265
8.3.2 典型缓冲机制 266
8.3.3 提前读与延后写 269
8.4 磁盘组织与管理 271
8.4.1 磁盘的结构 271
8.4.2 磁盘的物理地址 273
8.4.3 磁盘调度算法 274
8.4.4 磁盘的管理 275
8.5 Linux缓冲技术 275
8.5.1 Linux缓冲概述 275
8.5.2 典型块设备的块定义 276
8.5.3 缓冲区数据结构 276
8.5.4 缓冲块搜索 278
8.5.5 数据读取 281
8.6 I/O控制 283
8.6.1 设备的接口与端口 283
8.6.2 典型I/O控制方式 283
8.7 设备驱动机制 285
8.7.1 设备驱动概念 285
8.7.2 驱动程序基本接口 287
8.7.3 Linux设备驱动 288
8.7.4 Linux字符设备驱动示例 290
8.7.5 Linux杂项设备驱动示例 295
8.8 设备阻塞工作模式 297
8.9 Linux 块设备I/O调度 298
8.10 微内核系统的设备管理 300
8.11 本章习题 300
第9章 文件管理 302
9.1 文件系统的概念 302
9.1.1 文件概念 302
9.1.2 文件系统概念 304
9.2 文件逻辑结构与存取方式 304
9.2.1 文件逻辑结构 304
9.2.2 文件存取方式 305
9.3 文件物理结构 306
9.3.1 连续文件 306
9.3.2 串联文件 306
9.3.3 索引文件 308
9.4 磁盘存储空间管理 308
9.5 文件目录 309
9.5.1 文件目录功能 309
9.5.2 文件目录项 309
9.5.3 索引节点 310
9.5.4 目录结构 312
9.6 文件与目录的操作 313
9.6.1 文件操作 313
9.6.2 目录操作 314
9.7 文件共享与保护 314
9.7.1 文件静态共享 314
9.7.2 文件动态共享 315
9.7.3 文件保护 315
9.8 文件系统实例 316
9.8.1 Windows文件系统 316
9.8.2 Linux文件系统空间组织 319
9.8.3 Linux文件系统文件实现 322
9.8.4 Linux虚拟文件系统 326
9.9 文件读写性能 329
9.9.1 高速缓存技术 329
9.9.2 块提前读 330
9.9.3 减少磁盘臂运动 330
9.10 本章习题 330

读者评论

赶紧抢沙发哦!

我要评论

作者介绍

苏曙光,华中科技大学副教授。研究方向和兴趣:操作系统和嵌入式系统;图像和视频智能处理。 连续14年讲授《操作系统原理.64学时》和《微机原理与接口.48学时》,研究生《高级操作系统原理.32学时》等三门专业基础课程。作者重视教学改革,不断探索和更新教学理念,积极把工程应用、发展趋势融合到理论教学中,兼顾知识学习、技能培养和创新引导。 近5年在国内外重要学术刊物和会议上发表论文20多篇,其中教学论文4篇,均为第一作者。2012年主编教材《嵌入式系统原理与设计》一本,合编教材1本;教学相关的软件著作权2项。 近5年主持教研项目和科研项目,省部级和校级共7项。“操作系统原理MOOC课”,已经在中国大学MOOC平台上线运行4学期。获2018年湖北省教学成果奖三等奖、2018年湖北省自制教学设备三等奖、2017年华中科技大学教学质量一等奖、2015年华中科技大学教学竞赛二等奖、2018年华中科技大学本科课程设计优秀奖。

推荐用户

购买本书用户

相关图书

  • 数据库原理(微课版)

    郭玉彬 宋歌 边山

    本书依据教育部《普通高等学校本科专业类教学质量国家标准》,以新工科背景下加快培养计算机类工程人才为目标,构建了...

    ¥69.80
  • 数据结构(C语言版)(第3版)

    李冬梅 严蔚敏

    本书在选材与编排上,贴近当前普通高等院校“数据结构”课程的现状和发展趋势,符合最新研究生考试大纲,内容难度适度...

    ¥59.80
  • 大学计算机导论

    甘勇

    “计算机科学导论”作为计算机科学与技术专业的必修课,旨在引导刚刚进入大学的新生对计算机基础知识及研究方向有一个...

    ¥59.80
  • Linux操作系统与云计算(基于华为openEuler)(微课版)

    程和侠

    本书明确将云计算系统纳入操作系统范畴,将Linux操作系统作为中间通用型操作系统进行介绍,操作系统以及主流应用...

    ¥69.80
  • 数据库原理及应用教程(第5版) (微课版)

    陈志泊

    全书共7章,主要内容包括:数据库系统概述、关系模型及其操作、关系数据库标准语言 ——SQL、关系数据库理论、数...

    ¥69.80
人邮微信
本地服务
人邮微信
教师服务
二维码
读者服务
读者服务
返回顶部
返回顶部