一,进程是由伪处理机执行的一个程序吗?
进程:并发执行的程序在执行过程中分配和管理资源的基本单位。
也可以如下定位:
1,进程是可以并发执行的计算部分。
2,进程是一个独立的可以调度的活动。
3,进程是一抽象实体,当它执行某个任务时,将要分配和释放各种资源。
4,程序在处理机上执行时的活动称为进程。
5,一个进程是一系列逐一执行的操作。
二,比较进程和程序的区别
进程和程序是两个既有联系又有区别的概念,其区别和关系简述如下:
1,进程是一个动态概念,而程序则是一个静态概念。程序是指令的有序集合,而进程则强调执行过程,它动态地被创建,被调度执行后消亡。
2,进程具有并发特征,而程序没有。进程具有独立性和异步性,而程序不反应执行过程。
3,进程是竞争计算机系统资源的基本单位,其并发性受到系统的制约。
4,不同的进程可以包含同一程序,只要该程序所对应的数据集不同。
三,程序的并发执行将导致最终结果失去封闭性?
程序中任一语句S划分为两个变量的集合R(S)和W(S)。其中,R(S)在执行期间必须对其进行读的变量;W(S)是语句S在执行期间必须对其进行修改的变量。
如果对于语句S1和S2,有:
R(S1) & R(S2) = Null
W(S1) & R(S2) = Null
W(S1) & W(S2) = Null
如果同时成立,则语句S1 和 S2是可以并发执行的。
四,作业和进程的区别
作业:被看作用户向计算机提交任务的任务实体,例如一次计算,一个控制过程等。反过来,进程则是计算机为了完成用户任务实体而设置的执行实体,是系统分配资源的基本单位。
系统必须为一个作业创建一个根进程。然后,在执行作业控制语句时,根据任务要求,系统或根进程为其创建相应的子进程,最后,为各子进程分配资源和调度各子进程执行以完成作业要求的任务。
五,临界区
把不允许多个并发进程交叉执行的一段程序称为临界部分或临界区。
临界区是由属于不同并非进程的程序段共享公用数据或公用数据变量而引起的,临界区不可能用增加硬件的方法来解决。因此临界区也可以称为访问公用数据的那段程序。
六,并发间的制约
并发程序的制约主要分为两种间接制约和直接制约
间接制约:由于共享某一公有资源而引起的在临界区内不允许并发进程交叉执行的现象,称为由共享公有资源而造成的对并发进程执行速度的间接制约。
直接制约:一组在异步环境下的并发进程,各自在执行结果互为对方的执行条件,从而限制各进程的执行速度的过程称为并发进程的直接制约。
七,互斥和同步
互斥:一组并发进程中的一个或多个程序段,因共享某一公有资源而导致它们必须以一个不允许交叉执行的单位执行。也就是不允许两个以上共享该资源的并发进程同时进入临界区成为互斥。
同步:把异步环境下的一组并发进程,因直接制约而互相发送消息而进行互相合作,互相等待,使得各进程按一定的速度执行的过程称为进程间的同步。
八,P V原语法和加锁法实现进程互斥的区别
加锁互斥的实现如下:
lock(key[s])
<临界区>
unlock(key[s])
P V原语实现互斥如下:
P(sem)
<临界区>
V(sem)
P V原语解决了加锁实现进程间互斥,对系统可靠性和执行效率的影响。一组并发进程的进程数较多,且每个进程在申请进入临界区时都得对锁定位进行测试,这种开销很大。
锁实现进程间互斥时,还将导致某些情况下的不公平现象。
九,生产者和消费者
各生产者进程使用的过程deposit(data) ,各消费者使用过程remove(data)。
生产者和消费者之间满足如下条件:
1,消费者想接收数据时,有界缓冲区中至少有一个单元是满的;
2,生产者想发送数据时,有界缓冲区中至少有一个单元是空的。
deposit(data):
begin
P(avail)
P(mutex)
送数据入缓冲区单元
V(full)
V(mutex)
end
remove(data)
begin
P(full)
P(mutex)
取缓冲区中某单元数据
V(avail)
V(mutex)
End
公有信号量mutex保证生产者进程和消费者进程之间的互斥,avail为生产者进程的私有信号量,信号量full为消费者进程的私有信号量。avail:表示有界缓冲区中的空单元数,初值为n;full:有界缓冲区中非空单元数,初值为0;mutex表示有界缓冲区的个数,初值为1。
十,进程通信
单机进程间通信的方式:主从式,会话式,消息或邮箱机制,共享存储区方式。
主从式:主进程可自由地使用从进程的资源或数据;从进程的动作受主进程的控制;主进程和从进程的关系是固定的。典型例子:终端控制进程和终端进程。
会话式:进程双方分别为使用进程和服务进程。使用进程调度服务进程提供的服务。具有如下特点:
1,使用进程在使用服务进程所提供的服务之前,必须得到服务进程的许可;
2,服务进程根据使用进程的要求提供服务,但对所提供服务的控制由服务进程自身完成;
3,使用进程和服务进程在进行通信时有固定的连接关系。
典型例子:我们使用第三方的接口比如调用墨迹天气,天眼查接口都是这种方式。
消息或邮箱机制:
1,只要存在空缓冲区或邮箱,发送进程就可以发送消息。
2,与会话系统不同,发送进程和接收进程之间无直接连接关系,接收进程可能在收到某个发送进程发来消息消息之后,又转去接收另一个发送进程发来的消息。
3,发送进行和接收进程之间存在缓冲区或邮箱用来存放被传送消息。
典型例子:线程池,目前的消息队列kafka,mq等等
共享存储区方式:两个需要互相交换信息的进程通过对同一共享数据区的操作来达到互相通信的目的。
消息缓冲 P V实现机制
send(m):
begin
向系统申请一个消息缓冲区
P(mutex)
将发送区消息m送入新申请的消息缓冲区
把消息缓冲区挂入接收进程的消息队列
V(mutex)
V(SM)
end
receive(m):
begin
P(SM)
P(mutex)
摘下消息队列中的消息m
将消息m从缓冲区复制到接收区
释放缓冲区
V(mutex)
end
十一,线程和进程的区别
为了减少进程切换和创建开销,提高执行效率和节省资源,在操作系统中引进了“线程”的概念。
进程是系统中所有资源分配时的基本单位,拥有一个完整的虚拟地址空间,独立存在。
线程是进程的一部分,它没有自己的地址空间,它和进程内的其它进行一起共享分配给该进程的所有资源。
网友评论