2.操作系统基本原理


操作系统基本原理

1、进程管理

1.1 进程的状态

1683620632000

1.2 前趋图

1683621626225

前趋图:表明哪些操作可以并行哪些不能,哪些需要有先后顺序。

1.3 进程同步与互斥

1683623040267

进程同步和互斥是操作系统中的重要概念,主要用于多个进程之间协调共享资源的访问。

进程同步是指多个进程在某些事件或时刻上保持相对一致的状态,以便完成某种协调工作。例如,多个进程同时访问共享内存区域,为了避免数据的冲突和破坏,需要通过进程同步机制来协调彼此之间的访问。

而进程互斥则是指多个进程因为需要访问相同的资源,而在时间上不能同时进行,只能通过互斥手段来保证资源的安全性。通常使用锁(Locks)或者信号量(Semaphores)等机制来实现进程互斥,这些机制可以保证同一时间只有一个进程能够访问共享资源。具体来说,锁机制通过设置一个标志位,即所谓的临界区域,来表示某段程序代码是临界的,需要互斥访问。而信号量则是一个计数器,记录可用资源的个数,进程在访问共享区域前需要先获取信号量,访问完后再释放信号量,以保证别的进程能够正常访问。

1.4 PV操作

概念:

1683623498369

PV 操作是一种经典的用于多进程或多线程同步和互斥的原语,具体包括两个操作:P(Produce)和 V(Verify)。

P 操作通常表示申请资源,也就是进程或线程想要访问共享资源时,需要先进行 P 操作。简单来说,就是减少信号量计数器的值,如果结果为负数,则将当前进程/线程加入等待队列,等待资源可用后再进行访问。

V 操作则表示释放资源,即当一个进程或者线程完成了对共享资源的操作后,它需要进行 V 操作来释放资源,使得其他的进程或线程可以访问这个资源。V 操作会增加信号量计数器的值,并且如果有等待队列中的进程或线程,还会唤醒其中的一个进程或线程。

PV 操作通常用于保证共享资源的安全访问。当多个进程或者线程需要访问共享资源时,PV 操作可以保证只有一个进程或线程能够访问共享资源,从而避免了因多个进程或线程同时访问导致的数据竞争和冲突。

例如,在生产者-消费者模型中,生产者向缓冲区写入数据,而消费者从缓冲区读取数据,为了保证缓冲区的正确性和可靠性,需要使用 PV 操作来进行同步和互斥,以避免生产者和消费者同时访问导致的数据竞争和冲突。

示例:

image-20230509171239020

单缓冲区,如果缓冲区还有数据,而生产者继续推送产品到缓冲区,则会报错;

同样的 ,如果缓冲区内已经没有数据了,消费者还从缓冲区取产品,也会报错。

pv操作加在生产者和消费者 送、取缓冲区的前后,通过共享变量做逻辑判断,可以判断到当前缓冲区内是否存在产品,对于生产者,如果缓冲区没有产品才推产品,否则阻塞,对于消费者则相反,如果缓冲区有数据才拉取产品,否则阻塞。

P:会做阻塞操作
V:解除阻塞操作

1.4.1 考题

1683625972907

收银前需要判断是否有客户付款,所以b1 是 p() ,所以 a1 是 v()

顾客需要等待收费结束,所以 a2有个 p(),b2是 v()

填入 s1 s2

得到答案 选 A , C

1.4.2 例题

1683626695780

1.4.3 考题2

1683626776323

  1. P3 前面需要等 P1 和 P2 结束,所以 P3 前面有两个 P(),P()

  2. P4 和 P5 需要 P3 作为前置条件,所以 P3 后面接着两个 V(),V()

  3. 所以 P4 和 P5 前接着两个 P(),P()

    把信号量加上 ,可以得出答案 C A A


文章作者: link
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 link !
  目录