内容简介
《国外计算机科学教材系列:操作系统设计与实现(上册 第三版)》是操作系统领域的教材之一。全书详细介绍了操作系统的基本原理,包括进程、进程间通信、信号量、管程、消息传递、调度算法、输入/输出、死锁、设备驱动程序、存储管理、调页算法、文件系统设计、安全和保护机制等,并深入讨论了MINIX 3操作系统。这种安排不仅可让读者了解操作系统的基本原理,而且可让读者了解如何将基本原理应用到真实的操作系统中去。
作者简介
陈渝,国防科学技术大学计算机系 学士、硕士、博士,清华大学计算机系副教授,研究方向为操作系统、普适计算和嵌入式系统。
目录
第1章 引言
1.1 什么是操作系统
1.1.1 操作系统作为扩展机
1.1.2 操作系统作为资源管理器
1.2 操作系统的发展历史
1.2.1 第一代计算机(1945-1955):真空管和插接板
1.2.2 第二代计算机(1955-1965):晶体管和批处理系统
1.2.3 第三代计算机(1965-1980):集成电路和多道程序
1.2.4 第四代计算机(1980-):个人计算机
1.2.5 MINIX3的历史
1.3 操作系统概念
1.3.1 进程
1.3.2 文件
1.3.3 命令解释器
1.4 系统调用
1.4.1 进程管理的系统调用
1.4.2 信号管理的系统调用
1.4.3 文件管理的系统调用
1.4.4 目录管理的系统调用
1.4.5 保护的系统调用
1.4.6 时间管理的系统调用
1.5 操作系统结构
1.5.1 整体结构
1.5.2 分层结构
1.5.3 虚拟机
1.5.4 外核
1.5.5 客户-服务器模型
1.6 剩余各章内容简介
1.7 小结
习题
第2章 进程
2.1 进程介绍
2.1.1 进程模型
2.1.2 进程的创建
2.1.3 进程的终止
2.1.4 进程的层次结构
2.1.5 进程的状态
2.1.6 进程的实现
2.1.7 线程
2.2 进程间通信
2.2.1 竞争条件
2.2.2 临界区
2.2.3 忙等待形式的互斥
2.2.4 睡眠和唤醒
2.2.5 信号量
2.2.6 互斥
2.2.7 管程
2.2.8 消息传递
2_3经典IPC问题
2.3.1 哲学家进餐问题
2.3.2 读者一写者问题
2.4 进程调度
2.4.1 调度介绍
2.4.2 批处理系统中的调度
2.4.3 交互式系统中的调度
2.4.4 实时系统调度
2.4.5 策略与机制
2.4.6 线程调度
2.5 MINIX3进程概述
2.5.1 MINIX3的内部结构
2.5.2 MINIX3中的进程管理
2.5.3 MINIX3中的进程间通信
2.5.4 MINIX3中的进程调度
2.6 MINIX3中进程的实现
2.6.1 MINIX3源代码的组织
2.6.2 编译及运行MINIX3
2.6.3 公共头文件
2.6.4 MINIX3头文件
2.6.5 进程数据结构和头文件
2.6.6 引导MINIX3
2.6.7 系统初始化
2.6.8 MINIX的中断处理
2.6.9 MINIX3的进程间通信
2.6.10 MINIX的进程调度
……
第3章 输入/输出系统
第4章 存储管理
第5章 文件系统
第6章 阅读材料和参考文献
索引
精彩书摘
《国外计算机科学教材系列:操作系统设计与实现(上册 第三版)》:
第1层的主要功能是为上层驱动程序和服务器提供一组特权内核调用。这包括读写I/O端口、跨地址空间复制数据等。这些调用由系统任务(systemtask)实现。尽管系统任务和时钟任务被编译进了内核地址空间,但它们作为单独的进程调用,并有自己的调用堆栈。
大部分内核程序和所有的时钟任务及系统任务程序用C语言编写。内核中有一小部分程序是用汇编语言编写的。汇编语言编写的部分负责中断处理、进程切换的底层上下文管理机制(保存和恢复寄存器等)、MMU硬件的底层操作部分。总体上讲,汇编语言负责内核直接与硬件交互的最底层部分,这部分不能用C实现。如果把MINIX3移植到新的体系结构上,那么这部分代码需要重写。
内核以上的其他三层也可以视为一层,因为内核从根本上同样对待它们。每一层只限于使用用户模式指令,并且每一层由内核调度执行。它们都不能直接对I/O端口进行操作。此外,它们也不能访问分配给它们之外的内存。
然而,进程都潜在具有一定的特权(例如进行系统调用的能力)。这是第2层、第3层和第4层内的进程的真正不同之处。第2层内的进程拥有最多的特权,第3层内的进程的特权少一些,而第4层内的进程没有特权。例如,处于第2层内的称为设备驱动程序(devicedrivers)的进程,可以请求系统任务代表它们从I/O端口读数据或向I/O端口写数据。每种类型的设备,包括磁盘、打印机、终端和网络接口,都需要一个设备驱动程序。如果还有其他类型的I/O设备,每种也都需要一个驱动程序。设备驱动程序也可能发出其他内核调用,例如请求刚刚读取的数据副本到另一个进程的地址空间。
第3层包含了服务器,即向用户进程提供有用服务的进程。有两个服务器是必不可少的。进程管理器(ProcessManager,PM)执行所有涉及启动或终止进程的MINIX3系统调用,例如fork,exec和wait等,还负责执行与信号有关的系统调用,例如alarm和kill等,这些调用能够改变进程的执行状态。进程管理器还负责管理内存,例如发出brk系统调用。文件系统(FileSystem,FS)负责执行文件系统的调用,如read,mount和chdir等。
理解内核调用(kernelcall)和POSIX系统调用(systemcall)的区别非常重要。内核调用是由系统服务提供的以使驱动程序和服务器完成工作的低层函数。一个典型的内核调用是读硬件的I/O端口。相反,POSIX系统调用是由POSIX规范定义的高层调用,如read,fork和unlink等,这些调用供第4层的用户程序使用。用户程序内包含了许多POSIX调用,但不包含内核调用。实现这些调用的机制是相似的,并且内核调用可以视为系统调用的一个子集。
在第3层中除了进程管理器和文件系统外,还有其他一些服务。它们执行MINIX3特定的功能。有把握认为进程管理器和文件系统的功能在其他任何操作系统上都可以找到。信息服务器(informationserver,IS)负责提供其他驱动程序和服务器的调试和状态信息的工作,而这一工作在像MINIX3这样的专门为实验而设计的系统中是非常重要的,而在用户不能修改的商业操作系统中,这一工作没那么重要。再生服务器(reincarnationserver,RS)启动或重启那些不与内核一起加载到内存的设备驱动程序。另外,如果驱动程序在操作过程中失败,那么再生服务器检测到这个失败,并杀死这个驱动程序(如果它没有死的话),重启一个驱动程序的新的副本,从而使整个系统具有更好的容错能力。这一功能在大多数操作系统中是没有的。在一个网络操作系统上,第3层中还可能有网络服务器(networkserver.inet)。服务器不能直接进行I/O操作,但它们可以通过驱动程序来请求I/O。服务器也可以通过系统任务与内核通信。
就像在第1章开始讲到的那样,操作系统负责两件事情:管理资源和通过实现系统调用提供一个扩展的计算机。在MINIX3操作系统中,资源管理主要由第2层的驱动程序来做,当需要操作I/O或系统中断时,还可以得到内核层的帮助。系统调用的解释由第3层的进程管理器和文件系统来做。文件系统作为一个文件服务器设计仔细,改动很少就可以移到一个远程的计算机上。
……
前言/序言
国外计算机科学教材系列:操作系统设计与实现(上册 第三版) [Operating Systems:Design and Implementation, Third Edition] 下载 mobi epub pdf txt 电子书 格式
国外计算机科学教材系列:操作系统设计与实现(上册 第三版) [Operating Systems:Design and Implementation, Third Edition] 下载 mobi pdf epub txt 电子书 格式 2024
国外计算机科学教材系列:操作系统设计与实现(上册 第三版) [Operating Systems:Design and Implementation, Third Edition] mobi epub pdf txt 电子书 格式下载 2024