一、重量级锁 一、重量级锁 Java中,Synchronized是通过对象内部的一个叫做监视器锁(monitor)来实现的。但是监视器锁本质又是依赖于底层的操作系统的Mutex Lock来实现的。而操作系统实现线程之间的切换这就需要从用户态转换到核心态,这个成本非常高,状态之间的转换需要相对比较长的 ...
分类:
编程语言 时间:
2016-08-15 20:38:28
阅读次数:
229
关于 信号signal的知识铺垫 点这里 信号由三种处理方式: 如果信号的处理动作是用户自定义函数,在信号递达时就调用这个自定义函数,这称为捕捉信号。 进程收到一个信号后不会被立即处理,而是在恰当时机进行处理!即内核态返回用户态之前 ! 但是由于信号处理函数的代码在用户空间,所以这增加了内核处理信号 ...
分类:
系统相关 时间:
2016-08-15 12:55:16
阅读次数:
185
大并发带来服务器各种层出不穷的问题,我们要善用服务器系统内核,因为其性能优于用户态的玩意 注:若想永久保存参数,可将其加入到/etc/sysctl.conf中,执行sysctl -p使其永久生效,临时改配则修改/proc/sys/net/ipv4下的参数,重启后失效 [root@master ipv ...
分类:
其他好文 时间:
2016-08-02 20:40:35
阅读次数:
183
转自:http://col1.blog.163.com/blog/static/1909775192012719114033352/ 1 .内核级线程:切换由内核控制,当线程进行切换的时候,由用户态转化为内核态(课本中线程模型中的一对一模型)。切换完毕要从内核态返回用户态;可以很好的利用smp,即利 ...
分类:
编程语言 时间:
2016-08-02 11:37:11
阅读次数:
193
1、基本知识poll的机制与select类似,与select在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是poll没有最大文件描述符数量的限制。poll和select同样存在一个缺点就是,包含大量文件描述符的数组被整体复制于用户态和内核的地址空间之间,而..
分类:
其他好文 时间:
2016-08-01 23:29:24
阅读次数:
227
一、信号的介绍 信号是在软件层次上对中断机制的一种模拟,是一种异步通信方式。但是信号和中断还是有所区别的,主要的区别体现在: (1):中断有优先级,信号没有,所有的信号都是平等的; (2):中断处理程序是在内核态运行,而信号处理程序是在用户态运行; (3):中断响应是及时的,而信号响应则有较大的延时 ...
分类:
其他好文 时间:
2016-07-25 18:17:20
阅读次数:
222
Linux下,进程不能直接访问硬件设备。当进程需要访问硬件设备时(读取磁盘文件、接收网络数据等),则必须由用户态切换为内核态,然后通过系统调用来访问硬件设备。strace是跟踪进程执行时的系统调用和所接收的信号(即它跟踪到一个进程产生的系统调用,包括参数、返回值、执行消耗的时间)。strace最简单的用法是执行一个指定的命令(过程中,starce会记录和解析命令进程的所有系统调用及这个进程的所有的...
分类:
系统相关 时间:
2016-07-19 10:44:51
阅读次数:
225
我们在感叹Onlydbg强大与便利的同时,是否考虑过它实现的原理呢? 作为一个技术人员知其然必知其所以然,这才是我们追求的本心。 最近在学习张银奎老师的《软件调试》,获益良多。熟悉Windows调试机制,对我们深入理解操作系统以及游戏保护的原理有着莫大好处。 0X01 初探调试原理 调试系统的实现思 ...
Linux下,进程不能直接访问硬件设备。当进程需要访问硬件设备时(读取磁盘文件、接收网络数据等),则必须由用户态切换为内核态,然后通过系统调用来访问硬件设备。strace是跟踪进程执行时的系统调用和所接收的信号(即它跟踪到一个进程产生的系统调用,包括参数、返回值、执行..
分类:
系统相关 时间:
2016-07-18 05:43:49
阅读次数:
321
1、select、epoll区别 http://www.cnblogs.com/Anker/p/3265058.html (1)每次调用select,都需要把fd集合从用户态拷贝到内核态,这个开销在fd很多时会很大 (2)同时每次调用select都需要在内核遍历传递进来的所有fd,这个开销在fd很多 ...
分类:
其他好文 时间:
2016-07-15 06:17:17
阅读次数:
127