Io printf()是否调用短期调度程序来调度就绪队列中的另一个进程?

Io printf()是否调用短期调度程序来调度就绪队列中的另一个进程?,io,operating-system,scheduler,context-switch,Io,Operating System,Scheduler,Context Switch,当一个进程试图输出到控制台(使用printf)时,它是否处于I/O事件下,在该事件下它将被发送到等待队列,因此,短期调度程序开始运行并选择另一个进程来占用cpu时间 在控制台输出事件中是否发生上下文切换?当然,如果执行输出的另一个线程锁定了I/O流,则可能会发生上下文切换 不要使用你所说的“短期计划”。控制台流可能会受到互斥锁的保护,并在线程请求I/O时以“通常”的方式被线程锁定/解锁。您需要手动同步。您不能假设它是线程安全的。 如果需要,单独的线程不会同时访问流,则需要使用互斥对象包装输出。短

当一个进程试图输出到控制台(使用printf)时,它是否处于I/O事件下,在该事件下它将被发送到等待队列,因此,短期调度程序开始运行并选择另一个进程来占用cpu时间

在控制台输出事件中是否发生上下文切换?

当然,如果执行输出的另一个线程锁定了I/O流,则可能会发生上下文切换


不要使用你所说的“短期计划”。控制台流可能会受到互斥锁的保护,并在线程请求I/O时以“通常”的方式被线程锁定/解锁。

您需要手动同步。您不能假设它是线程安全的。 如果需要,单独的线程不会同时访问流,则需要使用互斥对象包装输出。

短期调度程序(也称为CPU调度程序)决定在时钟中断、I/O中断、中断后执行(分配CPU)哪些就绪内存进程,操作系统调用或其他形式的信号