1.并发编程的基础 1.1 线程 -进程/优先级 操作系统调度的最小单元是线程,线程是轻量级进程。 线程优先级由setPriority(int)方法来设置,默认优先级是5,等级1~10.等级越高分的时间片越多。 1.2 线程的状态 new 初始化 》》Runable 运行》》Blocked阻塞 》》 ...
分类:
编程语言 时间:
2016-09-22 01:01:38
阅读次数:
197
一、线程状态 在具体分析线程转储数据之前,我们首先要明确线程的状态。java.lang.Thread.State枚举类中定义了如下几种类型: NEW:线程创建尚未启动。 RUNNABLE:包括操作系统线程状态中的Ready和Running,可能在等待时间片或者正在执行。 BLOCKED:线程被阻塞。 ...
分类:
编程语言 时间:
2016-09-17 23:49:11
阅读次数:
292
分享一个OS内核,可以直接运行在x86机器上(非虚拟机),支持命令行,支持可抢占式和时间片轮转调度算法,IPC支持信号量、邮箱,互斥锁,可满足各种嵌入式场景应用。欢迎交流学习!下面是运行效果图 ...
分类:
其他好文 时间:
2016-09-11 14:06:14
阅读次数:
135
问题:使用vmstat命令后,请问看到的r,b,si,so,bi,bo这几列分别表示什么?答案:r表示运行和等待cpu时间片的进程数b表示等待资源的进程数比如等待i/o,内从等si表示由交换分区进入内从的数量so表示由内从进入交换分区的数量bi表示从块设备读取数据的量(读磁盘)bo从块设备写入数据的..
分类:
其他好文 时间:
2016-09-08 16:28:48
阅读次数:
119
Linux Cgroup blkio子系统的用法. blkio子系统支持的两种IO隔离策略 .1. (Completely Fair Queuing 完全公平队列)cfq io调度策略,支持按权重分配IO处理的时间片,从而达到IO在各资源组直接的调度和限制的目的,权重取值范围100-1000。通过以 ...
分类:
系统相关 时间:
2016-09-07 13:09:18
阅读次数:
318
一、概述 进程和线程网络上有一堆解释,我不喜欢抄袭,也不喜欢套用太教科书的说法。就以我自己的理解来说说进程和线程吧,当然自己的理解肯定不是很严谨,但是理解起来应该会比教科书快一点。进程和线程都可以认为是并发执行程序,但是只有多处理器下的多线程才可以真正实现并发(多个线程在同一个时间片同时运行),其他 ...
分类:
编程语言 时间:
2016-09-05 13:57:25
阅读次数:
207
unix是按时间片轮转调度, windows是抢占式调度 以吃蛋糕为例子,10个人吃蛋糕,如果是unix下, 假设开始时,每个人都处于就绪状态,那么操作系统调度大家排好队,按顺序吃,每个人吃1分钟, 1分钟就是操作系统给大家分配的时间片, 那么 1)有些人饭量大,吃一份钟也不饱,还想吃,但是操作系统 ...
分类:
其他好文 时间:
2016-09-04 14:28:30
阅读次数:
179
进程是程序的一次动态执行过程,需要经历代码加载,代码执行,执行完毕的一个完整过程。 多进程操作系统能同时运行多个进程(程序),由于cpu具有备份时机制,所以每个进程都能循环获得自己的cpu时间片。由于cpu执行速度非常快,使得所有程序好像是在“同时运行”一样。 线程是比进程更小的单位,线程是在进程基... ...
分类:
编程语言 时间:
2016-08-25 23:50:01
阅读次数:
183
AtomicInteger源码分析——基于CAS的乐观锁实现 我们都知道,cpu是时分复用的,也就是把cpu的时间片,分配给不同的thread/process轮流执行,时间片与时间片之间,需要进行cpu切换,也就是会发生进程的切换。切换涉及到清空寄存器,缓存数据。然后重新加载新的thread所需数据 ...
分类:
其他好文 时间:
2016-08-22 17:58:07
阅读次数:
164
RT 1.这里解释几个主要的子函数,首先是task_timeslice,重新计算时间片。首先介绍一下基本时间片的概念。 静态优先级本质上决定了进程的基本时间片,即进程用完了以前的时间片时,系统分配给进程的时间片长度。静态优先级和基本时间片的关系用下列公式确定: 如你所见,静态优先级越高(其值越小), ...
分类:
系统相关 时间:
2016-08-21 06:24:26
阅读次数:
218