2 lqhqianghua lqhqianghua 于 2016.04.20 13:59 提问

CPU如何判断磁盘缓冲区的数据属于哪个进程的?修改 10C

比如我第一个进程请求了磁盘的数据,由于这需要等待,那么这中间很可能已经切换到另一个进程了,这个时候在另一个运行的进程也需要请求磁盘的资源,而恰好第一个进程请求的资源已经准备好了,那么这两个进程是不是都会认为现在磁盘缓冲区里面的数据是自己想要的呢??修改

1个回答

xiaochaolovedan
xiaochaolovedan   2016.04.20 16:59

一个进程在读写磁盘数据的时候都是有记录的,时间片轮询的时候,另一个进程也访问磁盘也会记录一个指针的,当进程1再次运行的时候只会访问他记录的那段磁盘空间,当进程2再次运行的时候只会访问进程2记录的那段磁盘空间。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
单缓冲 vs 双缓冲 处理数据时间计算方法
对于单缓冲:假定从磁盘把一块数据输入到缓冲区的时间为T,操作系统将该缓冲区中的数据传送到用户区的时间为M,而CPU对这一块数据处理的时间为 C。由于T和C是可以并行的,当T>C时,系统对每一块数据的处理时间为M十T,反之则为M+C,故可把系统对每一块数据的处理时间表示为Max(C, T)+M。 对于双缓冲:系统处理一块数据的时间可以粗略地认为是MAC(C, T)。如果C<T,可使块设备连续输入(图中
缓冲管理
----- 为了缓和CPU与I/O设备之间速度不匹配的矛盾,提高CPU和I/O设备的并行性,在现代操作系统中,几乎所有的I/O设备在与处理机交换数据时都用了缓冲区。缓冲管理的主要职责是组织好这些缓冲区,并提供获得和释放缓冲区的手段。 1、缓冲的引入 ---- 在设备管理中,引入缓冲区的主要原因可归结为以下几点: -- 1)缓和CPU与I/O设备间速度不匹配的矛盾。 事实上,凡在数据到达速率
缓冲区和高速缓存
1. 磁盘高速缓存(Disk Cache) 操作系统中使用磁盘高速缓存技术来提高磁盘的I/O速度,对高速缓存复制的访问要比原始数据访问更为高效。例如,正在运行的进程的指令既存储在磁盘上,也存储在物理内存上,也被复制到CPU的二级和一级高速缓存中。 不过,磁盘高速缓存技术不同于通常意义下的介于CPU与内存之间的小容量高速存储器,而是指利用内存中的存储空间来暂存从磁盘中读出的一系列盘块中的信息
文件缓冲内容写到磁盘
c语言中的:标准IO      都有缓存区,这和系统缓冲不同,我们使用fflush()只保证了将IO缓冲写入系统缓冲中,使IO读操作能成功,但系统什么时候写入磁盘,由系统决定,一般是达到一定量时系统他就写入磁盘。当然可以强制系统将系统文件缓冲的内容写入磁盘:linux中可以使用sync命令或sync系统调用 命令sync(1)也调用sync函数。 值得注意的是sync函数只是将所有修
关于高速缓存和I/O高速缓冲的讲解
1. 磁盘高速缓存(Disk Cache) 操作系统中使用磁盘高速缓存技术来提高磁盘的I/O速度,对高速缓存复制的访问要比原始数据访问更为高效。例如,正在运行的进程的指令既存储在磁盘上,也存储在物理内存上,也被复制到CPU的二级和一级高速缓存中。 不过,磁盘高速缓存技术不同于通常意义下的介于CPU与内存之间的小容量高速存储器,而是指利用内存中的存储空间来暂存从磁盘中读出的一系列盘块中的信息
第三章 数据缓冲区高速缓冲
对文件系统的一切存取操作,内核都能通过每次直接从磁盘上读或写入磁盘实现,但这样的方式受到磁盘传输速率的限制,比如读写速度较慢的磁盘会使系统的响应时间加长、吞吐率降低。为了解决多次读写磁盘所花费的大量时间开销,内核通过保持一个称谓数据缓冲区高速缓冲(buffer cache)的内部数据缓冲区来减小对磁盘的读写频率。 缓冲头部 内核体系结构中高速缓冲模块的位置是在文件子系统与设备驱动程序之间。
单缓冲和双缓冲的时间计算
在块设备输入数据的过程中,首先把磁盘数据送到缓冲区,花费的时间为Ts,(简记为Ts过程)                                                    然后把操作系统缓冲区的数据送到用户区,花费的时间为Tm,(简记为Tm过程)                                                    最后用户进程对这批数据进行
内存缓冲区管理
内存缓冲区管理
Linux 查看系统信息命令 cpu、内存、进程、硬盘、网卡
系统 # uname -a               # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue   # 查看操作系统版本 # cat /proc/cpuinfo      # 查看CPU信息 # hostname               # 查看计算机名 # lspci -tv              # 列出所有PCI设备 # lsus
进程缓冲区和内核缓冲区
我们在学习C语言的时候经常会使用到printf和scanf输出输入,printf输出的时候有时候要清空缓冲区,避免把之前残留的内容打印,scanf在读取输入出现不匹配的时候会把字符重新放回缓冲区,也会学习到fflush等函数清空缓冲区,那么这个缓冲区到底是哪个缓冲区呢? 在回答这个问题之前我们先思考一个问题,加入妈妈让我们程序员出去买1一个鸡蛋,我们会买几个?需求:一个鸡蛋,作为程序员必须按照需求