就绪态为什么不能到阻塞态
就绪态不能转换为阻塞态的原因是,阻塞态是处于运行态的进程在运行时主动执行造成阻塞的代码而导致的。
在程序执行阻塞I/O中的read、recv等系统调用时,进程将会一直处于阻塞直到数据到来或者到达设定的超时时间。进程可以执行sleep系统调用来显式进入阻塞。而处于就绪态的进程无法执行任何造成其阻塞的代码,也就是无法执行read、recv、sleep等阻塞系统调用,因此无法转换为阻塞态。
此外,就绪态表明操作系统为进程分配了足够的资源,进程占有资源,不可被强行剥夺,故进程被调度时会进入运行态。
