新書推薦:

《
肌肉能量技术:物理治疗师实践指南(第2版)
》
售價:NT$
653

《
椭圆曲线故事集
》
售價:NT$
398

《
以她之见(阿尔芭·德·塞斯佩德斯是费兰特最爱的古巴女作家)
》
售價:NT$
403

《
中国丝绸艺术大系·美国大都会艺术博物馆卷(织绣)
》
售價:NT$
4998

《
食物药性学
》
售價:NT$
806

《
京剧男旦艺术发展史
》
售價:NT$
1010

《
京剧基础教程 : 京剧切末术语 : 汉英对照
》
售價:NT$
347

《
大模型Agent开发实践
》
售價:NT$
454
|
| 編輯推薦: |
1.覆盖核心知识体系 操作系统的特点是体系复杂、内容繁多。对于学习者来说,掌握课程知识体系是十分重要的。本书内容包括操作系统的基础概念(如进程、线程、调度、优化等),重点介绍处理器管理、存储器管理、设备管理、文件管理、系统安全等核心原理,满足覆盖操作系统核心知识体系的要求。 2.全面融入课程思政 结合操作系统中竞争与合作、公平与效率等哲学思想,在教材中有机融入爱国主义、科学精神、辩证思维、工程伦理等思政元素。 3.理论与实践相结合 基于Linux开源操作系统技术和资源,引导读者将理论学习与实践操作相结合,增强感性认识,加深对理论知识的理解和掌握。 4.引入国产操作系统案例 以开源的国产操作系统openEuler为例,介绍操作系统的体系结构、功能特点、操作方式等,并以Hadoop的安装配置作为实际应用案例,展示了国产操作系统的最新成果。 5.提供信息化学习平台 《计算机操作系统》不仅配有教学大纲、电子课件、习题答案、教案等教学资料,还录制了微课视频,教师和学生可以利用信息化平台并根据自己的实际需求选用相关课程资源。
|
| 內容簡介: |
《计算机操作系统》系统介绍了操作系统的概念、原理、方法及应用。《计算机操作系统》共12章,在操作系统概述之后,详细介绍了进程与线程、进程同步、处理器调度、死锁、内存管理、虚拟存储管理、设备管理、文件管理、系统安全和操作系统接口等,并以开源操作系统openEuler为例,介绍国产操作系统的原理以及应用案例。每章后附有习题,并且在部分章节给出了操作系统原理在Linux环境下的实践应用。 《计算机操作系统》可作为高等学校计算机类专业,如计算机科学与技术、软件工程、网络工程、网络空间安全、物联网工程等的本科生教材,也可供考研学生复习使用。
|
| 關於作者: |
李成严,男,教授,硕士生导师,主要从事操作系统、人工智能、大数据分析与挖掘等方面教学与科研工作。黑龙江省计算机学会学术工作委员会委员。 哈尔滨理工大学计算机学院学位委员会委员、本科教学质量评价与改进委员会委员。计算机科学与技术专业大数据方向课负责人。 从事本科教学工作30年,讲授操作系统、数据库、大数据基础、MapReduce设计模式等多门课程;主持省级教研项目2项,校级教研项目1项。主编教材《人工智能》;发表教研论文多篇。 主持或参与国家863重大计划项目1项,国家自然科学基项目1项,国家科技部攻关项目1项,省、部级项目多项;获省级科技进步三等奖1项。 发表论文60余篇,其中EI、SCI检索10余篇。
|
| 目錄:
|
前言 第1章 操作系统概述 1 1.1 什么是操作系统 1 1.1.1 操作系统的目标 1 1.1.2 操作系统的作用 2 1.1.3 操作系统的定义 3 1.1.4 操作系统实例 4 1.2 操作系统的发展历史 6 1.2.1 ENIAC与串行处理 6 1.2.2 单道批处理系统 7 1.2.3 多道批处理系统 9 1.2.4 分时系统 10 1.2.5 实时系统 11 1.2.6 通用操作系统 12 1.2.7 网络操作系统 12 1.2.8 分布式操作系统 13 1.3 操作系统的基本特性 13 1.3.1 并发性(Concurrency) 14 1.3.2 共享性(Sharing) 14 1.3.3 虚拟性(Virtual) 14 1.3.4 异步性(Asynchronism) 15 1.4 操作系统的主要功能 15 1.4.1 处理器管理功能 15 1.4.2 存储器管理功能 16 1.4.3 设备管理功能 17 1.4.4 文件管理功能 17 1.4.5 接口管理功能 18 1.5 操作系统的结构设计 18 1.5.1 传统操作系统结构 18 1.5.2 微内核操作系统结构 20 1.5.3 动态可扩展结构 21 1.6 习题 22 第2章 进程与线程 23 2.1 前驱图和程序执行 23 2.1.1 前驱图 23 2.1.2 程序顺序执行 23 2.1.3 程序并发执行 24 2.2 进程的描述 25 2.2.1 进程的定义和特征 25 2.2.2 进程的基本状态与转换 27 2.2.3 挂起操作和进程状态的转换 28 2.2.4 进程控制块 29 2.3 进程的控制 30 2.3.1 操作系统内核 30 2.3.2 进程的创建 30 2.3.3 进程的终止 32 2.3.4 进程的阻塞与唤醒 33 2.3.5 进程的挂起与激活 34 2.4 进程通信 34 2.4.1 进程通信的类型 35 2.4.2 共享存储器系统 35 2.4.3 消息传递系统 37 2.4.4 管道通信系统 40 2.4.5 客户机/服务器系统 41 2.5 线程 44 2.5.1 线程的引入 45 2.5.2 什么是线程 45 2.5.3 线程的特点 46 2.5.4 线程间的同步和通信 46 2.5.5 线程的状态和线程控制块 47 2.5.6 线程的实现 48 2.6 案例:Linux系统中的进程与线程 50 2.6.1 Linux系统中的进程结构 50 2.6.2 Linux系统中的进程管理和调度 50 2.6.3 Linux系统中的进程间通信机制 51 2.6.4 Linux系统中的线程 52 2.7 习题 52 第3章 进程同步 53 3.1 并发的原理 53 3.1.1 进程同步的概念 53 3.1.2 与时间有关的错误 54 3.1.3 临界区问题 56 3.1.4 软件同步机制 57 3.1.5 硬件同步机制 58 3.2 信号量机制 59 3.2.1 信号量的概念 59 3.2.2 信号量的应用 62 3.3 管程机制 64 3.3.1 管程的概念 64 3.3.2 条件变量 65 3.4 经典的进程同步问题 66 3.4.1 生产者-消费者问题 66 3.4.2 读者-写者问题 68 3.4.3 哲学家进餐问题 71 3.5 案例:Linux系统中的进程同步机制 73 3.5.1 Linux系统进程同步概述 73 3.5.2 Linux互斥锁 74 3.5.3 Linux信号量 76 3.5.4 Linux条件变量 77 3.5.5 Linux读写锁 78 3.5.6 Linux文件锁 79 3.6 习题 80 第4章 处理器调度 81 4.1 处理器调度概述 81 4.1.1 处理器调度的层次 81 4.1.2 作业与作业调度 82 4.1.3 进程调度 83 4.1.4 处理器调度算法的目标 84 4.2 处理器调度算法 86 4.2.1 先来先服务调度算法 86 4.2.2 最短作业优先调度算法 87 4.2.3 轮转调度算法 88 4.2.4 优先级调度算法 90 4.2.5 高响应比优先调度算法 91 4.2.6 多级反馈队列调度算法 92 4.2.7 基于公平原则的调度算法 94 4.3 实时调度 95 4.3.1 实现实时调度的基本条件 95 4.3.2 实时调度算法的分类 96 4.3.3 实时调度算法 97 4.4 多处理器调度 100 4.4.1 多处理器系统的类型 101 4.4.2 自调度 101 4.4.3 组调度 101 4.5 案例:Linux系统中的进程调度策略 101 4.5.1 Linux进程结构 101 4.5.2 Linux进程状态与运行模式 103 4.5.3 Linux进程控制 105 4.5.4 调度器与调度算法 107 4.5.5 进程调度策略的配置 109 4.6 习题 112 第5章 死锁 114 5.1 死锁的概念 114 5.2 产生死锁的条件和处理方法 115 5.2.1 必要条件 115 5.2.2 处理死锁的基本方法 116 5.3 死锁的预防 116 5.3.1 预先分配策略 117 5.3.2 有序分配策略 117 5.4 死锁的避免 118 5.4.1 系统安全状态 118 5.4.2 银行家算法 119 5.5 死锁的检测与解除 121 5.5.1 死锁的检测 121 5.5.2 死锁的解除 123 5.6 死锁的综合处理策略 124 5.7 案例:Linux系统中的死锁分析 124 5.7.1 使用pstack和gdb工具对死锁程序进行分析 124 5.7.2 在Linux系统上分析死锁 125 5.8 习题 130 第6章 内存管理 132 6.1 程序的链接与加载 132 6.1.1 程序的链接 132 6.1.2 程序的加载 133 6.1.3 重定位 134 6.2 连续分配存储管理 134 6.2.1 单一连续分区方式 134 6.2.2 固定分区方式 134 6.2.3 动态分区方式 136 6.2.4 伙伴系统 141 6.3 基本分页存储管理 142 6.3.1 分页基本思想 142 6.3.2 地址变换过程 143 6.3.3 引入快表的地址变换机构 144 6.3.4 多级页表 145 6.4 基本分段存储管理 146 6.4.1 分段基本思想 146 6.4.2 地址变换过程 147 6.4.3 分段与分页的比较 147 6.5 段页式存储管理 148 6.5.1 段页式基本思想 148 6.5.2 地址变换机构 149 6.6 案例:Linux内存API的应用 150 6.6.1 内存类型 150 6.6.2 malloc()调用 150 6.6.3 free()调用 150 6.7 习题 151 第7章 虚拟存储管理 152 7.1 虚拟存储管理概述 152 7.1.1 局部性原理 152 7.1.2 对换 153 7.1.3 虚拟存储的定义 154 7.2 请求分页存储管理 154 7.2.1 请求分页页表结构 154 7.2.2 请求分页地址变换 156 7.2.3 驻留集管理 157 7.2.4 调入与清除管理 160 7.3 页面置换算法 161 7.3.1 最佳置换算法 161 7.3.2 先进先出置换算法 162 7.3.3 最近最久未使用置换算法 162 7.3.4 时钟置换算法 163 7.3.5 最近最少使用置换算法 164 7.4 请求分段存储管理 164 7.4.1 请求分段段表结构 165 7.4.2 请求分段地址转换 165 7.4.3 分段的共享与保护 166 7.5 案例:Linux内存虚拟化及 页式地址变换 168 7.5.1 内存虚拟化 168 7.5.2 地址变换 169 7.5.3 页式地址变换 170 7.6 习题 170 第8章 设备管理 171 8.1 设备分类 171 8.2 接口 172 8.2.1 设备与设备控制器之间的接口 172 8.2.2 设备控制器 173 8.2.3 I/O通道 174 8.3 I/O控制方式 175 8.3.1 程序直接控制方式 175 8.3.2 中断控制方式 176 8.3.3 直接存取控制方式 176 8.3.4 通道控制方式 178 8.4 I/O软件设计 179 8.4.1 中断处理程序 179 8.4.2 设备驱动程序 180 8.4.3 设备独立性软件 181 8.4.4 用户层I/O 182 8.5 缓冲管理 182 8.5.1 缓冲的引入 182 8.5.2 单缓冲 183 8.5.3 双缓冲 184 8.5.4 循环缓冲 184 8.5.5 缓冲池 185 8.6 磁盘存储器管理 186 8.6.1 磁盘性能参数 187 8.6.2 磁盘调度算法 188 8.7 案例:Linux中断处理 191 8.8 习题 193 第9章 文件管理 194 9.1 文件和文件系统 194 9.1.1 文件系统功能 194 9.1.2 文件结构 195 9.1.3 文件名和文件类型 196 9.1.4 文件系统结构 197 9.2 文件逻辑组织 198 9.2.1 文件分类 198 9.2.2 堆文件 199 9.2.3 顺序文件 199 9.2.4 索引顺序文件 200 9.2.5 索引文件 201 9.2.6 直接文件和哈希文件 201 9.3 文件目录 201 9.3.1 文件控制块和索引节点 202 9.3.2 单级目录和两级目录 203 9.3.3 多级目录 205 9.3.4 目录查询技术 206 9.3.5 目录文件 207 9.4 文件共享与保护 208 9.4.1 访问权限 208 9.4.2 共享模式 209 9.4.3 文件保护 211 9.5 外存空间管理 212 9.5.1 文件分配 213 9.5.2 文件物理组织 213 9.5.3 空闲表和空闲链表 217 9.5.4 位示图 218 9.5.5 UNIX成组链接 219 9.6 分布式文件系统 220 9.6.1 分布式存储技术 220 9.6.2 GFS 221 9.6.3 HDFS文件结构 222 9.6.4 HDFS文件接口 226 9.7 案例:Linux文件操作 228 9.7.1 Linux文件概述 228 9.7.2 读写文件 229 9.7.3 获取文件信息 229 9.7.4 删除文件 230 9.7.5 硬链接 230 9.7.6 符号链接 231 9.8 习题 231 第10章 系统安全 232 10.1 系统保护与安全环境 232 10.1.1 系统安全目标及特性 232 10.1.2 主要安全威胁 233 10.1.3 操作系统安全问题 234 10.2 数据加密技术 236 10.2.1 数据加密方法 236 10.2.2 数字签名和数字证书 237 10.3 操作系统加固 239 10.3.1 操作系统安装与更新 239 10.3.2 删除不必要的服务、应用与协议 239 10.3.3 对用户和组进行配置 240 10.3.4 对资源控制进行配置 240 10.3.5 安装额外的安全控制工具 240 10.3.6 安全性维护 241 10.4 可信系统 241 10.4.1 可信计算 242 10.4.2 可信操作系统体系结构 243 10.4.3 可信操作系统关键技术 243 10.4.4 可信应用 244 10.5 案例:Linux系统权限 244 10.5.1 权限类别 244 10.5.2 权限管理 246 10.6 习题 247 第11章 操作系统接口 248 11.1 交互接口 248 11.1.1 联机命令接口 248 11.1.2 图形用户接口 249 11.2 系统调用 250 11.2.1 系统调用的概念 250 11.2.2 系统调用的类型 251 11.2.3 系统调用的实现 251 11.2.4 API与系统调用的实现 253 11.3 Shell命令语言 254 11.3.1 Shell简介 254 11.3.2 简单的Shell命令 255 11.3.3 重定向与管道命令 257 11.3.4 通信命令 258 11.3.5 后台命令 259 11.4 案例:Linux系统的用户接口 259 11.4.1 Linux的命令行用户接口 259 11.4.2 Linux的图形用户接口 260 11.4.3 Linux的系统调用 262 11.5 习题 263 第12章 案例—openEuler操作系统 264 12.1 openEuler系统概述 264 12.1.1 简介 264 12.1.2 安装流程 264 12.1.3 使用方式 265 12.2 安装配置 265 12.2.1 安装VirtualBox 265 12.2.2 安装openEuler 265 12.2.3 安装桌面 268 12.3 基本设置 269 12.3.1 电源管理 269 12.3.2 文件管理 270 12.3.3 目录管理 270 12.3.4 用户管理 273 12.3.5 权限管理 274 12.3.6 用户切换 275 12.3.7 软件包管理 276 12.4 Hadoop环境搭建 276 12.4.1 节点设置机器名 276 12.4.2 配置静态IP 277 12.4.3 配置免密钥登录 277 12.4.4 配置JDK 278 12.4.5 设置Hadoop参数 279 12.4.6 格式化HDFS 282 12.4.7 启动Hadoop 282 12.5 习题 283 参考文献 284
|
| 內容試閱:
|
操作系统作为计算机系统中最重要的系统软件,被称为“计算机之魂”。如果把计算机比作一个有机体,那么计算机硬件(如CPU、内存、硬盘、显示器、键盘和鼠标等)就是有机体中看得见、摸得着的部分,而操作系统则是指挥各部分硬件协调工作的内在“心智”。离开了操作系统,即使计算机各部分硬件都正常工作,也无法发挥其强大功能。因此,掌握操作系统的相关概念,理解计算机各部分是如何在操作系统管理下协调、高效工作的,对于计算机使用者和计算机专业领域的开发人员都是非常重要的。 “操作系统”是计算机类专业的专业核心课程,它不仅是学生深入理解计算机系统的底层运行机制的基础,更是培养学生计算思维、系统设计能力以及解决复杂工程问题能力的重要途径。随着现代计算机技术的不断发展,并行计算、分布式系统、移动计算等新技术不断引入,操作系统的结构和功能也在不断发展变化,已成为计算机系统中最复杂、最庞大的软件系统。此外,新一代信息技术的不断发展也对操作系统的安全性提出了更高的要求。所有这些都要求相关技术人员不断学习、分析、设计、实现和验证新的方法和技术。 《计算机操作系统》紧密围绕“操作系统”课程的教学目标,在知识体系构建、内容编排以及教学方法引导等方面进行了精心设计,兼具科学性、实用性与时代性。《计算机操作系统》内容包括经典操作系统的理论框架,如进程与线程、处理器调度与死锁、内存管理、设备管理、文件管理、系统安全性等;同时,以开源操作系统openEuler为例介绍国产操作系统的原理及应用,旨在培养学生掌握操作系统基础理论的同时具备一定的实践应用能力。 《计算机操作系统》特色: 1.覆盖核心知识体系 操作系统的特点是体系复杂、内容繁多。对于学习者来说,掌握课程知识体系是十分重要的。本书内容包括操作系统的基础概念(如进程、线程、调度、优化等),重点介绍处理器管理、存储器管理、设备管理、文件管理、系统安全等核心原理,满足覆盖操作系统核心知识体系的要求。 2.全面融入课程思政 结合操作系统中竞争与合作、公平与效率等哲学思想,在教材中有机融入爱国主义、科学精神、辩证思维、工程伦理等思政元素。 3.理论与实践相结合 基于Linux开源操作系统技术和资源,引导读者将理论学习与实践操作相结合,增强感性认识,加深对理论知识的理解和掌握。 4.引入国产操作系统案例 以开源的国产操作系统openEuler为例,介绍操作系统的体系结构、功能特点、操作方式等,并以Hadoop的安装配置作为实际应用案例,展示了国产操作系统的最新成果。 5.提供信息化学习平台 《计算机操作系统》不仅配有教学大纲、电子课件、习题答案、教案等教学资料,还录制了微课视频,教师和学生可以利用信息化平台并根据自己的实际需求选用相关课程资源。 《计算机操作系统》由李成严主编,詹晓娟副主编,尹芳和刘欢参编。《计算机操作系统》共12章,第1、2、11章由詹晓娟编写,第3、4、5章由刘欢编写,第6、7、8章由尹芳编写,第9、10、12章由李成严编写;哈尔滨理工大学计算机科学与技术学院的部分研究生参与了书中实践案例的整理工作。机械工业出版社的编辑郝建伟和解芳在编写过程中提出了许多宝贵意见,做了大量工作;另外,在撰写过程中参考了国内外相关优秀教材及文献。在此一并表示感谢。 由于编者水平有限,书中缺漏之处在所难免,请广大读者批评指正。
编 者
|
|