同时运行的进程要访问共享资源,此共享资源某一时刻只允许某个进程访问,其他进程需要等待,就称为进程间的互斥,操作此共享资源的代码片段称为临界去。 临界的访问要遵循四个原则: 进程互斥有软件方法和硬件方法: (1) 软件方法 单标志法,即判断某个全局变量,形式为 while{forbidden_access}; forbidden_access = true 进入临界区; 离开临界区; forbidden_access = false双标志前检查法双标志后检查法peterson法 总结:peter
2025-01-08DPDK 在AMD处理器无法收包的问题 DPDK16在其他服务器没问题,在一台新来的海光的AMD处理器,Centos 7.2,英特尔X520网卡,启动dpdk应用程序无法收到报文。 排查发现每次启动程序dmesg里面都会出现: “AMD-Vi: Event logged [IO_PAGE_FAULT device=21:00.0 domain=0x0035 address=0x0” 查了一下发现是AMD的bug,需要给内核加入 iommu=soft,启用软件iommu功能。在grub中添加omm
2025-01-081.问题描述 今天在启动一个Windows服务时,服务启动不了,且提示:1053错误 那么是什么导致了1053错误呢? 2.他山之石 百度了一下,发现有人作出下面的解释并给出了解决方法: 3.实际解决 于是根据他的思路,我双击了服务程序。结果出现了如下的提示框: 看来程序崩溃了,那么如何找出问题的原因所在呢? 对,调试程序! 我选择了【调试程序】,于是启动了VS进行调试。VS打开后抛出了一个异常,界面如下: 于是心中窃喜,因为从异常信息中我们往往能找出异常所在的准确位置(Stack
2025-01-08No1, 进程同步的概念: 在多道程序环境下,并发执行的进程之间存在在不同的相互制约关系,for example, 计算1-1*1的式子,系统有会产生两个进程,一个是加法进程一个是乘法进程。但是为了让计算结果正确,要让乘法进程先于加法进程运算,但在实际操作中存在异步性,我们无法确保乘法运算先于加法执行。因此必须要制定一定的机制进行约束 同步亦称为直接制约关系,指为完成某种任务而建立的多个进程,而这些进程需要在某些位置上协调它们的工作次序而等待、传递信息所产生的
2025-01-08同步模式 C++惯用法定界加锁(Scoped Locking)能确保当控制进入到某一个范围时,自动获得锁,而当控制离开该范围时,自动释放锁,不管从该范围返回的路径是什么。 策略化加锁(Strategized Locking)设计模式是策略模式的一种特例,它把同步机制参数化,这一机制保护临界区免受并发访问。 线程安全接口(Thread-Safe Interface)设计模式使加锁的开销减至最少,确保组件内部的方法调用不会因为要再次获得一个组件已经拥有的锁而“自死
2025-01-08一.用户及passwd文件 1./etc/passwd文件:存储所有用户的相关信息,也被称为用户信息数据库(Database);每行为1个用户的信息;每行用";"分割为7个字段;1-499uid被系统占用,自建普通用户uid从500开始 一个用户的gid只有一个,但可以属于多个组 2./etc/shadow文件:存储所有用户的密码,每一个用户占用一行记录,该文件实际上是存放用户密码的Database 每个字段具体含义: (1)第1字段:用户名 (2)第2字段:密码(经过MD5算法加密) (3)
2025-01-081.windows中使用tracert命令追踪路由信息 tracert -d -h 15 baidu.com 2.linux中使用tracert命令追踪路由信息 traceroute baidu.com 转载于:https://www.cnblogs.com/Summer6/p/10838335.html
2025-01-08做一个项目 ,通过邮件找回密码功能 ,在家庭上网环境通过 smtp.139.com 邮件服务器用默认邮箱发送邮件,能成功发送, 但部署到生产服务器上(linux操作系统上) ,发送邮件就会失败,并有异常:pub java.mail.MessegingException:unknown smtp host ; 请教各位高手指点一二。 补充,后来了解到,生产服务器不能直接上外网,没有开通相关权限,所以无法发送邮件。
2025-01-08网上已经有不少相关文章,具体可参考: 通过getuid、printf等函数讲解了基本的加钩子的方法: http://blog.chinaunix.net/u/9577/showart_1195703.html 如果你希望的不仅仅是替换掉原有库函数,而且还希望最终将函数逻辑传递到原有系统函数,那么你可能需要用到RTLD_NEXT。系统可能提示RTLD_NEXT未定义,这里给出了解决方案: http://xueruini.spaces.live.com/blog/cns!DF086AB717
2025-01-081、前言 某一刻,你已经把 .Net Core 的程序写好了。接下来,还可以做什么呢?那就是部署了。 作为一名开发工程师,如果不会部署自己开发的应用,那么这也是不完整的。接下来,我们就来说说,如何部署我们的 .Net Core 应用程序(主要是 Asp.Net Core 应用)。 2、Asp.Net Core 的部署方式 对于虚拟机中执行的语言来说,大都会有 SDK(Software Development Kit) 以及 XRE(X Runtime Environment)。对于 C#来说,也
2025-01-08