计算机系统:基于x86+Linux平台
全新正版 极速发货
¥
47.61
5.3折
¥
89
全新
库存12件
作者袁春风 朱光辉 余子濠
出版社机械工业
ISBN9787111738824
出版时间2024-05
装帧其他
开本其他
定价89元
货号1203281232
上书时间2024-06-18
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
作者简介<br/>袁春风 南京大学计算机科学与技术系教授,主要研究领域为大数据计算与并行处理技术、Web信息检索与文本挖掘技术等。在相关领域承担科研项目50多项,先后承担多项教育部产学合作协同育人项目,发表科研论文近100篇,两次获江苏省科技进步二等奖,并获江苏省优秀软件一等奖。<br/><br/>先后主持国家级精品课程、国家级精品资源共享课“计算机组成原理”,主持江苏省精品课程“计算机组成与系统结构”;主编普通高等教育国家级规划教材《计算机组成与系统结构》,主编江苏省重点建设教材《计算机系统基础》和《计算机组成与设计》;发表教学论文20多篇。先后获2013年江苏省教学成果特等奖,2014年国家教学成果二等奖,2017年江苏省教学成果二等奖。“计算机系统基础(一)”和“计算机系统基础(二)”分别获2017年和2018年国家级精品在线开放课程,“计算机组成与系统结构”课程网站获江苏省优秀多媒体课件特等奖,所承担的“计算机系统”课程群被遴选为江苏省优秀课程群。 <br/>朱光辉博士,南京大学计算机科学与技术系助理研究员,江苏省计算机学会优博,江苏省“双创博士”,华为“难题揭榜火花奖”获得者,教育部-华为“智能基座”先锋教师,教育部-华为“智能基座”产教融合协同育人基地优秀课件奖励计划获得者,南京大学“师“师风”先进团队核心成员。长期从事“计算机系统基础”“大数据处理综合实验”以及《智能计算系统》等系统类课程的教学工作。研究方向为大数据与智能计算,已在国内外著名会议/期刊发表高水平论文20余篇,主持国家自然科学基金青年项目、江苏省自然科学基金项目、江苏省科技厅重点研发计划课题、教育部产学合作协同育人项目以及企业横向合作项目多项,研究成果在国际人工智能自动化AI建模大赛中,9次荣获国际大奖,6次获得前三名,并荣获第五届中国“互联网+”大学生创新创业大赛全国金奖,相关技术已落地应用于华为、奇虎360等IT企业。<br/><br/>余子濠 中国科学院计算技术研究所博士生,2014年本科毕业于南京大学计算机科学与技术系。主要研究方向为数据中心云计算架构与QoS保障、开源硬件敏捷开发和动态二进制翻译等,创新性地提出、设计并实现了“标签化RISC-V”原型系统。参与编写《计算机系统基础》和《计算机组成与设计》教材,独立设计了教学版全系统模拟器NEMU和“计算机系统基础”课程实验PA,并获全国计算机实验教学案例设计竞赛一等奖。 <br/>
目录
目 录<br />出版说明<br />前言<br />第1章 计算机系统概述 1<br />1.1 计算机系统的基本工作原理 1<br />1.1.1 冯·诺依曼结构的基本思想 1<br />1.1.2 冯·诺依曼机的基本结构 2<br />1.1.3 程序和指令的执行过程 3<br />1.2 程序的开发与运行 6<br />1.2.1 程序设计语言和翻译程序 6<br />1.2.2 从源程序到可执行文件 8<br />1.2.3 可执行文件的启动和执行 9<br />1.3 计算机系统的层次结构 11<br />1.3.1 计算机系统抽象层的转换 11<br />1.3.2 计算机系统核心层之间的关联 12<br />1.3.3 计算机系统的不同用户 14<br />1.4 本章小结 17<br />习题 17<br />第2章 数据的机器级表示与处理 19<br />2.1 数制和编码 19<br />2.1.1 信息的二进制编码 19<br />2.1.2 进位计数制 21<br />2.1.3 定点数与浮点数 24<br />2.1.4 定点数的编码表示 25<br />2.2 整数的表示 29<br />2.2.1 无符号整数和带符号整数 29<br />2.2.2 C语言中的整数及其相互转换 30<br />2.3 浮点数的表示 32<br />2.3.1 浮点数的表示范围 32<br />2.3.2 浮点数的规格化 33<br />2.3.3 IEEE 754浮点数标准 33<br />2.3.4 C语言中的浮点数类型 37<br />2.4 非数值数据的编码表示 38<br />2.4.1 逻辑值 38<br />2.4.2 西文字符 39<br />2.4.3 汉字字符 40<br />2.5 数据的宽度和存储 41<br />2.5.1 数据的宽度和单位 41<br />2.5.2 数据的存储和排列顺序 43<br />2.6 数据的基本运算 47<br />2.6.1 按位运算和逻辑运算 47<br />2.6.2 左移和右移运算 47<br />2.6.3 位扩展和位截断运算 48<br />2.6.4 整数加减运算 49<br />2.6.5 整数乘除运算 53<br />2.6.6 常量的乘除运算 56<br />2.6.7 浮点数运算 57<br />2.7 本章小结 63<br />习题 63<br />第3章 程序转换与指令系统 72<br />3.1 程序转换概述 72<br />3.1.1 机器指令和汇编指令 72<br />3.1.2 指令集体系结构概述 73<br />3.1.3 指令系统设计风格 75<br />3.1.4 机器代码的生成过程 77<br />3.2 IA-32/x86-64指令系统 82<br />3.2.1 操作数类型 83<br />3.2.2 寄存器组织 85<br />3.2.3 寻址方式 89<br />3.2.4 机器指令格式 92<br />3.3 IA-32/x86-64常用指令类型及操作 95<br />3.3.1 传送指令 95<br />3.3.2 定点算术运算指令 99<br />3.3.3 按位运算指令 103<br />3.3.4 程序执行流控制指令 105<br />*3.3.5 x87浮点处理指令 110<br />*3.3.6 MMX/SSE/AVX指令 113<br />*3.3.7 x86-64中的浮点处理指令 115<br />3.4 本章小结 118<br />习题 118<br />第4章 程序的机器级表示 122<br />4.1 过程调用的机器级表示 122<br />4.1.1 IA-32的过程调用约定 122<br />4.1.2 变量的作用域和生存期 125<br />4.1.3 按值传递参数和按地址传递参数 127<br />4.1.4 递归过程调用 132<br />4.1.5 非静态局部变量的存储分配 133<br />4.1.6 x86-64的过程调用 136<br />*4.1.7 x86-64过程的浮点参数传递 142<br />4.2 流程控制语句的机器级表示 143<br />4.2.1 选择语句的机器级表示 143<br />4.2.2 循环语句的机器级表示 147<br />4.3 复杂数据类型的分配和访问 150<br />4.3.1 数组的分配和访问 150<br />4.3.2 结构体数据的分配和访问 155<br />4.3.3 联合体数据的分配和访问 158<br />4.3.4 数据的对齐 160<br />4.4 越界访问和缓冲区溢出 163<br />4.4.1 数组的越界访问 163<br />4.4.2 缓冲区溢出攻击 165<br />4.4.3 对缓冲区溢出攻击的防范 167<br />4.5 本章小结 170<br />习题 171<br />第5章 程序的链接与加载执行 184<br />5.1 编译、汇编和静态链接 184<br />5.1.1 编译和汇编 184<br />5.1.2 可执行文件的生成 185<br />5.2 目标文件格式 187<br />5.2.1 ELF目标文件格式 188<br />5.2.2 可重定位文件格式 189<br />5.2.3 可执行文件格式 192<br />5.2.4 可执行文件的存储器映像 194<br />5.3 符号表和符号解析 195<br />5.3.1 符号和符号表 195<br />5.3.2 符号解析 199<br />5.3.3 与静态库的链接 202<br />5.4 重定位 204<br />5.4.1 重定位信息 205<br />5.4.2 重定位过程 206<br />*5.5 动态链接 209<br />*5.5.1 动态链接的特性 210<br />*5.5.2 程序加载时的动态链接 210<br />*5.5.3 程序运行时的动态链接 212<br />*5.5.4 位置无关代码 213<br />*5.6 库打桩机制 218<br />*5.6.1 编译时打桩 218<br />*5.6.2 链接时打桩 219<br />*5.6.3 运行时打桩 220<br />5.7 可执行文件的加载和执行 222<br />5.7.1 可执行文件的加载 222<br />5.7.2 程序和指令的执行过程 223<br />5.7.3 CPU的基本功能和基本组成 225<br />5.7.4 打断程序正常执行的事件 226<br />5.8 本章小结 227<br />习题 228<br />第6章 存储器层次结构 233<br />6.1 存储器概述 233<br />6.1.1 存储器的分类 233<br />6.1.2 主存储器的组成和基本操作 234<br />6.1.3 层次化存储结构 235<br />6.1.4 程序访问的局部性 236<br />6.2 半导体随机存取存储器 238<br />6.2.1 基本存储元件 238<br />6.2.2 DRAM芯片 240<br />6.2.3 SDRAM芯片技术 242<br />6.2.4 内存条及其与CPU的连接 243<br />6.2.5 存储器芯片的扩展 245<br />6.2.6 主存控制器 247<br />6.3 外部存储器 247<br />6.3.1 磁盘存储器的结构 247<br />6.3.2 磁盘存储器的性能指标 249<br />*6.3.3 闪速存储器和U盘 250<br />*6.3.4 固态硬盘 252<br />6.4 cache 253<br />6.4.1 cache的基本工作原理 253<br />6.4.2 cache的映射方式 254<br />6.4.3 cache的替换算法 261<br />6.4.4 cache的写策略 265<br />*6.4.5 cache的设计 266<br />*6.4.6 cache和程序性能 270<br />6.5 本章小结 274<br />习题 275<br />第7章 虚拟存储器 279<br />7.1 虚拟存储器概述 279<br />7.1.1 虚拟存储器的基本概念 279<br />7.1.2 进程的虚拟地址空间 280<br />7.1.3 虚拟存储器的基本类型 282<br />7.2 页式虚拟存储器的实现 284<br />7.2.1 页表和页表项的结构 284<br />7.2.2 页式存储管理总体结构 285<br />7.2.3 页式虚拟存储地址转换 287<br />7.2.4 快表 287<br />7.3 具有TLB和cache的存储系统 290<br />7.3.1 层次化存储系统结构 290<br />7.3.2 CPU访存过程 291<br />7.3.3 cache的4种查找方式 293<br />7.4 存储保护机制 293<br />*7.5 IA-32+Linux中的地址转换 295<br />7.5.1 逻辑地址到线性地址的转换 295<br />7.5.2 线性地址到物理地址的转换 300<br />*7.6 实例:Intel Core i7+Linux存储系统 302<br />7.6.1 Core i7的层次化存储器结构 302<br />7.6.2 Core i7的地址转换机制 302<br />7.6.3 Linux系统的虚拟存储管理 305<br />*7.7 堆区动态分配 309<br />7.7.1 动态存储分配 310<br />7.7.2 显式动态分配 313<br />7.7.3 隐式动态分配 318<br />7.7.4 与存储访问相关的常见错误 319<br />7.8 本章小结 323<br />习题 323<br />第8章 进程与异常控制流 327<br />8.1 进程与进程的上下文切换 327<br />8.1.1 程序和进程的概念 327<br />8.1.2 进程的逻辑控制流 328<br />8.1.3 进程的上下文切换 329<br />8.2 异常和中断 331<br />8.2.1 异常和中断的基本概念 331<br />8.2.2 异常的分类 333<br />8.2.3 中断的分类 336<br />8.2.4 异常和中断的响应 337<br />*8.3 IA-32/x86-64+Linux的异常和中断机制 339<br />8.3.1 中断向量表和中断描述符表 339<br />8.3.2 异常和中断的处理 341<br />8.3.3 系统调用机制 345<br />*8.4 Linux中的进程控制 348<br />8.4.1 进程的创建、休眠和终止 348<br />8.4.2 进程ID的获取和子进程的回收 351<br />8.4.3 程序的加载运行 354<br />*8.5 Linux中的信号与非本地跳转 357<br />8.5.1 Linux中的信号处理机制 357<br />8.5.2 信号的发送 359<br />8.5.3 信号捕获和信号处理 361<br />8.5.4 非本地跳转处理 362<br />8.6 本章小结 364<br />习题 365<br />第9章 I/O操作的实现 370<br />9.1 I/O子系统概述 370<br />9.2 用户空间I/O软件 372<br />9.2.1 用户程序中的I/O函数 372<br />9.2.2 文件的基本概念 375<br />9.2.3 系统级I/O函数 377<br />9.2.4 C标准I/O库函数 380<br />9.3 内核空间I/O软件 385<br />9.3.1 设备无关的I/O软件层 385<br />9.3.2 设备驱动程序 389<br />9.3.3 中断服务程序 396<br />9.4 I/O硬件与软件的接口 398<br />9.4.1 I/O设备 398<br />9.4.2 基于总线的互连结构 399<br />9.4.3 I/O接口的功能和结构 402<br />9.4.4 I/O端口及其编址 404<br />9.4.5 中断系统 408<br />9.5 hello程序运行过程综述 409<br />9.5.1 shell进程等待用户键盘输入 409<br />9.5.2 用户从键盘输入命令行 410<br />9.5.3 唤醒并切换至shell进程 411<br />9.5.4 使用fork()函数创建子进程 412<br />9.5.5 hello进程的加载和执行 414<br />9.6 本章小结 418<br />习题 418<br />第10章 程序性能的优化 424<br />10.1 计算机系统性能评估 424<br />10.1.1 计算机性能的定义 424<br />10.1.2 计算机性能的测试 424<br />10.1.3 用指令执行速度进行性能评估 426<br />10.1.4 用基准程序进行性能评估 428<br />10.1.5 阿姆达尔定律 429<br />10.2 程序性能瓶颈分析 430<br />10.2.1 基于事件统计报告的性能瓶颈<br />分析 430<br />10.2.2 基于踪迹的性能瓶颈分析 433<br />10.3 基于分层的性能优化技术分类 435<br />10.3.1 软件层次 435<br />10.3.2 指令集和硬件层次 439<br />10.4 编写适合编译优化的源代码 440<br />10.4.1 优化函数调用 440<br />10.4.2 优化指针别名 442<br />10.5 本章小结 445<br />习题 446<br />第11章 网络编程 449<br />11.1 客户端–服务器模型和网络I/O 449<br />11.1.1 案例:远程函数调用 449<br />11.1.2 网络I/O 451<br />11.2 局域网和广域网 452<br />11.2.1 局域网 452<br />11.2.2 交换机 453<br />11.2.3 广域网与互联网 455<br />11.3 IP网络通信协议 455<br />11.3.1 IP地址 455<br />11.3.2 子网掩码与子网划分 456<br />11.3.3 路由与转发 458<br />11.3.4 TCP/IP 461<br />11.4 套接字编程 463<br />11.4.1 套接字接口 463<br />11.4.2 套接字地址与接口函数 464<br />11.4.3 套接字编程实例 467&a
— 没有更多了 —
以下为对购买帮助不大的评价