进程

进程

程序:一个指令序列

PCB(进程控制块):描述进程的各种信息(如程序代码存放位置)

进程实体(进程映像)(简称进程)

PCB
程序段
数据段(程序运行时使用、产生的运算数据,如全局变量、局部变量、宏定义的常量就存放在数据段内)

创建进程实质是创建进程实体中的PCB
撤销进程实质是撤销进程实体中的PCB

进程定义

(1)进程是程序的一次执行过程

(2)进程是一个程序及其数据在处理机上顺序执行时所发生的活动

(3)进程是具有独立功能的程序在数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位

进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位
(进程实体是静态的,进程则是动态的)

进程的组成

PCB是进程存在的唯一标志

进程描述信息
进程标识符PID
用户标识符PID

进程控制和管理信息
进程当前状态
进程优先级
(进程的管理者(操作系统)所需的数据都在PCB中)

资源分配清单
程序段指针
数据段指针
键盘
鼠标

处理机相关信息:各种寄存器值

程序段:存放要执行的代码

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

进程的组织方式

链接方式
按照进程状态将PCB分为多个队列
操作系统持有指向各个队列的指针

索引方式
根据进程状态的不同,建立几张索引表
操作系统持有指向各个索引表的指针

进程的特征

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

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

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

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

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

进程状态

1.创建状态
进程由创建而产生。创建进程是一个非常复杂的过程,一般需要通过多个步骤才能完成:如首先由进程申请一个空白的进程控制块(PCB),并向PCB中填写用于控制和管理进程的信息;然后为该进程分配运行时所必须的资源;最后,把该进程转入就绪状态并插入到就绪队列中。

2.就绪状态
这是指进程已经准备好运行的状态,即进程已分配到除CPU以外所有的必要资源后,只要再获得CPU,便可立即执行。如果系统中有许多处于就绪状态的进程,通常将它们按照一定的策略排成一个队列,该队列称为就绪队列。有执行资格,没有执行权的进程。

3.运行状态
这里指进程已经获取CPU,其进程处于正在执行的状态。对任何一个时刻而言,在单处理机的系统中,只有一个进程处于执行状态而在多处理机系统中,有多个进程处于执行状态。既有执行资格,又有执行权的进程。

4.阻塞状态
这里是指正在执行的进程由于发生某事件(如I/O请求、申请缓冲区失败等)暂时无法继续执行的状态,即进程执行受到阻塞。此时引起进程调度,操作系统把处理机分配给另外一个就绪的进程,而让受阻的进程处于暂停的状态,一般将这个暂停状态称为阻塞状态

5.终止状态
进程的终止也要通过两个步骤:首先,是等待操作系统进行善后处理,最后将其PCB清零,并将PCB空间返还给系统。当一个进程到达了自然结束点,或是出现了无法克服的错误,或是被操作系统所终结,或是被其他有终止权的进程所终结,它将进入终止状态。进入终止态的进程以后不能在再执行,但是操作系统中任然保留了一个记录,其中保存状态码和一些计时统计数据,供其他进程进行收集。一旦其他进程完成了对其信息的提取之后,操作系统将删除其进程,即将其PCB清零,并将该空白的PCB返回给系统。
在这里插入图片描述
进程控制的主要功能是对系统中的所有进程实施有效的管理,它具有创建新进程、撤销已有进程和实现进程状态转换等功能

用原语实现进程控制,原语的特点是执行期间不允许中断,只能一气呵成

这种不可被中断的操作即原子操作

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

原语功能:
更新PCB中的信息
将PCB插入合适的队列
分配/回收资源

关中断指令
原语指令1
原语指令2
开中断指令
代码3
代码4

进程通信

1.共享存储(设置一个共享空间,要互斥地访问共享空间)
基于数据结构的共享(低级)
基于存储区的共享(高级)

2.消息传递
直接通信方式
间接通信方式(通过信箱访问)

3.管道通信
设置一个特殊的共享文件(管理),即缓冲区,一个管道只能实现半双工通信,实现双向同时通信要建立两个管道,各进程要互斥访问管道;写满时,不能再写。读完时,不能再读;没写满,不能读。没读完,不能写。

进程通信就是指进程之间的信息交换

进程是分配系统资源的单位(包括内存地址空间),因此各进程拥有的内存地址空间相互独立。

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

线程是一个基本的CPU执行单元,也是程序执行流的最小单位。

引入线程之后,不仅是进程之间可以并发,进程内的各线程之间也可以并发,从而进一步提升了系统的并发度,使得一个进程内也可以并发处理各种任务。

引入线程后,进程只作为除CPU之外的系统资源的分配单元。

线程的属性:线程是处理机调度的单位,多CPU计算机中,各个线程可占用不同的CPU,每个线程都有一个线程ID,线程控制块(TCB),线程也有就绪、阻塞、运行三种基本状态。线程几乎不拥有系统资源,同一进程的不同线程间共享进程的资源,由于共享内存地址空间,同一进程中的线程切换,不会引起进程切换,不同进程中的线程切换,会引起进程切换,切换同进程内的线程,系统开销很小。

线程是处理机调度的单位,进程是资源分配的单位。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值