![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
文章平均质量分 91
StriveCode
一个有梦想且努力的程序员
展开
-
IO多路复用(select,poll,epoll)详解
前言学习多路复用之前,搞清楚同步,异步,阻塞 非阻塞。点击见详情清楚一些概念:(1) fd全称是file descriptor,是进程独有的文件描述符表的索引(2)recv:int recv(int sockfd,void* buf,int len,unsigned int flags);第一个参数是要读取的套接口文件描述符。第二个参数是保存读入信息的地址。第三个参数是缓冲区的最大长度。第四个参数设置为0。系统调用recv()返回实际读取到缓冲区的字节数,如果出错则返回-1。这样使用上面原创 2021-03-29 11:22:31 · 520 阅读 · 0 评论 -
综合场景搞清楚同步 异步 阻塞 非阻塞
一、同步和异步同步和异步是指访问数据的一种机制,关注点在于消息通信机制。1.同步(1)描述:发送一个请求,等待返回,再发送下一个请求,同步可以避免出现死锁,脏读的发生。(2)概念:同步就是一个任务的完成需要依赖另外一个任务时,只有等待被依赖的任务完成后,依赖的任务才能算完成,这是一种可靠的任务序列。要么成功都成功,失败都失败,两个任务的状态可以保持一致。简单来说就是 想要完成B任务,必须先完成 A任务。(3)消息通知:当一个同步调用发出后,调用者要一直等待返回消息(结果)通知后,才能进行后续原创 2021-03-28 23:08:06 · 217 阅读 · 0 评论 -
死锁精讲
一、死锁的定义及原因1.定义多个进程因竞争资源形成的一种僵局(互相等待),若无外力作用,这些进程将无法向前推进。2.原因不可剥夺资源的竞争通常系统中拥有的不可剥夺资源,其数量不足以满足多个进程运行的需要,使得进程在 运行过程中,会因争夺资源而陷入僵局,如磁带机、打印机等。只有对不可剥夺资源的竞争 才可能产生死锁,对可剥夺资源的竞争是不会引起死锁的。进程推进顺序非法进程在运行过程中,请求和释放资源的顺序不当,也同样会导致死锁。例如,并发进程 P1、P2分别保持了资源R1、R2,而进程P1申请资原创 2021-03-18 20:16:41 · 98 阅读 · 3 评论 -
程序 进程 线程的区别、联系及通信方式
一、程序是什么?程序(Program)告诉计算机应如何完成一个计算任务,这里的计算可以是数学运算,比如解方程,也可以是符号运算,比如查找和替换文档中的某个单词。从根本上说,计算机是由数字电路组成的运算机器,只能对数字做运算,程序之所以能做符号运算,是因为符号在计算机内部也是用数字表示的。此外,程序还可以处理声音和图像,声音和图像在计算机内部必然也是用数字表示的,这些数字经过专门的硬件设备转换成人可以听到、看到的声音和图像。(做基本了解)二、进程1.概念进程是一个具有一定独立功能的程序在一个数据集上的原创 2021-03-18 12:30:11 · 246 阅读 · 0 评论