/*
使用keil4
可运行8个任务
任务从rtos_wait()处切换,在定时时间到后从定时中断中切换回来。
*/
#include "STC12C5A...
分类:
编程语言 时间:
2014-05-26 05:05:42
阅读次数:
419
sleep_on用于进程休眠,原型如下:
void sleep_on(struct task_struct **p)
当进程访问某个互斥资源时,如果资源被另外进程占用,当前进程就需要休眠。
假设资源的结构如下:
struct res
{
....
struct task_struct *wait;
}
其实我们参考下文件系统的i节点就会发现,i节点也是一种资源,它的结构体中就有一...
分类:
系统相关 时间:
2014-05-26 04:28:02
阅读次数:
439
CRTOS 实时可剥夺型内核
1.任务不用预加载,不用预定义。任务调用时加载,可删除(退出死循环即可)
2.单位轮转查询时间由晶振和定时器初始化决定。在这里为10ms
3.定时时间为【 time*单位轮转查询时间 】 ,其中time为 rtos_wait(time)中time.
4.可运行多个任务【自定义】
5.任务从rtos_wait()处切换,在定时时间到后从定时中断中切换回来,任务执行后,回到中断,再从中断回到主程序。...
分类:
编程语言 时间:
2014-05-26 03:59:52
阅读次数:
323
继续并发专题~
这次介绍CyclicBarrier:看一眼API的注释:
/**
* A synchronization aid that allows a set of threads to all wait for
* each other to reach a common barrier point. CyclicBarriers are
* useful in program...
分类:
编程语言 时间:
2014-05-25 18:15:06
阅读次数:
316
背景
大家都知道线程之间共享变量要用volatile关键字。但是,如果不用volatile来标识,会不会导致线程死循环?比如下面的伪代码:
static int flag = -1;
void thread1(){
while(flag > 0){
//wait or do something
}
}
void thread2(){
//do something
f...
分类:
编程语言 时间:
2014-05-25 10:24:14
阅读次数:
220
进入iTunes ConnectManage Your Apps->New
Version->View DetailsLinks->Binary Details->Reject This
Binary->Reject Binary->DoneReady to Upload Binary->No No...
分类:
移动开发 时间:
2014-05-25 07:42:14
阅读次数:
267
序
僵死(zombie)进程简而言之就是:子进程退出时,父进程并未对其发出的SIGCHILD信号进行适当处理,导致子进程停留在僵死状态等待其父进程为其收尸,这个状态下的子进程就是僵死进程。
因为并发服务器常常fork很多子进程,子进程终结之后需要服务器进程去wait清理资源。对于某些进程,特别是服务器进程往往在请求到来时生成子进程处理请求。如果父进程不等待子进程结束,子进程将成为僵尸进程(zo...
分类:
系统相关 时间:
2014-05-25 06:12:34
阅读次数:
313
4个任务
/*
使用keil4
可运行8个任务
任务从rtos_wait()处切换,在定时时间到后从定时中断中切换回来。
*/
#include "STC12C5A.H"
#define TIMER_RELOAD() {TL0=0x00;TH0=0xC4;}//使能T/C 初始10ms
#define MAX_TASKS 8 //任务槽最大个数.
unsig...
分类:
编程语言 时间:
2014-05-25 02:03:17
阅读次数:
293
CRTOS 实时可剥夺型内核
1.任务不用预加载,不用预定义。任务调用时加载,可删除(退出死循环即可)
2.单位轮转查询时间由晶振和定时器初始化决定。在这里为10ms
3.定时时间为【 time*单位轮转查询时间 】 ,其中time为 rtos_wait(time)中time.
4.可运行多个任务【自定义】
5.任务从rtos_wait()处切换,在定时时间到后从定时中断中切换回来,任务执行后,回到中断,再从中断回到主程序。...
分类:
编程语言 时间:
2014-05-24 19:51:06
阅读次数:
324
/*
CRTOS 实时可剥夺型内核
1.任务不用预加载,不用预定义。任务调用时加载,可删除(退出死循环即可)
2.单位轮转查询时间由晶振和定时器初始化决定。在这里为10ms
3.定时时间为【 time*单位轮转查询时间 】 ,其中time为 rtos_wait(time)中time.
4.可运行多个任务【自定义】
5.任务从rtos_wait()处切换,在定时时间到后从定时中断中切换回...
分类:
编程语言 时间:
2014-05-24 14:22:34
阅读次数:
372