第3章 高级操作系统进程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
其运行系统,重新调度
20
线程的管理
线程包:
为用户编程提供的线程操作原语程序库
静态线程:
线程的数量在编译时预先确定
动态线程:
在运行时随时创建或撤销线程
21
Windows中的进程管理
基本概念
描述 一组共享定额和限制的进程 拥有资源的容器 被内核的调度实体 完全在用户空间管理的轻量线 程
移动方式
发起方式
发送者发起:上载程序 接收者发起:下载程序
发送者 接收者
50
代码迁移模型
代码迁移的分类
51
局部资源
当代码段迁移到另一台机器后,需要考虑资 源段中对资源引用的变化 进程-资源之间的绑定关系
1. 2. 3.
by-identifier:通过标识符,引用特定的资源
by-value:引用资源的值
第3章 进程
主要内容
3.1 3.2 3.3 3.4 3.5 进程和线程管理 虚拟化技术 客户进程的设计 服务器进程的设计 代码迁移
2
3.1 进程和线程管理
进程:运行中的程序
例: 4个程序组成的多道程序
逻辑上,4个独立的、顺序的进程的概念模型
物理上,任意时刻只有一个是活动的
3
进程的状态
举例:
45
分布式服务器
路由优化
46
服务器机群管理
通用方法
在普通节点上通过远程登录
监控、安装、改变组件 收集信息、升级组件、增减节点
在管理机操作
47
3.5 代码迁移
操作传送(operation shipping)
代码迁移(code migration) 进程迁移(process migration) 改进性能
仿真方式:
例:Read文件Open, Read, Close
在Web服务器中记录客户的行为历史信息,利 用Cookie机制进行管理 对用户是透明的。如保存用户的登录信息
Cookie: 客户的标识数据
缺点:违反隐私权,有安全性隐患(仿冒ID)
41
服务器集群
服务器集群:一组由网络连接的机器,每台 机器上运行一个或多个服务器进程
内存管理
Pointer to text segment Pointer to data segment Pointer to stack segment
文件管理
Root directory Working directory File descriptors User ID Group ID
6
中断处理和调度
39
服务器设计(3)
Client-to-Server两种连接方式
无状态服务器:服务器不保存客户程序的状 态
例如,Web服务器 例如,NFS文件服务器
有状态服务器:保存客户程序的状态
文件使用表(客户,文件,可更新否)
服务器重启时:恢复故障前状态
40
服务器设计(4)
用无状态服务器实现有状态服务
22
名称 作业(Job) 进程(Process) 线程(Thread) 纤程(Fiber)
Job、Process、Thread的相互关系
23
3.2 虚拟化技术
虚拟化在分布式系统中的作用
支持遗留软件(legacy software) 减少软件平台和机器类型的数量 高移植性和灵活性
虚拟化系统结构
by-type:引用某个类型的资源
资源-机器之间的绑定关系
1. 2. 3.
Unattached:独立于机器,可以移动。例:数据文件
fastened:与机器有关联,难以移动,例:局部数据库 fixed:与机器密切绑定,不能移动。例:局部通信端口
52
局部资源(2)
ቤተ መጻሕፍቲ ባይዱ
解决对局部资源应用的方法
42
服务器集群
系统结构
逻辑上由三层组成
43
服务器集群
TCP转发原理 负载平衡策略
轮转法 内容感知的请求分布
44
分布式服务器
配置可动态变化的机器群 访问点也可以变化 实现技术
MIPv6支持移动节点的机制 移动节点
原籍网络(home network) 原籍地址(home address):稳定、不变化 原籍代理(home agent):特别的路由器 暂住地址(care of address):临时的网络地址
硬件虚拟化 每个虚拟机都构成一个独立完 不同的处理器需采用不同的
操作系统虚 每台计算机只虚拟一种操作系 只能支持同一操作系统下的 统。管理简单、性能较高,安 不同应用。主操作系统决定 拟化
全性中等。 虚拟操作系统的安全性
虚拟化PC
每台PC机可提供2个操作系统 的虚拟组合,在X86体系结构 上应用比较成功。性能取决于 PC机的硬件配置 台应用,大幅度减少应用程序 移植的工作量。
•举例: 多线程的Web服务器
14
多线程服务器的组织方式
(a)分派者/工作者模型 (b)团队模型 (c)管道模型
15
多线程的实现方式(1)
用户空间
切换效率高 专门的调度 算法
优点
性能高 灵活
16
多线程的实现方式(2)
内核空间:
由内核管理 实现简单
优点
17
多线程的实现方式(3)
(a) 程序、接口和系统之间的通用结
构
(b) 在系统B之上的虚拟化系统A的通 用结构
24
虚拟化系统提供4种接口
1. 2. 3. 4.
硬件虚拟化(通用指令) 硬件虚拟化(特权指令) 操作系统(OS)虚拟化 编程虚拟化 4
3 2
1
25
虚拟化系统提供4种接口
1. 硬件虚拟化:由机器指令组成的硬件和软件间接口
进程管理
Registers Program counter Program status word Stack pointer Process state Priority Scheduling parameters Process ID Parent process Process group Signals Starting time CPU time used Children’s CPU time Time of next alarm
9
线程模型
每个进程的项目
地址空间 全局变量 打开的文件 子进程 挂起警报 信号和信号处理器 计费信息
每个线程的项目
程序计数器 堆栈 寄存器 状态
每个线程可共享所属进程的资源
10
线程模型
每个线程拥有自己的栈
局部变量、返回地址
11
线程的用途-进程间通信(IPC)
大型应用程序需要进程间通信
19
•
•
例:调度器激活方法
•
算法:
内核为每个进程分配虚拟的处理机;由进程的用 户运行系统为线程分配虚拟处理机 当线程x在内核被阻塞后,调度器Upcall其运行系 统,重新调度其他就绪线程
当线程x可运行后,调度器Upcall其运行系统,重 新调度
当产生硬件中断后,如果与进程A有关,则Upcall
进程间通信IPC中的上下文切换
S1: 从用户空间到 内核空间切换 上下文
S3: 从内核空间到 用户空间切换 上下文
缺点:切换开销大 解决方案:线程切换
S2: 从进程A到进程B 切换上下文
12
线程的用途-多线程客户程序
举例:包含3个线程的字处理器
编辑 存储
录入
13
线程的用途- -多线程服务器
目的:
负载平衡,例:网格计算 减少通信量,例,query shipping 并行性,例,并行搜索Web 动态配置分布式程序
48
灵活性
攻击
代码迁移的原因
实现客户与服务器通信的动态配置原理
客户首先取得必需的软件,然后调用服务器
49
代码迁移模型
进程的组成
1. 2. 3.
代码段:指令集 资源段:外部资源引用,文件、打印机、设备等 执行段:状态,私有数据、SP, PC等 弱移动性:只移动代码段 强移动性:移动代码段、执行段
32
特点:
客户程序对分布透明性的支持
存取透明性
客户存根程序(stub):代理程序 隐藏客户和服务器主机之间的硬件差异和通信
client
stub
server
位置透明性、迁移透明性、重定位透明性
命名系统:全局逻辑名字 重新绑定机制:当服务器改变位置后,通知客 户重新自动绑定
33
客户端与分布透明性
1. 将当前程序指针压栈(硬件)
2. 从中断向量取出新的程序指针(硬件) 3. 保存当前寄存器(汇编,中断处理) 4. 设置新的栈指针(汇编,中断处理) 5. 执行中断服务程序(C语言,中断处理)
6. 调度器决定下一个运行的进程(C语言,调度器)
7. 加载寄存器和内存映像(汇编,调度器) 8. 启动新的进程(汇编,调度器)
1 – 进程a等待输入而暂停执 行,进入阻塞队列 2 – 时间片到,进程a暂停执 行,进入就绪队列,调度 器选择另一个就绪进程b 3 – 启动进程b运行 4 – 当输入完成后,进程 b进入就绪队列
4
操作系统的进程结构
调度器:
处理中断(分时, IO) 进行调度
5
进程的实现—进程表(PCB)
服务器: 为一组客户提供专门服务的进程。 服务器的两种组织
迭代(Iterative)型服务器:自己处理请求 并发(concurrent)型服务器:交给进(线)程处理
服务器端点(endpoint)
例1:FTP: 21 例2:HTTP: 80
37
服务器设计(1)
Client-to-Server两种绑定策略:
X-kernel:Windows manager
31
高级用户接口
复合文档:各种文档(文本,图像,电子表等) 的聚集 功能:
即拖即丢(drag-and-drop) 就地编辑(in-place editing) 与用户接口无缝集成。 不同的应用程序处理文档的不同部分。如, Windows OLE(Object Linking and Embedding)技术
GR:建立全局应用。例,URL MV:移动资源 CP: 拷贝资源的值 RB:重新绑定局部可用资源。 资源-机器绑定方式
硬件兼容性不全面,性能和 安全性较差。
编程虚拟化 兼容性取决于JVM。支持跨平
大并发程序执行的性能、可 靠性、安全性存在风险
28
3.3 客户进程的设计
客户程序:用户接口
29
网络化用户接口
带专用协议的网络化 应用程序 支持访问远程应用程 序的通用方案
30
网络化用户接口
举例:X-Window图形接口系统
(a)静态: 由daemon 进程负责 (如,DCE) (b)动态: 由superserver进程负责 (如, Unix inetd)
38
服务器设计(2)
client中断服务器执行的策略:
客户重启:中断连接
客户发送out-of-band命令
发送方法:
利用单独另外的控制端点,或者, 利用同一链路,如,TCP中发送urgent data
混合方式-轻量级进程(LWP)
将用户级线程多路转接到内核LWP上 LWP执行线程调度算法
18
多线程的实现方式(4)
•
调度器激活方法
目标 : 既有用户进程的优点(高性能、灵活),又有内核 进程的优点(实现简单)。 方案: 避免不必要的“用户/内核” 间的切换 实现: Upcall机制:下层内核可调用上层用户运行系 统
举例:使用客户端解决服务器复制透明 性的方案
34
客户程序对分布透明性的支持
复制透明性
客户代理(proxy),转发到来的请求
35
客户程序对分布透明性的支持
失败透明性
重新连接:通信失败时,重试 本地数据缓存:例,脱机方式 事务监控器:并发控制和恢复
并发透明性、持久透明性
36
3.4 服务器进程的设计
7
线程的概念
进程:相关的运行资源的管理单位
内存空间 打开的文件 子进程、信号处理、记账信息等 资源分组
线程(线索):在CPU上执行的脉络
程序计数器、寄存器、栈 执行
8
线程模型
多线程进程:一个线程被阻塞时,可运行同一进 程中的另一 线程(阻塞就绪运行) 线程进程;进程处理机;
两种虚拟化方式
构建一个运行系统,如Java 运行环境,或者,进程虚拟 机 完全屏蔽硬件,提供另一种 机器指令界面,称为虚拟监 控器(VMM),如VMware 系统, Xen系统
27
1.
2.
虚拟化技术的比较
虚拟化技术 优点
整的计算环境。虚拟机的性能 高、安全性好、隔离性好。
缺点
虚拟软件。软件成本高、很 难实现真正的物理级兼容性
可被任何程序调用
2. 硬件虚拟化:由机器指令组成的硬件和软件间接口
只可被特权程序(如OS内核)调用
3. OS虚拟化:由系统调用(如OS提供)组成的接口 4. 编程虚拟化:由子程序库调用组成的接口
通常构成应用程序接口 (API). 很多情况下,上述系统调用隐藏在 API中
26
虚拟机体系结构