操作系统原理第四章(并发处理)

一、并发活动

       顺序执行程序的特点:

             顺序性、封闭性(一旦开始执行,结果不受外界影响)、可再现性(结果与执行速度、时间无关)

       并发程序的特点:

             失去程序的封闭性、程序与计算不在一一对应、程序并发执行的相互制约

二、进程:程序在某个数据集合上的一次运动活动(数据集合:软硬件环境,多个进程共存/共享的环境)

       1. 进程的特征:动态性、并发性、异步性、独立性

          进程与程序的区别:进程是动态的,程序的一次执行过程,程序时静态的,一组指令的有序集合;

                                        进程是暂存的,在内存驻留,程序时长存的,在介质上长期保存;

                                        一个程序可能有多个进程,一个进程也可能涉及多个程序;

         进程的类型:系统进程,系统内核相关进程/用户进程,运行于用户态的进程;

                              偏CPU进程,计算型进程/偏IO进程,侧重于I/O进程

         进程的状态:  运行状态(进程已经占有CPU,在CPU上运行)

                             就绪状态(具备运行条件,但由于无CPU暂时不能运行)

                             阻塞(等待   )状态(因为等待某项服务完成或者信号来到而不能运行)

        进程控制块(进程描述器,PCB):描述进程状态、资源、和相关进程的关系的一种数据结构,是进程的标志

                              基本成员:name(进程名称,标识符)、status(状态)、next(指向下一个PCB的指针)、                                                            start_addr(程序地址)、priority(优先级)、cpu_status(现场保留区,堆栈)、

                                        comm_info(进程通信机制)、process_family(家族)、own_resource(资源)

        2.线程:是进程中的一条执行路径;

                     有自己私用的堆栈和处理机执行环境;

                     共享分配给父进程的主存;

                      单个进程可创建许多个同时存在的线程。

         线程的特点:相对进程而言,线程的创建和管理的开销要小得多;

                             在进程内创建多个线程,可以提高系统的并行处理能力

         线程的状态:创建、就绪、运行、等待、终止

                  用户线程是在内核的支持下,在用户层通过线程库实现的;系统线程由操作系统直接支持

三、进程控制:在进程生存全期间,对其全部行为的控制

      1.进程创建:创建一个具有指定标识的进程

                     创建一个空白的PCB——>赋予进程标识符(ID)——>为进程分配空间——>初始化PCB(默认值)——>插入相应的队列(新进程插入就绪队列)

      2.进程撤销:撤销一个指定的进程,收回其占有的资源,撤销其PCB

                         正常结束、异常结束、外界干预

                         在PCB队列中检索出该PCB;获取其状态;若处于运行状态,立即终止(递归检查是否有子进程,先撤销子进程);释放进程占有的资源;将进程从PCB队列中移除

       3.进程阻塞:停止进程的执行,变为阻塞

                          请求系统服务、启动某种操作、新数据尚未到达、无新工作可做

                          停止运行;将PCB“运行态”改为“阻塞态”;插入相应原因的阻塞队列;转调度程序

        4.进程唤醒:唤醒处于阻塞队列当中某个进程

                          系统服务由不满足转为满足、IO完成、新数据到达、进程提出新的请求

         5.进程控制原语:

                          原语:由若干指令构成的具有特定功能的函数,具有原子性,其操作不可分割

                          创建原语、撤销原语、阻塞原语、唤醒原语  

四、进程间的相互制约关系

        1.进程竞争与合作

                   竞争系统资源:共享系统资源的进程

        2.进程协作: 存在共享数据的进程

                   信息共享、并行处理

        3.进程互斥:

                   临界资源:一次仅允许一个进程使用的资源

                   临界区:在每个进程中,访问临界资源的那段程序从概念上分离出来,称为临界区(临界段)

                       当有若干进程欲进入它的临界区时,应在有限时间内使进程进入临界区;

                        每次至多有一个进程处于临界区;

                        进程在临界区仅逗留有限时间。

                  互斥:在操作系统中,当某一进程正在访问某一存储区域时,就不允许其他进程来读出或修改该存储区的内容。

      4.同步:并发进程在某些关键点上可能需要相互等待与互通信息

        异步:相互合作的一组进程中,每个进程都可以以各自不同、不可预知的速度向前推进;但他们有需要密切合作,以完成一个共同的任务,即知道彼此的存在和作用。

五、同步机构

      1.锁和上锁、开锁操作

             锁位值:0表示资源可用,1表示资源不可用

             检测锁位值;若原来的值为0,将锁位值置为1;若原来的值为1,则返回再检测锁位值

            上锁原语:lock(w)                  开锁原语:unlock(w)

      2.信号灯和P、V操作

            信号灯:一个确定的二元组(s,q),s是具有非负初值的整型变量,q是一个初始状态为空的队列

            P操作:s值减1;

                        若相减的结果大于或等于0,则进程继续执行;

                        若相减的结果小于0,该进程被封锁,并将它插入该信号灯的等待队列中,然后转进程调度程序

            V操作:s值加1;

                        若相加结果大于0,进程继续执行;

                        若相加结果小与或等于0,则从等待队列中移出一个进程,解除它的等待状态,然后返回本进程继续执行。

六、进程互斥和同步的实现

        1.锁机制:            上锁原语——>进入临界区——>开锁原语

        2.信号灯:                 P——>进入临界区——>V

        3.信号灯及PV操作实现同步

                 合作进程执行次序                         共享缓冲区的合作进程同步

七、进程通信

       1.信箱通信

               信箱位于用户空间中,是接受进程B地址空间中某一个空闲的部分

               缺点:编译器和加载程序必须为每个进程分配信箱空间;

                        接受进程可能覆盖信箱部分内容,从而造成错误。

                在操作系统空间中存放接受进程的信箱,并且信息的拷贝是在接受进程发出接受信息的系统调用时进行。   

               缺点:要求操作系统为所有进程分配主存信箱,由于系统空间有限,这可能对通信进程数有所限制。

      2.send和receive原语

               同步send原语:当发送方发送一个信息后,将会阻塞发送进程,知道接受进程成功接受到信息。

               异步send原语:将发送信息传导接受进程的信箱后,允许发送进程继续运行,而不必等待接受方真正读取这一消息。

               阻塞receive原语:当一个进程调用receive时,如果信箱中没有信息,该进程就会被挂起,直到有消息放入信箱中;若有消息,则立即获取一个消息并返回

                非阻塞receive原语:若信箱有消息,就返回消息;若没有,就返回一个表示没有可用消息的标志,控制立即返回调用进程。





                   

                          

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

乘风xs

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

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

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

打赏作者

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

抵扣说明:

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

余额充值