gpt4 book ai didi

unix - 打印到屏幕会导致切换到内核模式并在 Unix 中运行 OS 代码吗?

转载 作者:行者123 更新时间:2023-12-05 00:37:52 24 4
gpt4 key购买 nike

我正在学习测试是操作系统(unix 是我们的模型)。
我有以下问题:

以下哪两项不会导致用户的程序停止并切换到操作系统代码?

A. the program found an error and is printing it to the screen.

B. the program allocated memory that will be read later on from the disk.



好吧,我有答案,但是,我不确定它们有多好。
他们说答案是 B。
但是,B 是当用户使用 malloc 时哪个是系统调用?分配内存不通过操作系统?
为什么打印到屏幕需要操作系统呢?

感谢您的帮助

最佳答案

malloc不是系统调用 .这只是一个功能。

当您调用 malloc它会检查它(内部)是否有足够的内存给你。如果是,它只返回地址 - 无需陷入内核模式。如果没有,它会询问操作系统(实际上是系统调用)。

根据完成打印的方式,这也可能会或可能不会引发系统调用。例如,如果您使用 stdio , 然后打印是用户缓冲的。这意味着 printf表示复制到某些 stdio没有任何实际 I/O 的缓冲区。但是,如果 printf决定刷新,那么确实必须执行系统调用。

关于unix - 打印到屏幕会导致切换到内核模式并在 Unix 中运行 OS 代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6476438/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com