CDIO工程教育系列教程·计算机专业基础类

当前位置:首页 > 计算机网络 > 操作系统/系统开发 > CDIO工程教育系列教程·计算机专业基础类

出版社:东软电子出版社
出版日期:2012-1
ISBN:9787894360458
作者:董祥千 编
页数:243页

章节摘录

版权页:   插图:   4.4.3 Linux进程间通信 Linux下的进程通信手段基本上是从UNIX平台上的进程通信手段继承而来的。而对UNIX发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心在进程间通信方面的侧重点有所不同。前者对UNIX早期的进程间通信手段进行了系统的改进和扩充,形成了“system V IPC”,通信进程局限在单个计算机内;后者则跳过了该限制,形成了基于套接口(socket)的进程间通信机制。Linux则把两者继承了下来,如图4.15所示。 其中,最初UNIX IPC包括:管道、FIFO、信号;System V IPC包括:System V消息队列、System V信号灯、System V共享内存区;Posix IPC包括:Posix消息队列、Posix信号灯、Posix共享内存区。这里有有两点需要简单说明: (1)由于UNIX版本的多样性,电子电气工程协会(IEEE)开发了一个独立的UNIX标准,这个新的ANSI UNIX标准被称为计算机环境的可移植性操作系统界面(PSOIX)。现有大部分Unix和流行版本都是遵循POSIX标准的,而Linux从一开始就遵循POSIX标准。 (2)BSD并不是没有涉足单机内的进程间通信(socket本身就可以用于单机内的进程间通信)。事实上,很多UNIX版本的单机IPC留有BSD的痕迹,如4.4BSD支持的匿名内存映射、4.3+BSD对可靠信号语义的实现等。 图4.15表示出了Linux所支持的各种IPC手段,在本文接下来的讨论中,为了避免概念上的混淆,在尽可能少提及UNIX的各个版本的情况下,所有问题的讨论最终都会归结到Linux环境下的进程间通信上来。对于Linux所支持通信手段的不同实现版本(如对于共享内存来说,有Posix共享内存区以及System V共享内存区两个实现版本),将主要介绍System VAPI,在4.5节将介绍Posix的信号量机制。 至此,可以总结出Linux下进程间通信的几种主要方式: (1)管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。

书籍目录

第1章绪论
1.1学习引导
1.2操作系统的概念
1.2.1什么是操作系统
1.2.2操作系统的发展
1.3操作系统的功能
1.3.1处理机管理
1.3.2存储器管理
1.3.3设备管理
1.3.4文件管理
1.3.5用户接口
1.4操作系统的分类
1.4.1单用户操作系统
1.4.2多道批处理系统
1.4.3分时系统
1.4.4实时系统
1.4.5网络操作系统
1.4.6分布式操作系统
1.4.7嵌入式操作系统
1.5操作系统的特征和性能指标
1.5.1操作系统的特征
1.5.2操作系统性能指标
1.6Linux系统概述
1.6.1Linux系统形成和发展的基础
1.6.2Linux系统的特点
1.7单元项目:Linux内核结构
1.8扩展阅读
1.9本章小结
1.10习题
第2章操作系统的引导
2.1学习引导
2.2系统启动硬件基础
2.2.1主板与内存映射
2.2.2加电自检(POST)过程
2.3根文件系统
2.3.1根文件系统
2.3.2Busybox文件系统简介
2.4操作系统启动过程
2.4.1引导程序BootLoader的加载
2.4.2操作系统内核的加载
2.4.3计算机启动过程
2.5GDB调试
2.5.1GDB简介
2.5.2GDB命令
2.6单元项目
2.6.1Linux内核的编译
2.6.2制作带根文件系统的磁盘映像
2.6.3制作带引导功能的启动磁盘
2.6.4Linux内核调试
2.7本章小结
2.8习题
第3章存储管理
3.1学习引导
3.2存储管理的基本概念
3.2.1存储管理的目的和功能
3.2.2存储管理的方式
3.3连续分配方式
3.3.1单一连续分配
3.3.2固定分区存储管理
3.3.3动态分区存储管理
3.3.4交换技术
3.4离散分配方式
3.4.1基本分页存储管理
3.4.2基本分段存储管理方式
3.4.3段页式存储管理方式
3.5虚拟存储器
3.5.1虚拟存储器的引入
3.5.2虚拟存储器的实现
3.5.3虚拟存储器的特征
3.6请求分页存储管理
3.6.1请求分页中的硬件支持
3.6.2内存的分配
3.6.3页面置换算法
3.6.4页面抖动现象
3.7请求分段存储管理
3.7.1段表机制
3.7.2缺段中断机构
3.7.3地址变换机构
3.8Linux内存管理
3.8.1Linux存储管理的重要数据结构
3.8.2页表的管理
3.8.3页面分配和回收
3.8.4Linux页面置换
3.9单元项目
3.9.1动态分区分配模拟项目
3.9.2页面置换算法模拟项目
3.10本章小结
3.11习题
第4章进程管理
4.1学习引导
4.2进程管理
4.2.1程序、程序的顺序执行及其特征
4.2.2程序的并发执行及其特征
4.2.3进程的定义及其特征
4.2.4进程的基本状态及其转换
4.2.5进程切换
4.2.6进程控制块PCB
4.2.7进程控制块的组织方式
4.2.8进程控制
4.3进程互斥与同步及信号量机制
4.3.1临界资源和临界区
4.3.2进程互斥与同步的概念
4.3.3信号量机制
4.3.4信号量集机制
4.4进程间通信
4.4.1进程间通信的方式
4.4.2进程地址空间
4.4.3Linux进程间通信
4.4.4System V共享内存实现
4.4.5System V共享内存编程接口
4.4.6System V信号量机制
4.5死锁
4.5.1死锁产生的原因和必要条件
4.5.2解决死锁的基本方法
4.6Linux进程的实现
4.6.1Linux进程描述符
4.6.2Linux进程的状态
4.6.3Linux进程的虚拟内存布局
4.6.4Linux进程的内核堆栈
4.6.5Linux的init进程
4.6.7Linux用户进程的创建
4.7线程
4.7.1线程的基本概念
4.7.2用户级线程与内核级线程
4.7.3多线程模型
4.7.4Linux线程技术
4.7.5Glibc中的NTPL库编程接口
4.7.6POSIX信号量
4.8单元项目
4.8.1进程管理的模拟实现
4.8.2生产者-消费者问题
4.8.3利用共享内存实现读者写者问题
4.8.4哲学家就餐问题
4.8.5司机与售票员问题
4.9本章小结
4.10习题
第5章处理机管理
5.1学习引导
5.2基本知识
5.2.1调度程序
5.2.2分派程序
5.2.3调度算法的若干准则
5.2.4进程优先级
5.2.5调度策略
5.2.6进程调度层次
5.2.7进程调度的功能
5.2.8进程调度时机
5.2.9作业的状态及其转换
5.3常用的调度队列模型
5.3.1只有进程调度的调度队列模型
5.3.2具有高级和低级调度的调度队列模型
5.3.3同时具有三级调度的调度队列模型
5.4常用调度算法
5.4.1先来先服务调度算法
5.4.2短作业调度算法(SJF)或短进程调度算法(SPF)
5.4.3高响应比优先调度算法(HRN)
5.4.4最高优先级(FPF)优先调度算法
5.4.5基于时间片轮转的调度算法
5.5Linux进程调度框架
5.5.1Linux进程的分类
5.5.2时间片的选择
5.5.3Linux2.6.26的两种主流调度器
5.6单元项目
5.6.1作业调度算法模拟
5.6.2进程调度算法模拟
5.6.3CFS算法在Linux上的实现分析
5.7本章小结
5.8习题
第6章操作系统用户接口
6.1学习引导
6.2操作系统的接口
6.2.1程序接口
6.2.2命令接口
6.2.3作业控制级接口
6.3Linux的用户接口
6.3.1常用Shell命令
6.3.2Shell编程
6.4单元项目
6.4.1“Hello world”项目
6.4.2Shell变量项目
6.4.3Shell程序设计的流程控制项目
6.5扩展阅读
6.6本章小结
6.7习题
第7章设备管理
7.1学习引导
7.2设备管理概述
7.2.1设备管理的目的和功能
7.2.2设备的分类
7.3I/O系统
7.3.1设备控制器
7.3.2I/O通道
7.3.3总线系统
7.4I/O数据传输方式
7.4.1程序循环测试方式
7.4.2中断驱动I/O控制方式
7.4.3直接存储器存取(DMA)方式
7.4.4I/O通道方式
7.5缓冲技术
7.5.1缓冲的引入
7.5.2缓冲的类型
7.6设备分配
7.6.1设备分配中的数据结构
7.6.2设备的独立性
7.6.3分配中应考虑的因素
7.6.4独占设备的分配程序
7.7I/O处理
7.7.1中断处理程序
7.7.2设备驱动程序
7.8虚拟设备
7.8.1Spooling技术
7.8.2共享打印机
7.9磁盘管理
7.9.1磁盘概述
7.9.2磁盘调度
7.9.3廉价磁盘冗余阵列
7.10Linux设备管理
7.10.1Linux中的设备文件
7.10.2Linux的设备驱动程序
7.10.3Linux的中断处理
7.11单元项目:磁盘调度算法模拟实验
7.12本章小结
7.13习题
第8章文件管理
8.1学习引导
8.2文件的基本概念
8.2.1文件属性
8.2.2文件操作
8.2.3文件格式
8.2.4文件结构
8.3文件存取方法
8.3.1顺序存取
8.3.2直接存取(随机存取)
8.3.3按键存取
8.4文件目录
8.4.1文件目录结构
8.4.2文件目录的实现
8.5文件系统
8.5.1文件系统的功能
8.5.2文件系统的层次结构
8.6空闲存储空间的管理
8.6.1空闲空间表法
8.6.2空闲块链法
8.6.3位示图法
8.6.4成组链接法
8.7磁盘空间分配方式
8.7.1连续分配方式
8.7.2链接分配方式
8.7.3索引分配方式
8.8文件共享
8.8.1早期文件共享的方法
8.8.2基于索引结点的共享方式(硬链接)
8.8.3利用符号链实现文件共享(软链接)
8.9文件保护
8.9.1保护域
8.9.2访问矩阵
8.9.3访问矩阵的修改
8.9.4访问矩阵的实现
8.9.5分级安全管理
8.10Linux文件系统分析
8.10.1Linux文件系统体系结构
8.10.2VFS文件系统
8.10.3ext2文件系统
8.10.4文件系统的挂载
8.11单元项目
8.11.1Linux文件系统模拟
8.11.2给Linux系统添加新硬盘
8.12本章小结
8.13习题
第9章Linux内核分析
9.1学习引导
9.2Linux内核代码组织
9.2.1微内核与单内核
9.2.2Linux内核源代码结构
9.3Linux内核分析方法
9.4单元项目
9.4.1Linux中的时钟和定时测量的初始化
9.4.2Linux内核编译过程分析
9.4.3Linux操作系统启动过程分析
9.5本章小结
9.6习题
参考文献

编辑推荐

《CDIO工程教育系列教程•计算机专业基础类:计算机操作系统(Linux)教程》是由东软电子出版社出版。

作者简介

《CDIO工程教育系列教程•计算机专业基础类:计算机操作系统(Linux)教程》包括单一连续分配;固定分区存储管理;动态分区存储管理;交换技术;离散分配方式;基本分页存储管理;基本分段存储管理方式;段页式存储管理方式;虚拟存储器;虚拟存储器的引入;虚拟存储器的实现等内容。

图书封面


 CDIO工程教育系列教程·计算机专业基础类下载



发布书评

 
 


 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024