美文网首页
计算机基础-操作系统提升篇

计算机基础-操作系统提升篇

作者: Chaos_YM | 来源:发表于2019-08-18 17:28 被阅读0次

    一,线程,进程同步

    为什么需要同步


    微信截图_20190818173000.png

    1.线程同步

    以下都是对资源加锁

    • 互斥量(互斥锁)
      逻辑开始加个锁,结束再解锁,其他进程,线程不可以中途执行
      操作系统互斥量API:pthread_mutex_t
      缺点:性能损耗大,耗时增加
    • 自旋锁
      同互斥量原理相似,不同点是不会让出CPU,不适合单核CPU,会造成等待
      优势,避免了进程,线程切换,上下文切换的开销,提高速度

    这里没有听懂,再去查查资料

    • 读写锁
      因为存在多读少写类型的资源,为提升效率,读取操作不上锁。
      读写锁是一种自旋锁,只对写操作之间,读写之间,是互斥的。
    • 条件变量
      允许线程睡眠,知道满足条件,唤醒线程;来处理0和满载两个极端值的情况。

    2.进程同步

    • 共享内存
      正常情况下,每个进程有自己的进程空间,通过自己的页表管理,指向物理内存的地址。
      多个进程共用物理内存,又相互独立。
      共享内存就是两个进程可以使用同一块物理内存


      捕获.PNG
      捕获.PNG
    • Unix域套接字(进程通信方法)
      类似网络变成的套接字(socket)

    3.使用fork系统调用 创建进程

    fork函数无参数,创建的子进程会拥有和父进程一样的所有状态
    调用一次,返回两次,为子进程的id和0(0是继承自父进程的fork函数返回的空,id是父进程的返回)

    相关文章

      网友评论

          本文标题:计算机基础-操作系统提升篇

          本文链接:https://www.haomeiwen.com/subject/kjxdsctx.html