【操作系统】三、进程描述和控制

3.1什么是进程

3.1.1定义

程序:就是一个指令序列

由于早期的计算机只支持单道程序,引入多道程序技术后,为了方便操作系统管理,完成各程序并发执行,引入了进程,进程实体的概念

系统为每个运行的程序配置一个数据结构,称为进程控制块PCB,用来描述进程的各种信息。

3.2组成

进程(进程实体)由程序段、数据段和PCB三部分组成

3.2.1PCB

i:进程描述信息:由进程标识符PID(身份证号),用户标识符UID(表示进程所属的用户)

ii:进程控制和管理信息:由进程当前状态和进程优先级组成

iii:资源分配清单:由程序段指针,数据段指针,键盘和鼠标等构成

iv:处理机相关信息:由各种寄存器值,例如PC,IR构成

进程的管理者(操作系统)所需的数据都在PCB中

3.2.2程序段

程序段存放要执行的代码

3.2.3数据段

存放程序运行过程中处理的各种数据

3.3进程的组织

即用适当的方式把PCB组织起来

3.3.1链接方式

即按照进程状态将PCB分为多个队列

操作系统持有指向各个队列的指针

执行指针指向当前处于运行态的进程

就绪队列指针指向当前处于就绪态的进程(通常会把优先级高的进程放在队头)

阻塞队列指针指向当前处于阻塞态的进程,很多操作系统还会根据阻塞原因不同再分为多个阻塞队列

3.3.2索引方式

根据进程状态的不同,建立几张索引表

操作系统持有指向各个索引表的指针

3.4进程的特征

进程和程序是两个截然不同的概念,相比于程序,进程拥有以下特征:

动态性:进程是程序的一次执行过程,是动态的产生、变化和消亡的

并发性:内存中有多个进程实体,各进程可并发执行

独立性:进程是能独立运行、独立获得资源、独立接受调度的基本单位

异步性:各进程是各自独立的、不可预知的速度向前推进,操作系统要提供“进程同步机制”来解决异步问题

结构性:每个进程都会配置一个PCB,结构上看,进程由程序段,数据段,PCB组成

3.5进程的状态与转换

3.5.1三种基本状态

运行态(Running):占有CPU,并在CPU上运行

就绪态(Ready):已经具备运行条件,但由于没有空闲CPU,而不能运行

阻塞态(Waiting/Blocked):因等待某一事件而不能运行

3.5.2另外两种状态

创建态(New):进程正在被创建,操作系统为进程分配资源,初始化PCB

终止态(Terminated):进程正在从系统中撤销,操作系统会回收进程进程拥有的资源,撤销PCB

3.5.3进程状态的转换

进程可能的状态转换如下:

空-新建,新建-就绪,就绪-运行,运行-退出,运行-就绪,运行-阻塞,阻塞-就绪,就绪-退出,阻塞-退出 

3.6进程控制

即实现进程状态转换

3.6.1用原语实现进程控制

特点:执行期间不允许中断

原语采用“关中断指令”和“开中断指令”实现

原语运行在核心态

无论哪个原语,要做的无非三类事情:

1.更新PCB中的信息(如修改进程状态标志,将运行环境保存到PCB,从PCB中恢复运行环境)

a.所有的进程控制原语一定都会修改进程状态标志

b.剥夺当前运行进程的CPU使用权必然需要保存其运行环境

c.某进程开始运行前必然要恢复期运行环境

2.将PCB插入合适的队列

3.分配/回收资源

3.7进程通信

3.7.1定义

指进程之间的信息交换

为了保证安全,一个进程不能直接访问另一个进程的地址空间

3.7.2通信方法

3.7.2.1共享存储

两个进程共享同一个存储空间来通信,两个进程对共享空间的访问必须是互斥的

3.7.2.2管道通信

管道是指用于连接读写进程的一个共享文件,又名pipe文件,其实就是在内存中开辟一个大小固定的缓冲区。

管道只能采用单向的传输,两个进程必须互斥的访问

3.7.2.3消息传递

进程间的数据交换以格式换的消息为单位,进程通过操作系统提供的“发送消息/接受消息”两个原语进行数据交换。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

噶炜123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值