进程及其状态模型和进程结构和线程

进程和程序
进程是动态的,程序是静态的:程序是有序代码的集合;进程是程序的执行。
进程是暂时的,程序是永久的:进程是一个状态变化的过程,程序可长久保存。
进程与程序的组成不同:进程的组成包括程序、数据和进程控制块(PCB)
进程与程序的对应关系:通过多次执行,一个程序可对应多个进程;通过调用关系,-一个进程可对应多个程序。
为什么要引入进程
现代操作系统的两个基本特征:并发共享
引入进程的概念,来描述程序的执行过程
进程是操作系统调度的基本单位,也是系统资源分配的基本单位。
进程的结构:程序、数据、PCB
进程的状态转换
进程的基本状态
进程在系统中的活动规律是:
请添加图片描述
进程的三种基本状态:

运行状态
就绪状态
等待状态(又称阻塞、挂起、睡眠)

进程的基本状态
1、就绪状态(Ready)
存在于处理机调度队列中的那些进程,它们已经准备就绪,一旦得到CPU,就立即可以运行,这些进程所取的状态为就绪状态。(有 多个进程处于此状态)
2、运行状态(Running)
当进程由调度/分派程序分派后,得到CPU控制权,它的程序正在运行,该进程所处的状态为运行状态。(在系统中, 总只有一个进程处于此状态)
3、等待状态(Wait)
若一个进程正在等待某个事件的发生(如等待I/0的完成),而暂停执行这时,即使给它CPU时间, 它也无法执行,则称该进程处于等待状态。
进程的三种基本状态
1)就绪状态
2)执行状态
3)阻塞状态
请添加图片描述
请添加图片描述
进程的五种状态模型
①新建状态
②就绪状态
③执行状态
④阻塞状态
⑤终止状态
请添加图片描述
请添加图片描述
请添加图片描述
挂起状态
由于系统资源有限,如果不断创建新进程,当系统内存资源不能满足进程运行要求时,必须把某些进程对换磁盘对换区中,这时进程处于挂起状态
进程的七状态模型
进程状态的转换
(1)活动就绪→静止就绪。
(2)活动阻塞→静止阻塞。
(3)静止就绪→活动就绪。
(4)静止阻塞→活动阻塞。
区分:阻塞:等待事件完成。挂起:对换到外存。
请添加图片描述
请添加图片描述
进程的结构
进程由三部分组成:程序、数据及进程控制块PCB
(1)进程的程序:描述进程所要完成的功能( 部分程序代码)。
(2)数据结构集:是程序在执行时必不可少的工作区和操作对象。
(3)进程控制块PCB:包含了有关进程的描述信息、控制信息、资源信息以及现场信息。
一个进程的PCB结构全部或部分常驻内存的。
为了节省内存,常将(1).(2) 两部分内容放在外存中,直到该进程执行时再调入内存。
请添加图片描述
请添加图片描述
请添加图片描述
进程控制块的组织方式
1)链接方式
请添加图片描述
2)索引方式.
请添加图片描述
进程描述
进程存在意味着:

进程控制块PCB (数据结构) ;
进程的执行程序(- 一个可执行文件) ;
处于某种状态(运行、就绪、等待) ;
进程位于某个队列(就绪、等待某事件队列);
占用某些系统资源(内存,打开某些文件、处理机、外设)

进程上下文切换
进程上下文(context):
包括进程的状态变量数据结构的值硬件寄存器的值PCB以及有关程序等。
进程的执行是在其上下文中执行。当正在执行的进程由于某种原因要让出处理机时,系统要做进程上下文切换,以使另-一个进程得以执行。
CPU Switch From Process to Process
请添加图片描述
问题的提出
现代操作引入多进程是为了提升资源使用效率,进程并发成都高,资源利用率高。
每个进程都拥有自己的数据段、代码段和堆栈段,这就造成进程在进行创建、切换、撤销操作时,需要较大的系统开销。
怎样解决这个问题?
解决思路
进程具有二个基本属性:
是一个拥有资源的独立单位:它可独立分配虚地址空间、主存和其它又是一个可独立调度和分派的基本单位
这二个基本属性使进程成为并发执行的基本单位
在一些早期的OS中,比如大多数UNIX系统、Linux等, 进程同时具有这二个属性。
解决方法
资源拥有单位称为进程
调度的单位称为线程、又称轻进程(light weight process)
线程只拥有一点儿在运行中必不可少的资源(程序计数器、一组寄存器和栈),但它可与同属-一个进程的其它线程共享进程拥有的全部资源。
进程和线程的构造
请添加图片描述
线程的内存布局
请添加图片描述
Benefits
(1)Responsiveness响应度高
响应度高: 一个多线程的应用在执行中,即使其中的某个线程阻塞,其他的线程还可继续执行,从而提高响应速度
(2)Resource Sharing资源共享
资源共享:同一进程的多个线程共享该进程的内存等资源
(3)Economy经济性
经济性:创建和切换线程的开销要低于进程。比如,Solaris中进程创建时间是线程创建的30倍,进程切换时间是线程切换的5倍。
(5)Utilization of MP ArchitecturesMP体系结构的运用
MP体系结构的运用:多线程更适用于多处理机结构。
线程的实现
多线程的实现分为三类:内核级线程、用户级线程、组合方式
内核级线程:由内核直接支持,他们的创建、撤消和切换等,都是依靠内核实现的

内核维护进程和线程的上下文信息
线程切换由内核完成

线程的实现
用户级线程:在用户层,通过用户及的线程库管理,线程库提供对线程创建、调度和管理的支持。

内核不知道线程的存在
用户线程的切换不需要内核特权,所有线程管理的数据均在用户空间中。
可以节省模式转换开销和内核的宝贵资源。

线程的实现
组合方式

把用户级线程和内核支持线程两种方式进行组合。
内核支持内核线程的建立、调度和管理,同时也允许用户应用程序建立、调度和管理用户级线程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值