精华内容
下载资源
问答
  • OS之进程同步

    2018-12-29 18:07:11
    为了使这个过程更加高效,我们在这两个之间设置具有n个缓冲区的缓冲池 生产者进程和消费者进程以异步方式运行,但又必须保持同步 消费者进程向空缓冲区去产品 生产者进城也不向满缓冲区放产品  ...

    临界资源

    一段时间内只允许一个进程访问的资源

    生产者与消费者问题

    一开始的问题是生成一个产品就必须取走才能再生产
    为了使这个过程更加高效,我们在这两个之间设置具有n个缓冲区的缓冲池
    生产者进程和消费者进程以异步方式运行,但又必须保持同步
    消费者进程不能向空缓冲区去产品
    生产者进城也不能向满缓冲区放产品

     

    展开全文
  • 一、单选题 (题数:15,共 60.0 分) ...为了使两个进程能同步运行,最少需要( )个信号量。 (4.0分)4.0 分 A、 1 B、 2 C、 3 D、 4 正确答案: B 我的答案:B 3并发进程执行时可能会出现与时间有关的错误...

    一、单选题 (题数:15,共 60.0 分)
    1
    若信号量S的初值为2,当前值为-1,则表示有( )个等待进程。

    (4.0分)4.0 分
    A、
    0

    B、
    1

    C、
    2

    D、
    3

    正确答案: B 我的答案:B
    2
    为了使两个进程能同步运行,最少需要( )个信号量。

    (4.0分)4.0 分
    A、
    1

    B、
    2

    C、
    3

    D、
    4

    正确答案: B 我的答案:B
    3并发进程执行时可能会出现与时间有关的错误,这种错误是与( )无关的。(4.0分)4.0 分
    A、
    使用共享资源
    B、
    进程被打断的时间
    C、
    进程占用处理器的总时间
    D、
    进程交替执行的次序
    正确答案: C 我的答案:C
    4有甲、乙两道算题,每道需执行1小时(其中处理器的工作时间为12分钟)。若它们在多道系统中执行,甲、乙两道题总共需执行80分钟,则处理器的利用率为( )。(4.0分)4.0 分
    A、
    50%
    B、
    40%
    C、
    30%
    D、
    20%
    正确答案: C 我的答案:C
    5在下述关于父进程和子进程的叙述中,正确的是( )。(4.0分)4.0 分
    A、
    父进程创建了子进程,因此父进程执行完了,子进程才能运行
    B、
    子进程执行完了,父进程才能运行
    C、
    撤消子进程时,应该同时撤消父进程
    D、
    撤消父进程时,应该同时撤消子进程
    正确答案: D 我的答案:D
    6
    进程从等待状态转到就绪状态的原因可能是( )。

    (4.0分)4.0 分
    A、
    请求I/O

    B、
    I/O完成

    C、
    被进程调度程序选中

    D、
    另一个进程运行结束

    正确答案: B 我的答案:B
    7有关进程的下列叙述中,( )是正确的。(4.0分)4.0 分
    A、
    进程是静态的文本
    B、
    进程与程序是一一对应的
    C、
    进程与作业是一一对应的
    D、
    多个进程可以在单个CPU上同时执行
    正确答案: D 我的答案:D
    8
    并发进程相互之间( )。

    (4.0分)4.0 分
    A、
    必须通信

    B、
    可以有交往也可无关

    C、
    一定会竞争共享资源

    D、
    相互间一定要同步

    正确答案: B 我的答案:B
    答案解析:

    9操作系统中,资源分配的基本单位是( )。(4.0分)4.0 分
    A、
    进程
    B、
    线程
    C、
    作业
    D、
    程序
    正确答案: A 我的答案:A
    10信箱通信是一种( )通信方式。(4.0分)4.0 分
    A、
    直接
    B、
    间接
    C、
    低级
    D、
    信号量
    正确答案: B 我的答案:B
    11有关PV操作的说法中( )是错误的。(4.0分)4.0 分
    A、
    “PV操作不仅是进程互斥的有效工具,而且是简单方便的同步工具”
    B、
    “PV操作不能实现进程间通信”
    C、
    “进程调用P操作测试自己所需的消息是否到达”
    D、
    “进程调用V操作向其它进程发送消息”
    正确答案: B 我的答案:B
    12
    在引入线程的操作系统中,把( )作为调度和分派的基本单位,而把( )作为资源拥有的基本单位。

    (4.0分)4.0 分
    A、
    进程 线程

    B、
    程序 线程

    C、
    程序 进程

    D、
    线程 进程

    正确答案: D 我的答案:D
    答案解析:

    13设有三个进程共享一个资源,如果每次只允许一个进程使用该资源,则用PV操作管理时信号量S的可能取值是( )。(4.0分)0.0 分
    A、
    1,0,-1,-2
    B、
    2,0,-1,-2
    C、
    1,0,-1
    D、
    3,2,1,0
    正确答案: A 我的答案:C
    14进程和程序的本质区别是( )。(4.0分)4.0 分
    A、
    存储在内存和外存
    B、
    顺序和非顺序执行机器指令
    C、
    分时使用和独占使用计算机资源
    D、
    动态和静态特征
    正确答案: D 我的答案:D
    15如果单CPU系统中有n个并发进程,则就绪队列中进程个数最多可达( )个。(4.0分)4.0 分
    A、
    n
    B、
    n-1
    C、
    n-2
    D、
    1
    正确答案: B 我的答案:B
    二、判断题 (题数:10,共 30.0 分)
    1消息缓冲是一种直接通信方式,也是一种高级通信。(3.0分)3.0 分
    正确答案: √ 我的答案: √
    2当一个进程从等待态变为就绪态,则可能有一个进程从就绪态变成执行态。(3.0分)3.0 分
    正确答案: √ 我的答案: √
    3程序的封闭性和可再现性使得系统管理很简单,程序编制调试很容易,从而大大提高了资源的利用率。(3.0分)3.0 分
    正确答案: × 我的答案: ×
    4进程的同步与互斥是其两种基本状态。(3.0分)3.0 分
    正确答案: × 我的答案: ×
    5在单处理机系统中,处于执行状态的进程有一个。(3.0分)3.0 分
    正确答案: × 我的答案: ×
    6原语是一种不可分割的操作,在系统态下执行,常驻内存。(3.0分)3.0 分
    正确答案: √ 我的答案: √
    7进程是程序的一次执行,进程由程序和数据二部分组成。(3.0分)3.0 分
    正确答案: × 我的答案: ×
    8并行处理既与硬件性能有关又与软件有关。(3.0分)3.0 分
    正确答案: √ 我的答案: √
    9临界区是指进程中用于实现进程互斥的那段代码,为了实现进程互斥地进入自己的临界区,更多的是在系统中设置专门的同步机构来协调进程间的运行。(3.0分)3.0 分
    正确答案: √ 我的答案: √
    10信号量机制是一种有效的实现进程同步与互斥的工具。信号量只能由P、V操作来改变。(3.0分)3.0 分
    正确答案: × 我的答案: ×
    三、填空题 (题数:1,共 10.0 分)
    1
    某庙寺有小和尚、老和尚若干。有一水井和一个水缸,由小和尚提水入缸供老和尚饮用。水缸可容纳15桶水,水取自同一井中。水井很窄,每次只能容一个水桶打水。水桶总数为5个。每次入水、取水仅为1桶水,且不可同时进行。试用一种信号量机制,写出小和尚和老和尚入水、取水的活动过程。

    答案解析:设互斥信号量pail,表示水桶资源的数目,初值为5;设互斥信号量mutex,表示小和尚、老和尚对水井和水缸的互斥使用,初值为1;设同步信号量empty,表示水缸能容纳水的桶数,初值为15;设同步信号量full,表示水缸已经容纳水的桶数,初值为0。则采用信号量机制写出小和尚和老和尚入水、取水的活动过程如下:

    semaphore S,mutex, empty, full;

    pail=5;

    mutex=1;

    empty=15;

    full=0;

    void main()

    {

    cobegin
    
     小和尚i()   // (i=1, 2, ... , m),m个小和尚进程。
    
     老和尚j()   // (j=1, 2, ... , n),n个老和尚进程。
    
    coend
    

    }

    小和尚i() // (i=1, 2, … , m),m个小和尚进程。

    {

    while (1)

    { P(pail);

     (【1】); 
    
     (【2】); 
    
      从水井取水,倒入水缸中;
    
      V(mutex);
    
      V(full);
    
     (【3】); 
    
    }
    

    }

    老和尚j() // (j=1, 2, … , n),n个老和尚进程。

    {

    while (1)

    { P(pail);

    (【4】); 
    
     P(mutex);
    
     从水缸中取一桶水;
    
     V(mutex);
    
    (【5】); 
    
     V(pail);
    
     饮用水;
    
    }
    

    }

    请分别在五个空白处填写正确的P操作或V操作。

    (注意:P和V字母需要用大写字母,圆括号使用英文半角输入方式书写,信号量与题目所定义的信号量保持一致。)

    比如填上答案为:P(pail),V(pail)

    (10.0分)10.0 分
    正确答案

    第一空:
    P(empty)

    第二空:
    P(mutex)

    第三空:
    V(pail)

    第四空:
    P(full)

    第五空:
    V(empty)

    我的答案:

    第一空:
    P(empty)

    第二空:
    P(mutex)

    第三空:
    V(pail)

    第四空:
    P(full)

    第五空:
    V(empty)

    展开全文
  • 目的:为了保证多个进程能有条不紊地运行,在多道程序系统中,必须引入进程同步机制。 主要任务:对多个相关进程在执行次序上进行协调,使并发执行的诸进程之间能按照一定的规则(或时序)共享系统资源,并能很好地...

    进程同步

    一、基本概念

    目的:为了保证多个进程能有条不紊地运行,在多道程序系统中,必须引入进程同步机制。

    主要任务:对多个相关进程在执行次序上进行协调,使并发执行的诸进程之间能按照一定的规则(或时序)共享系统资源,并能很好地相互合作,从而使程序的执行具有可再现性。(异步性)

    两种形式的制约关系
       1)间接相互制约关系:多个程序在并发执行时,由于共享系统资源,如CPU、I/O设备(打印机、磁带机)等形成的制约关系。

                                            这些资源必须互斥访问;用户在使用之前,应先提出申请,而不允许用户进程直接使用。

       2)直接相互制约关系:源于进程之间的相互合作。如输入进程A和计算进程B,之间共享一个缓冲区。

    临界资源(Critical Resouce):如打印机、磁带机等,各进程采用互斥方式,实现对这种资源的共享。

    临界区(critical section):在每个进程中访问临界资源(共享资源)的那段代码称为临界区。

           

     每个进程进入临界区之前,先对欲访问的临界资源进行检查,看它是否正在被访问。未被访问,则可进入,并设置它正被访问的标志,否则不能进入。把这段代码称为进入区(entry section);相应地,在临界区后面也要加上一段退出区(exit section)的代码,用于将临界区正被访问的标志恢复为未被访问的标志。

    同步机制应遵循的规则:(软件方法)

    1)空闲让进:无进程处于临界区时,即临界资源处于空闲状态,可以进入;

    2)忙则等待:已有进程处于临界区时,即临界资源正被访问,必须等待,实现互斥访问;

    3)有限等待:在有限的时间内,进入自己的临界区,以免陷入“死等”状态;

    4)让权等待:进程不能进入自己的临界区时,必须释放处理机,以免陷入“忙等”(“饥饿”)状态。

    二、硬件同步机制

    1.关中断:进程在临界区执行期间,系统不响应中断。问题:中断滥用

    2.利用Test-and-Set指令实现互斥

    3.利用Swap指令实现进程互斥:循环进程。当临界资源忙碌时,访问进程不断进行测试,处于“忙等”,不符合“让权等待”。

    三、信号量机制

    P、V操作(低级进程通信原语)在同步互斥中的作用:

    在同步问题中,若某个行为要用到那个资源,那么在那个行为前面P那个资源一下;若某个行为会提供某种资源,则在那个行为后面V那个资源一下。

    在互斥问题中,P、V操作要紧紧夹着使用互斥资源的那个行为,中间不能有其他冗余的代码。

     

    1.整型信号量:P、V操作;定义一个表示资源数目的整型量S

                           当S<=0时,不断进行测试,违反“让权等待”原则。

    2.记录型信号量:在整型信号量的基础上,增加了一个进程链表指针list,用于链接上述所有等待进程。

                            当S<=0时,进行自我阻塞,放弃处理机,插入等待进程,遵循“让权等待”。

    3.AND型信号量:将进程在整个运行过程中需要的全部资源,一次性全部地分配给进程,带进程使用完后再一起释放。

                            对若干个临界资源的分配采取原子操作方式,要么把它所请求的资源全部分配给进程,要么一个也不分配。

                            由死锁理论,上述方法可避免死锁。

    4信号量集:对AND信号量机制加以扩充,对进程所申请的所有资源以及每类资源不同的资源需求量,在一次P、V原语操作中完成                       申请及释放。

    四、信号量的应用

    1.实现进程同步

    2.实现进程互斥

    3.实现前驱关系

    五、管程机制

    有关硬件及软件资源,一般用数据结构抽象地描述其资源特性,即用少量信息和对资源所执行的操作来表征该资源,而忽略内部结构和实现细节。

    管程是由一组数据及定义在这组数据之上的对这组数据的操作组成的软件模块(类似于抽象类)。这组操作能初始化并改变管程中的数据和同步进程。

    管程的基本特性:

                 1)局部于管程的数据只能被局部于管程内的进程所访问;

                 2)一个进程只有通过调用管程内的过程,才能进入管程访问共享数据;

                 3)每次仅允许一个进程在管程内执行某个内部过程。

    管程是一个语言成分,所以管程的互斥访问完全由编译程序在编译时自动添加,无需程序员关注,而且保证正确。

    管程与进程的区别:

                1)进城定义的是PCB;管程定义的是公共数据结构

                2)进程用于并发执行;管程用于同步与互斥

                3)进程调用管程中的过程

                4)进程能并发;管程不能 

                5)进程具有动态性;管程只是一个资源管理模块

    六、经典同步问题

    1.生产者—消费者问题

    2.哲学家就餐问题

    3.读者—写者问题

    进程通信

    一、基本概念

    1.进程概念

              进程通信是指进程之间的信息交换。P、V是低级的通信方式。

    2.为什么进程之间的通信必须借助OS的内核功能

              每个进程有自己独立的地址空间。在OS和硬件的地址保护机制下,进程无法访问其他进程的地址空间,所以必须借助于              OS的系统调用实现进程之间的通信。

    二、进程通信的类型

    1.共享存储器系统

    相互通信的进程共享某些数据结构或共享存储区。进程之间能够通过这些空间进行通信,需要使用互斥机制(P、V)。

    2.管道通信系统

    所谓“管道”,是指用于连接一个读进程和一个写进程以实现它们之间通信的一个共享文件,又名pipe文件。

    输入进程向管道中以字符流的形式输入,输出进程以字符流的形式从管道取出。

    管道机制必须提供三种协调能力:互斥、同步和确定对方的存在。

    其中的,同步:读进程要求读,但管道为空,则等待写进程写入数据。

                  互斥:读写进程不能同时进行。

    注意:从管道读数据是一次性操作,数据一旦被读取,就从管道中被抛弃,释放空间以便写更多的数据。管道只能采用半双工通信,即某一时刻只能单向传输。要实现父子进程双向互动通信,需要定义两个管道。

    3.消息传递系统

    1)直接通信方式

    进程以格式化的消息(message)为单位,将通信的数据封装在消息中,利用OS提供的一组通信命令(原语),在进程之间直接进行消息传递。

    2)间接通信方式(信箱通信)

    发送进程把消息发送到某个中间实体中,接收进程从中间实体(信箱)中取得消息。该通信方式广泛应用与计算机网络中。

    4.客户机—服务器系统

    主要应用于计算机网络中,主要的实现方法分为三种:套接字、远程过程调用和远程方法调用。

    展开全文
  • 天学习操作系统,发现进程跟线程真的有很复杂的关系,下面我就进程与...引入进程为了使程序并发执行,以提高资源利用率和系统吞吐量。进程之间的关系是相互独立与相互制约。进程同步种关系是,同步和互

    这两天学习操作系统,发现进程跟线程真的有很复杂的关系,下面我就进程与线程的联系及区别总结一下学习到的。

    概念:

    进程:进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。进程是拥有资源和独立调度的基本单位,进程是一个可拥有资源的独立单位,进程能够独立运行。引入进程是为了使多个程序能并发执行,以提高资源利用率和系统吞吐量。进程之间的关系是相互独立与相互制约。进程同步的两种关系是,同步和互斥。

    进程有一个时空开销的弊端(也就是进程之间的切换太过频繁会造成一定的资源浪费)。为了减少程序在并发执行时的时空开销的问题,我们在程序中引用了线程这个概念。也就是说,一个进程能够包含有多个线程。进程之间的地址不共享,线程之间的资源是共享的。同一进程的各个线程可以共享堆栈里面的内容。

     

    线程:

    线程是程序中一个单一的顺序控制流程。进程内一个相对独立的、可调度的执行单元,是系统独立调度和分派CPU的基本单位指运行中的程序的调度单位。在单个程序中同时运行多个线程完成不同的工作,称为多线程。多线程程序的并发性高。

    线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.

     

    进程与线程之间的区别

    1,一个进程里面可以包含多个线程。一个程序至少有一个进程,一个进程至少有一个线程.

    2,进程之间是不共享地址空间的,进程都是拥有独立的地址空间与能偶进行程序运行的资源。同一个进程之间的线程是用的同一个地址空间,共享进程的内存地址空间和资源,多个线程共享进程所拥有的资源。

    3,进程是拥有资源和可独立调度和分派的基本单位,因而进程能够独立运行的基本单位。而线程是作为调度和分派的单位。

    4,其实进程就是一次程序的运行,而线程是程序的一个片段

    5,对进程的管理和控制主要是通过控制原语言实现的

    6,进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。线程和进程的区别在于,子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文。多线程主要是为了节约CPU时间,发挥利用,根据具体情况而定。线程的运行中需要使用计算机的内存资源和CPU。

    展开全文
  • 进程间通信(IPC,Inter-Process Communication),指至少两个进程或线程间传送数据或信号的一些技术或方法。进程是计算机系统分配资源的最小单位。每个进程都有自己的一部分独立的系统资源,彼此是隔离的。为了能使...
  • 进程间通信 (IPC ,Inter-Process Communication ),指至少两个进程 或线程 间传送数据或信号的一些技术或方法。进程是计算机系统 分配资源的最小单位。每个进程都有自己的一部分独立的系统资源,彼此是隔离...
  • 如,设备同步,是指在两个设备之间规定一个共同的时间参考;数据库同步,是指让两个或多个数据库内容保持一致,或者按需要部分保持一致;文件同步,是指让两个或多个文件夹里的文件保持一致。等等 而,编程中、通信...
  • 进程控制 并发控制环境中:创建进程,...相互合作的进程,由同步机构对它们的执行次序进行协调,前一个进程结束了,后一个进程才开始,前一个进程不结束,后一个进程就不开始,在这种进程之间合作的执行关系叫同...
  • IPC RPC

    2019-12-06 16:58:11
    跨进程间通信(IPC,Inter-Process Communication),指至少两个进程或线程间传送数据或信号的一些技术或方法。进程是计算机系统分配资源的最小单位。每个进程都有自己的一部分独立的系统资源,彼此是隔离的。为了能...
  • IPC RPC LPC

    2019-05-28 20:16:01
    进程间通信(IPC,Inter-Process Communication),指至少两个进程或线程间传送数据或信号的一些技术或方法。进程是计算机系统分配资源的最小单位。每个进程都有自己的一部分独立的系统资源,彼此是隔离的。为了能使...
  • IPC\RPC\LPC区别与联系

    千次阅读 2019-01-09 13:53:08
    进程间通信(IPC,Inter-Process Communication):指至少两个进程或线程间传送数据或信号的一些技术或方法。进程是计算机系统分配资源的最小单位。每个进程都有自己的一部分独立的系统资源,彼此是隔离的。为了能使...
  • 什么是RPC框架

    2020-09-12 22:28:00
    进程间通信(IPC,Inter-Process Communication),指至少两个进程或线程间传送数据或信号的一些技术或方法。 进程是计算机系统分配资源的最小单位。每个进程都有自己的一部分独立的系统资源,彼此是隔离的。为了能...
  • IPC

    2010-01-11 14:15:00
    进程间通信(IPC, Inter-Prpcess Communication) 至少两个进程或线程间 传送数据或信号 的一些技术或方法。进程是计算机系统分配资源的最小单位。每个进程都有自己的一部分独立的系统资源,彼此是隔离的。为了能使...
  • 所有的翻译和校对工作历时半年多,在此,我要感谢为本书的出版付出辛勤汗水的电子工业出版社博文视点的工作人员,特别要感谢本书的策划编辑朱沭红老师和责任编辑顾慧芳老师,她们的严谨认真工作使该译本可读性更高,...
  • 死锁是两个两个以上的进程中的每一个,都在等待其中另一个进程释放资源而被封锁,它们都无法向前推进,称这种现象为死锁现象。 产生死锁的原因是共享资源有限,多个进程对共享资源的竞争,而且操作不当。 ...
  • (2)建模简单:通过使用线程可以讲复杂并且异步的工作流进一步分解成一组简单并且同步的工作流,每工作流在一单独的线程中运行,并在特定的同步位置交互 (3)简化异步事件的处理:服务器应用程序在接受...
  • java 面试题 总结

    2009-09-16 08:45:34
    28、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。 public class ThreadTest1{ private int j; public static ...
  • 抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承:  继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承...
  • 答:服务器端向客户端发送一个进程编号,一个程序域编号,以确定对象的位置。 24.在C#中,string str = null 与 string str = “” 请尽量使用文字或图象说明其中的区别。 答:string str = null 是不给他分配...
  • 2.2.9 A,B,C,D四个进程,A向buf里面写数据,B,C,D向buf里面读数据,当A写完,且B,C,D都读一次后,A才能再写。用P,V操作实现。 2.3.0 将单向链表reverse,如ABCD变成DCBA,只能搜索链表一次。 2.3.1 将二叉树的...
  • 利用了OpenMP里面的#omp parallel sections将对两个for循环用两个线程并行化执行,以多线程方式并行运行程序,并行的算法步骤如下: (1)初始化_max = 10000000; (2)创建两个线程; (3)由OpenMP编译指导...

空空如也

空空如也

1 2 3 4 5
收藏数 97
精华内容 38
关键字:

为了使两个进程能同步运行