资源同步
以前在学单片机的时候,在中断那一节,在处理中断服务程序时,总是要在程序开头加上一句关中断,处理完以后然后开中断,当时迷迷糊糊的也不知道是干什么用,老师也不给你详细讲,因为他详细讲了估计你也听不懂,这几天看操作系统以及多任务处理时,对这一块又有了新的认识。
被两个或者两个并发程序单元访问的资源称为共享资源,共享资源一定是全局资源,但全局资源不一定是共享资源。当多个任务同时访问同一共享资源时,不免会发生资源争夺现象。所以只有保证各个任务访问共享资源互斥,才能保障共享资源的可靠性和完整性。“资源同步”有关中断,关调度,使用互斥信号量和使用计数信号量。举个例子吧,假设有任务A,B优先级依次递减,假如某一个时刻,A被挂起,B开始访问共享资源,并判断是不是最后一个达到同步点的任务,但是这时一个异步信号,激活了A,因为A的优先级高于B,也判断自己是不是最后一个达到同步点的任务,便进行“签到”,并加入任务队列挂起。这时完成判断的B重新获得运行机会,进入任务队列挂起,整个任务便进入瘫痪状态。所以这时如果在B之前加入关中断,就不会被A打扰。