新書推薦:

《
戈特曼情感大师系列6册:爱的沟通+幸福的婚姻+幸福的家庭+幸福婚姻的10大敌人+爱的博弈+当婚姻中有了孩子
》
售價:HK$
659.3

《
吐司三明治自己做最好吃:102款花样吐司+85款爆款三明治+11款轻食沙拉+5款灵魂抹酱
》
售價:HK$
43.8

《
DK马术全书(全新升级版)
》
售價:HK$
262.9

《
货币之手
》
售價:HK$
142.9

《
被困住的人(余华、李翊云等名家推崇的短篇大师,历时20多年创作,73个受困于生活的故事,洞见人性的幽微之处和人生的真相)
》
售價:HK$
240.9

《
灯花笑共此灯(全二册)
》
售價:HK$
76.8

《
系统家庭治疗的刻意练习
》
售價:HK$
83.5

《
2049:未来10000天的可能
》
售價:HK$
75.9
|
編輯推薦: |
本书沿历史发展的脉络,介绍计算机系统中的里程碑式的创新,以及操作系统中重要概念的出现,将基本原理与技术创新及其背景紧密结合,帮助读者深入理解操作系统中概念的内涵。
本书从系统的角度,阐述操作系统与指令集架构、应用程序之间的关系;在操作系统内部,则依据操作系统内部架构,分别讲解。这对于培养学生的系统能力会有很大帮助。
本书从机制与策略两个层面阐述操作系统原理,以机制为主、策略为辅,并力图将系统的实现机制讲解到程序员能够理解的程度。让读者在理解系统运行机制的基础上,有信心动手去实现。
|
內容簡介: |
操作系统是计算机系统最核心的软件系统,操作系统课程是计算机类本科的专业基础课程。本书作为面向计算机类专业本科生的操作系统课程教材,目标是阐述操作系统的原理和运行机制。
來源:香港大書城megBookStore,http://www.megbook.com.hk 本书阐述了操作系统中的核心概念、原理和机制,以及解决各种问题的策略;介绍了和操作系统相关的硬件及软件的相关知识。本书具体内容包括计算机硬件基础、程序设计与运行、操作系统的形成和发展、CPU管理、内存管理、输入/输出管理、文件管理、互斥与同步、死锁。
本书从历史和系统两个维度阐述操作系统中的概念,既探索了核心概念的起源和发展,也联系计算机系统的其他课程,以加强读者对原理的深入理解。同时,以在源代码层面上理解操作系统为目标,结合读者的程序设计经验,讲解原理的实现机制,并落实到代码层面,使读者形成从原理到实现的一贯认知。
本书适合作为计算机专业类本科生教材或其他读者的参考书,对于有一定实际经验的程序员也有重要参考价值。
|
目錄:
|
第1章计算机硬件基础1
1.1图灵机1
1.1.1图灵机的架构1
1.1.2一进制加法图灵机实例2
1.1.3通用图灵机4
1.2早期的计算机系统5
1.2.1电子计算机的诞生5
1.2.2通用电子计算机6
1.2.3存储程序计算机7
1.2.4存储程序计算机EDSAC8
1.3指令集架构11
1.3.1指令集架构的概念11
1.3.2指令集架构发展现状13
1.3.3指令集架构与操作系统的关系16
1.3.4指令集架构在计算机系统设计中的地位17
1.3.5处理机运行模式17
1.4存储访问18
1.4.1寄存器19
1.4.2访问内存20
1.5访问外设23
1.5.1总线24
1.5.2I/O接口25
1.5.3端口26
1.5.4设备控制方式27
1.5.5主机对外设的控制29
小结30
练习30目录〖3〗第2章程序设计与运行31
2.1一个简单的程序31
2.1.1代码描述31
2.1.2代码解释33
2.1.3程序在内存中的布局34
2.2子程序36
2.2.1子程序的概念36
2.2.2调用约定36
2.2.3程序的运行栈37
2.2.4子程序库39
2.3可执行程序的生成39
2.3.1编程语言40
2.3.2程序的连接41
2.4程序的装入44
2.4.1可执行文件结构44
2.4.2装载45
2.4.3程序启动与结束46
2.5程序的运行47
2.5.1指令流之间的切换47
2.5.2操作系统提供的支持48
2.5.3运行时系统49
小结50
练习51
第3章操作系统的形成和发展52
3.1早期的人机交互52
3.2批处理54
3.2.1批处理系统54
3.2.2脱机输入/输出系统56
3.3多任务57
3.3.1并发与并行57
3.3.2多任务的实现59
3.3.3分时系统61
3.4操作系统的概念64
3.4.1操作系统概念的形成64
3.4.2操作系统发展的里程碑65
3.4.3操作系统的地位68
3.5操作系统内核69
3.5.1内核的概念69
3.5.2内核提供的服务(系统调用)70
3.5.3内核的功能73
3.5.4内核的结构76
3.6操作系统用户接口79
3.6.1系统程序80
3.6.2命令解释器80
3.6.3图形接口82
3.7操作系统研发82
3.7.1操作系统设计82
3.7.2操作系统的实现85
3.7.3我国操作系统发展之路86
小结89
练习89
第4章CPU管理91
4.1程序运行过程的描述91
4.1.1程序的顺序执行和并发执行91
4.1.2线程92
4.1.3进程94
4.2多线程进程95
4.2.1多线程进程的概念95
4.2.2内核级线程和用户级线程96
4.2.3多线程模式98
4.3进程的创建与撤销99
4.3.1进程的创建99
4.3.2进程创建实例100
4.3.3进程间的联系103
4.3.4进程的终止105
4.4CPU调度与切换106
4.4.1CPU调度106
4.4.2线程上下文109
4.4.3上下文切换110
4.4.4CPU调度与线程切换过程实例111
4.4.5线程切换实例112
4.5CPU调度算法114
4.5.1影响调度算法的因素114
4.5.2先来先服务116
4.5.3短作业优先116
4.5.4响应比高者优先117
4.5.5基于优先数的调度策略118
4.5.6轮转118
4.5.7多级队列119
4.5.8份额公平调度120
4.5.9实时任务调度120
4.6进程通信121
4.6.1共享内存121
4.6.2消息通信122
4.6.3管道通信123
4.6.4信号123
小结124
练习124
第5章内存管理126
5.1连续分配内存管理126
5.1.1连续分配126
5.1.2内存保护128
5.1.3交换128
5.2分段内存管理129
5.2.1分段的基本方法130
5.2.2段的共享131
5.2.3内存共享的程序实例133
5.3分页内存管理134
5.3.1基本方法134
5.3.2地址变换时间开销136
5.3.3分页模式下的内存保护与共享137
5.3.4段页式存储管理139
5.4页表的实现141
5.4.1多级页表141
5.4.2哈希页表143
5.4.3反置页表144
5.5虚拟存储器145
5.5.1按需调页146
5.5.2分配内存148
5.5.3颠簸150
5.5.4虚拟存储器的性能152
5.5.5内存映像文件154
5.6置换策略155
5.6.1最优置换155
5.6.2先进先出156
5.6.3最久未用157
5.6.4工作集159
小结160
练习161
第6章输入/输出管理162
6.1输入/输出概述162
6.1.1输入/输出设备162
6.1.2进程与设备的关系164
6.1.3输入/输出系统架构165
6.2外部存储器166
6.2.1机械硬盘166
6.2.2固态硬盘172
6.3时钟173
6.3.1可编程计时器174
6.3.2系统时钟174
6.3.3时钟中断处理175
6.3.4软定时器177
6.4驱动程序178
6.4.1驱动程序的概念178
6.4.2统一的驱动程序接口179
6.4.3Linux系统字符设备驱动程序接口180
6.5外部中断处理程序181
6.5.1外部中断处理182
6.5.2中断机制183
6.5.3中断处理程序与驱动程序的关系186
6.6输入/输出子系统中的设备独立软件188
6.6.1缓冲区188
6.6.2高速缓存190
6.6.3假脱机输入/输出191
6.6.4设备的分配与回收193
6.6.5错误处理193
6.7应用程序I/O接口194
6.7.1输入/输出接口概述194
6.7.2字符设备与块设备接口196
6.7.3网络设备接口197
6.7.4进程与设备之间的时序关系198
6.8I/O系统的操作流程和结构199
6.8.1I/O系统操作流程实例200
6.8.2流201
小结202
练习203
第7章文件管理204
7.1文件204
7.1.1文件的概念204
7.1.2文件元数据205
7.1.3文件的类型206
7.1.4文件的逻辑结构207
7.1.5文件的访问方式207
7.1.6文件系统接口208
7.2文件存储空间分配209
7.2.1连续结构210
7.2.2链接结构211
7.2.3索引结构213
7.3空闲存储空间管理215
7.3.1空闲块链216
7.3.2位图217
7.3.3空闲区表217
7.4目录218
7.4.1目录的概念218
7.4.2一个文件有多个名字219
7.4.3目录的存储221
7.5保护222
7.5.1域222
7.5.2访问矩阵的实现223
7.5.3Linux系统中的文件保护机制224
7.6文件系统的整体描述225
7.6.1文件系统的存储架构225
7.6.2日志在文件系统中的应用226
7.6.3文件系统的层次架构227
7.6.4根文件系统229
7.6.5文件系统在内存中的结构230
7.6.6虚拟文件系统231
小结233
练习233
第8章互斥与同步235
8.1互斥235
8.1.1互斥的概念235
8.1.2临界资源和临界区236
8.1.3实现互斥的机制237
8.2软件方法238
8.2.1Dekker算法238
8.2.2Peterson算法239
8.3硬件方法240
8.3.1关中断方法240
8.3.2硬件指令方法240
8.4操作系统方法242
8.4.1锁242
8.4.2信号量243
8.5同步245
8.5.1同步的概念246
8.5.2同步的实现247
8.6经典互斥与同步问题248
8.6.1生产者消费者问题248
8.6.2读者/写者问题252
8.6.3哲学家进餐问题253
8.7管程254
8.7.1管程的概念255
8.7.2生产者消费者问题的管程解决方案257
8.7.3哲学家就餐问题的管程解决方案258
小结259
练习260
第9章死锁264
9.1进程与资源的关系264
9.1.1可抢占资源和不可抢占资源264
9.1.2资源的使用过程265
9.1.3资源分配图265
9.2死锁的概念266
9.2.1死锁产生的原因267
9.2.2死锁的必要条件268
9.2.3基于资源分配图的死锁建模269
9.3死锁的处理方法270
9.4死锁预防270
9.4.1破坏互斥条件270
9.4.2破坏占有并等待条件271
9.4.3破坏不可抢占条件271
9.4.4破坏环路等待条件272
9.5死锁避免273
9.5.1安全状态与不安全状态273
9.5.2银行家算法275
9.6死锁检测279
9.6.1基于资源分配图的死锁检测280
9.6.2每种资源类型只有单个实例280
9.6.3每种资源类型可有多个实例281
9.6.4死锁检测算法的应用283
9.7死锁解除283
9.7.1终止进程284
9.7.2抢占资源284
9.7.3回退284
小结285
练习285
参考文献288
|
內容試閱:
|
操作系统的重要性无须赘言,在高科技领域竞争日趋激烈的时下,操作系统的研发面临艰难的挑战。同样面对巨大挑战的是操作系统教学,它与操作系统的研发相辅相成。
最近几十年,国内操作系统的教学理念在新技术和国外优秀教材的影响下不断改进,出版了一系列优秀的教材。最早的教材主要介绍概念和方法,也有的教材基于具体的系统解析操作系统的实现。后来引入了一大批国外的著名教材,如陈向群译的《现代操作系统》,郑扣根译的《操作系统概念》,陈莉君译的《Linux内核设计与实现》,陈向群、陈渝译的《操作系统精髓与设计原理》等,其特点是内容丰富且深入。在吸收这些教材的优点的基础上,国内也跟着出现了一批优秀教材,如罗宇编写的《操作系统》、张琼生编写的《计算机操作系统原理》等,其特点是面向教学,内容实用。另外,系统能力培养教学理念引领了新的教学改革,相继出版了一批从系统角度诠释操作系统内容的教材,如袁春风编写的《计算机系统基础》、龚奕利和雷迎春译的《深入理解计算机系统》等;也出现了一些紧跟操作系统研发步伐的教材,如陈海波、夏虞斌编写的《现代操作系统》。
在研究前人操作系统教材以及现代教学理念和技术的基础上,本书积极探索操作系统教材编写的新思路,体现在如下几方面。
(1) 从技术发展历史的进程中,理解操作系统中概念的本质内涵。将重要的概念,结合其提出的历史背景进行阐述,使读者能够更容易地理解概念,抓住问题本质,同时也体会到每个概念的创新价值。
(2) 从系统的角度阐述操作系统原理。通过介绍计算机硬件、编译系统以及程序设计知识的关联性,读者可以更全面地掌握操作系统中的方法,以及这些方法的硬件基础和应用背景,第1章和第2章内容为此而设置。第2章的内容弥补了从编程到操作系统之间在知识衔接上的缺失,是理解操作系统 的内容。
(3) 在代码层面理解操作系统。本书在介绍操作系统的机制和策略时,虽然没有大篇幅地使用代码,但力图讲解到程序员可以理解并将机制和策略与程序实现相关联的程度,对操作系统与硬件的接口也做了尽可能详细的说明,尽可能使读者能够在已有专业知识的基础上深入、详细地理解操作系统的实现基础。希望此书能够提供给读者一个新的视角和途径,学习并掌握操作系统的原理和方法。
本书配有MOOC视频,可以在智慧树官网找到。
编者2024年11月
|
|