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

一,线程,进程同步

为什么需要同步


微信截图_20190818173000.png

1.线程同步

以下都是对资源加锁

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

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

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

2.进程同步

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


    捕获.PNG

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容