- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5-进程与处理机管理
第 5 章 进程与处理机管理
主要内容:进程、线程、进程管理、线程管理
学时:45′*4
重点:线程的概念
难点:线程的概念
回顾:
1、 为什么要在 OS 中引进进程和线程的概念?——并发
2、 进程的定义——程序的一次执行
3、 进程的组成——程序、资源(数据)、PCB(一个纪录)
5-1 进程与线程
UNIX 风格的进程已不适应分布式系统的需要:进程的建立和
管理需要较大的资源开销,而且给相关活动共享资源带来了困
难。
现在,我们将进程运行所需要的资源独立出来,并称之为“执
行环境”,把剩余的具体执行——“执行线索”称为线程(Thread)。
由于在同一时刻,可以有若干个共享同一个执行环境的线程,所
以,一个进程可以含有多个线程。
一般地,一个执行环境包括:
一个地址空间
1
线程同步与通信资源(信号量、通信接口)
在微内核的 OS 中,诸如:打开的文件、窗口等“高层资源”
不算作执行环境所包含的资源,它们是由 Server 管理的。
线程的引入对 Client/Server 结构的系统中的 Server 特别
有意义,Server 可以更好地并发为 Client 服务,有利于避免
Server 称为系统的瓶颈。
进程:轻进程、重进程
Amoeba:Thread/Process
Chorus:Thread/Actor
Mach:Thread/Task
V System:Process/Team
一、 地址空间
地址空间包括:一部分为实的,另一部分为虚的,这部分虚
的可以在需要的时候变成实的(如通过 MMU 映射、执行
Copy-on-write)。
域 1 A 域 2 B 域 3 C 域 4 D 域 5 E 域 6
域和域之间不可重叠;A、B、C、D、E 是不可访问的区域,
除非它们被某个相邻的域扩展到该域中。
1、 地址空间的特点
32
大(典型的是 2 字节——4G)
由若干个域组成
2
UNIX 的地址空间包括:一个代码段(不可变)、一个堆
(用来存放数据,可以向高端扩展)、一个栈(可以向低端扩
展)。
代码段 堆 栈
2、 域的属性
范围(起始地址及大小)
线程对该域的读/写/执行权限
是否可以向上、下扩展
域之间由不可访问的虚存区域分开
域是一段连续的虚拟内存,可以被对应进程的线程访问。
3、 域扩张
域之间所留的不可访问的虚存将用于该域向上、向下扩
展。显然,这种扩展是非常有限的。
4、 多域问题
使用不确定数目的域,可以实现如下功能
a) 任意(类型)的文件都可以映射到地址空间中——当
作字节数组用
b) 允许一个进程中的每个线程分配其自己的栈域,这便
于线程监视自己的栈(溢出、栈增长控制)——也就
是将一个进程的不同线程的私有工作区放在各自独立
的域中
3
c) 提供进程间、进程与内核间的共享——一个域同时作
为多个地址空间中的域(实际上,将对应同一快内存)
——被称为共享域
5、 共享域的作用
a) 存放库:库非常大,装入共享域,以节省内存、减少
装入代价
b) 内核,被映射到同一机器的不同地址空间,以实现共
享。
c) 数据共享与通信:一种高效的通信
二、 创建新进程
1、 所需工作
a) 选择一个目标机
文档评论(0)