系统调用和CPU时间片之间的关系怎样的,是否有原子性?

看书时了解到,write系统调用可以认为是原子性的。于是我有些好奇:

  1. 如果一个进程在它的时间片即将结束时调用了write,到了原本应该切换进程时这个write调用还没完成。那么会发生什么?内核会自动将它的时间片延长直到这个调用完成,还是会依然按照既定的时间片的规划切换到其他进程,让原进程就停留在write中?
  2. 如果两个不同的进程同时调用write写同一个文件(系统是多核的,所以真的是“同时”)。比如分别写"1111"和"2222",有没有可能在某种情况下出现“11221122”?(经过个人尝试是不会错乱的,但我想知道有没有某种特殊情况能出现这种错乱呢)
阅读 2.4k
1 个回答

你了解原子性是什么意思吗?如果会错乱还能叫原子性?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题