我正在为一个使用2.6.24.3内核的嵌入式Linux项目开发一个用户空间应用程序。我的应用程序通过创建2个pthread在两个文件节点之间传递数据,每个pthread都处于休眠状态,直到异步IO操作完成,此时它将唤醒并运行完成处理程序。
完成处理程序需要跟踪有多少传输挂起,并维护一些链表,一个线程将添加到这些链表中,而另一个线程将删除这些链表。
// sleep here until events arrive or time out expires
for(;;) {
no_of_events = io_getevents(ctx, 1, num_events, events, &
我正在做一个简单的银行家算法模拟器。当我将需求与可用资源进行比较时,它在一个循环中工作得很好。但是,我不能让它再次重申链表。(在银行家算法中,您可能只能运行链表中的最后一个。在这种情况下,你将不得不再次检查链表,看看是否还能运行,这是不起作用的部分)我认为这与指针有关,但我不确定是什么。
struct LL //linked list structure(pcb)
{
LL_pid pid;
int alloc[15];
int max[15];
int need[15];
int finish;//flag to show if finished