码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 软件设计师学习笔记9-进程调度


    目录

    1. PV操作

    1.1进程的同步与互斥

    1.1.1互斥

    1.1.2同步

    1.2 PV操作

    1.2.1信号量

    1.2.2 PV操作的概念

    2.信号量与PV操作

    2.1 PV操作与互斥模型

    2.2 PV操作与同步模型

    2.3 互斥与同步模型结合

    3.前趋图与PV操作


    1. PV操作

    1.1进程的同步与互斥

    1.1.1互斥

    互斥:如千军万马过独木桥,属于间接制约关系

    如下图(该图片来自希赛软考):

    其中的独木桥被称为临界资源

    临界资源:诸进程间需要互斥方式对其进行共享的资源(进程中访问临界资源的那段代码称为临界区)

    1.1.2同步

    同步:速度有差异,在一定情况停下等待,属于直接制约关系

    举个例子,在A,张三和李四约好一起到B玩,但是因为两人速度不同,先到的要等后到的

    如下图(该图片来自希赛软考):

    注意:(1)同步和互斥这两种方式可以同时存在(2)进程之间并发过程中,由PV操作实现互斥与同步

    1.2 PV操作

    1.2.1信号量

    信号量:是一种特殊的变量(且为全局变量)

    信号量可以表示资源数量(比如打印机数量)

    信号量为负数时还可以表示排队进程数

    1.2.2 PV操作的概念

    (1)P是荷兰语的Passeren,V是荷兰语的Verhoog

    P操作即P(S),是加锁的过程;V操作即V(S),是解锁的过程。这两个是原语,即原子性语言

    注:(1)S指的是信号量(2)原子性:一个原子事务要么完整执行,要么干脆不执行(3)加锁会降低资源的利用率,且有锁就有可能产生死锁(4)PV操作是对于临界资源来控制访问的,而不是共享资源

    (2)PV操作的示意图如下:

    2.信号量与PV操作

    2.1 PV操作与互斥模型

    多个进程共享一个打印机的问题(互斥模型),如下图:

    互斥信号量S的初值为1

    2.2 PV操作与同步模型

    单缓存区生产者、消费者问题(同步模型),如下图:

    注:(1)单缓冲区或多缓冲区指的是缓冲区的空间资源,类似于停车场有100个停车位,那么就有100个空间可以让汽车使用,这就相当于空间为100的缓存区,单缓冲区即只有1个车位,所以单缓冲区下S1的值为1

    2.3 互斥与同步模型结合

    单缓存区生产者、消费者问题,只不过市场(临界资源)不允许双方同时访问,如下图:

    3.前趋图与PV操作

    对于前趋图而言,无论从哪个进程开始,结果都是一样的,因为被箭头指向的进程(后趋活动)要等箭头开始处的进程(前趋活动)都执行完成才能执行,信号量S与趋线(即箭头)有关

    以包饺子为例,如下图·:

    此处我们不难发现,PV操作与箭头的关系,有箭头开始的必然有V操作,有被箭头指向的必然有相对应的P操作

    声明:笔记内容来源于希赛软考

    上一篇:软件设计师学习笔记8-操作系统+进程

    下一篇:软件设计师学习笔记10-死锁资源数计算+进程资源图+段页式存储

  • 相关阅读:
    C# MQTT通讯
    LeetCode --- 145. Binary Tree Postorder Traversal 解题报告
    【考研词汇训练营】Day 10 —— capital,expand,force,adapt,depand
    你真的了解 Session 和 Cookie 吗?
    WPF 分组
    Servlet概念和Tomcat的安装配置
    Rust踩雷笔记(7)——两个链表题例子初识裸指针
    springmvc 整合 camunda
    U3D热更新技术
    一文带你了解Windows操作系统安全,保护自己的电脑不受侵害
  • 原文地址:https://blog.csdn.net/qq_71654538/article/details/132747434
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号