windows多任务处理机制:
windows多任务处理机制采用的是协商式多任务:
有几个内核,就维护多少个队列,多个进程内的线程按先后次序排队,有几个内核,就会排成几队。
缺点:当cpu访问进程队列信息失败时,即当前线程阻塞,则该队列后面所有的线程都会等待。
这就是当我们使用windows系统时,某个线程假死之后,所有的队列都会停滞。
这时候,我们要么选择等待,要么选择终止阻塞线程所在的进程。
===================
linux/unix多任务处理机制:
linux/unix多任务处理机制是抢占式多任务,
linux下每个进程只包含一个线程,可以这么理解,因为linux没有线程的概念,为便于同windows比较,故这么描述。
有几个内核,就维护多少个队列,每个进程维护自己的队列,各个进程之间是独立的。
各个线程抢占cpu资源。
当cpu访问进程队列失败时,即某个线程假死之后,其他线程会迅速抢占cpu资源,这样不会因为某个线程假死,影响其他任务的执行。
这就是在linux/unix下,当我们的某个进程处于假死状态,我们其他进程照样可以运行,其他程序依然可以操作,就是这样原因
阅读(2863) | 评论(0) | 转发(0) |