1.引起进程调度的原因:
进程调度发生在什么时机呢?这与引起进程调度的原因以及进程调度的方式有关。
(1)正在执行的进程执行完毕。这时,如果不选择新的就绪进程执行,将浪费处理机资源。
(2)执行中进程自己调用阻塞原语将自己阻塞起来进入睡眠等状态。
(3)执行中进程调用了P原语操作,从而因资源不足而被阻塞;或调用了v原语操作激活了等待资源的进程队列。
(4)执行中进程提出I/O请求后被阻塞。
(5)在分时系统中时间片已经用完。
(6)在执行完系统调用等系统程序后返回用户进程时,这时可看作系统进程执行完毕,从而可调度选择一新的用户进程执行。
以上都是在不可剥夺方式下的引起进程调度的原因。
在CPU执行方式是可剥夺时.还有:
(7)就绪队列中的某进程的优先级变得高于当前执行进程的优先级,从而也将引发进程调度。
2. 并发与并行的区别
并发的英文是 Concurrency,并行的英文是 Parallel,并发与并行是两个不同的概念。
(1)并发是指在同一时刻,只能有一条指令执行,但多个进程指令被快速轮换执行,使得在宏观上具有多个进程同时执行的效果。
(2)并行是指在同一时刻,有多条指令在多个处理器上同时执行。
前者是逻辑上的同时发生(simultaneous),而后者是物理上的同时发生。
来个比喻:并发和并行的区别就是一个人同时吃三个馒头和三个人同时吃三个馒头。