CN101650669A - 多线程下执行磁盘读写的方法 - Google Patents
多线程下执行磁盘读写的方法 Download PDFInfo
- Publication number
- CN101650669A CN101650669A CN200810146255A CN200810146255A CN101650669A CN 101650669 A CN101650669 A CN 101650669A CN 200810146255 A CN200810146255 A CN 200810146255A CN 200810146255 A CN200810146255 A CN 200810146255A CN 101650669 A CN101650669 A CN 101650669A
- Authority
- CN
- China
- Prior art keywords
- write
- disk read
- thread
- read
- under multi
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明涉及一种多线程下执行磁盘读写的方法,包含:提供一读写命令等待队列中的一待处理命令数;提供对应于待处理命令数的一期望磁盘读写线程数量;以及比较期望磁盘读写线程数量与一现有磁盘读写线程数量,以决定是否新增或删减一磁盘读写线程。
Description
技术领域
本发明有关于一种磁盘读写的方法,特别是一种多线程下执行磁盘读写的方法。
背景技术
多线程(multi-thread)为一种操作系统用来提高系统处理效能的方法,由于每一个待处理类别的命令均有一个线程处理,这些不同的线程可传送至处理器进行处理。当某一类待处理事件在作长时间的等待性处理时,操作系统可切换至其它类别事件的线程执行。或者,操作系统可在极短的时间间隔内在多个线程之间切换,以在一定时间内处理多个事件的命令,以提高系统处理效能。
现有技术中,也有利用多个线程处理磁盘读写的待处理命令,以求提高磁盘的存取效能。但是当磁盘的读写量不大时,针对磁盘读写的处理命令的多个线程反而会有闲置的情形。由于操作系统在进行多线程的切换时,会包含这些闲置的线程,因此当轮到等待的线程,如对应于鼠标命令的线程时,已经经过许多闲置的磁盘读写线程切换,反而造成处理效能降低。
因此,如何在多线程下执行磁盘读写,且不因闲置的磁盘读写线程造成处理效能降低的情形,便成为相当重要的课题。
发明内容
本发明所要解决的技术问题在于提供一种多线程下执行磁盘读写的方法,用以解决多线程下执行磁盘读写时,因过多闲置的磁盘读写线程而导致系统处理效能降低的情形。
为了实现上述目的,本发明提出一种多线程下执行磁盘读写的方法,包含:接收一磁盘读写命令;暂置磁盘读写命令于一读写命令等待队列;提供读写命令等待队列中的一待处理命令数;提供对应于待处理命令数的至少一磁盘读写线程;以及分配磁盘读写命令到磁盘读写线程的其中之一。
本方法还包含定义每一线程的一最大处理命令数,以根据待处理命令数与最大处理命令数决定磁盘读写线程的数量。其中,在处理完毕磁盘读写命令时,将处理完毕的磁盘读写命令自读写命令等待队列中删除,并更新读写命令等待队列中的待处理命令数。接着,再根据更新后的该待处理命令数决定是否消除其中一个磁盘读写线程。或者,根据所纪录的处理命令数决定是否新增另一磁盘读写线程,其中所接收的磁盘读写命令可分配至新增的磁盘读写线程。
为了实现上述目的,本发明另一实施例中提出一种多线程下执行磁盘读写的方法,包含:提供一读写命令等待队列中的一待处理命令数;提供对应于待处理命令数的一期望磁盘读写线程数量;以及比较期望磁盘读写线程数量与一现有磁盘读写线程数量,以决定是否新增或删减一磁盘读写线程。
本方法包含定义每一磁盘读写线程的一最大处理命令数,该期望磁盘读写线程决定于待处理命令数与最大处理命令数。其中还包含在处理完毕一磁盘读写命令,或是新接收磁盘读写命令后,变更读写命令等待队列中的待处理命令数。待处理命令数包含有未处理完成的磁盘读取命令与新接收的磁盘读写命令。
本发明的多线程下执行磁盘读写的方法可依照不同的读写量,动态地产生或是消除磁盘读写线程,使操作系统中的多线程尽量维持都是待处理的线程,减少闲置的磁盘读写线程,以避免因过多的闲置磁盘读写线程拖累系统的处理效能。
附图说明
为使本发明的上述和其它目的、特征、优点与实施例能更明显易懂,所附附图的详细说明如下:
图1是本发明的多线程下执行磁盘读写的方法一较佳实施例的流程图;
图2是本发明的多线程下执行磁盘读写的方法另一较佳实施例的流程图。
【主要组件符号说明】
110~180:步骤 210~260:步骤
具体实施方式
以下将以附图及详细说明清楚说明本发明的精神,任何熟悉本领域的技术人员在了解本发明的较佳实施例后,当可由本发明所教示的技术,加以改变及修饰,其并不脱离本发明的精神与范围。
为有效地解决现有技术中使用多线程执行磁盘读写时,因切换时经过的闲置磁盘读写线程过多,反而造成系统效能低弱的情形,本发明便提出了一种在处理磁盘读写命令时,依照不同的读写量动态地产生或是消除磁盘读写线程,使操作系统中的多线程尽量维持都是待处理的线程,以提高处理器的处理效率。
参照图1,其示出了本发明的多线程下执行磁盘读写的方法一较佳实施例的流程图。应用本发明的操作系统包含有一读写命令分派程序,步骤110为接收磁盘读写命令,接着,步骤120中,读写命令分配程序可将所接收到的磁盘读写命令暂置在一读写命令等待队列。步骤130为提供读写命令等待队列中所纪录的待处理命令数,包含更新读写命令等待队列中的待处理命令数,使所纪录的待处理命令数随着所接收的磁盘读写命令数量而改变。待处理命令数包含有未处理完成的磁盘读写命令,与新接收的磁盘读写命令。
步骤140则为提供对应于待处理命令数的至少一磁盘读写线程。其中,读写命令分派程序中包含有定义每一磁盘读写线程的最大处理命令数,以根据所定义的最大处理命令数与所纪录的待处理命令数提供对应的磁盘读写线程。接着,步骤150为读写命令分派程序将所接收的磁盘读写命令分配到所述磁盘读写线程的其中之一。
步骤160中,当磁盘读写命令处理完成之后,读写命令分派程序可将该命令由读写命令等待队列中删除,并在步骤170中更新读写命令等待队列中的待处理命令数。接着,进入步骤180,根据更新后的待处理命令数决定是否消除其中一个现有的磁盘读写线程,以防止闲置的磁盘读写线程降低系统效能的情形。
步骤140中可将待处理命令数减1的值除以最大处理命令数,取其整数部位再加1,即可得到期望提供的磁盘读写线程的数量。或者,也可将待处理命令数除以最大处理命令数后的值无条件进位至整数位,以得到期望提供的磁盘读写线程的数量。须注意的是,磁盘读写线程的数量也可透过其它合理的判断步骤决定。
由于磁盘读写线程的数量为对应于现有的待处理命令数,这些待处理的磁盘读写命令可有效地分配到磁盘读写线程中,而不会因磁盘读写命令不多而产生闲置的磁盘读写线程。
参照图2,其示出了本发明的多线程下执行磁盘读写的方法另一较佳实施例的流程图。本发明可透过读写命令分派程序纪录读写命令等待队列中的待处理命令数,该待处理命令数包含有未处理完成的磁盘读写命令数量,以及新接收的磁盘读写命令。步骤210为提供读写命令等待队列中的待处理命令数。步骤220为提供对应待处理命令数的一期望磁盘读写线程数量,步骤230则为比较该期望磁盘读写线程的数量与现有的磁盘读写线程的数量,以决定是否新增另一磁盘读写线程,或是删除现有的磁盘读写线程,使现有磁盘读写线程数量与期望磁盘读写线程相同。若是期望磁盘读写线程数量等于现有磁盘读写线程数量,则进入步骤260,将磁盘读写命令分配至所述磁盘读写线程。
步骤210中,若是新接收一磁盘读写命令,则会使读写命令等待队列中的待处理命令数增加,导致步骤230中期望的磁盘读写线程数量可能会大于现有的磁盘读写线程数量,因此,则步骤240为决定新增磁盘读写线程。读取命令分派程序会产生新的磁盘读写线程,新的磁盘读写线程会加入原有磁盘读写线程中,以处理读取命令等待队列中的待处理的磁盘读写命令。
而步骤210中,若是处理完毕一磁盘读写命令,则处理完毕的磁盘读写命令会自读写命令等待队列中移除后,使得读写命令等待队列中的待处理命令数减少,导致步骤230中期望的磁盘读写线程数量可能小于现有的磁盘读写线程数量,因此,则步骤250中决定删除其中一个现有的磁盘读写线程。读写命令分派程序可在某一磁盘读写线程回复处理命令完毕时,下达一结束讯号给该磁盘读写线程,使该磁盘读写线程进入结束状态,以防止因系统中过多的闲置线程而造成处理器空转,降低系统效能的情形。
由上述本发明较佳实施例可知,应用本发明具有下列优点。本发明的多线程下执行磁盘读写的方法可依照不同的读写量,动态地产生或是消除磁盘读写线程,使操作系统中的多线程尽量维持都是待处理的线程,减少闲置的磁盘读写线程,以避免因过多的闲置磁盘读写线程拖累系统的处理效能。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (9)
1、一种多线程下执行磁盘读写的方法,其特征在于,包含:
接收一磁盘读写命令;
暂置该磁盘读写命令于一读写命令等待队列;
提供该读写命令等待队列中的一待处理命令数;
提供对应于该待处理命令数的至少一磁盘读写线程;以及
分配该磁盘读写命令到所述磁盘读写线程的其中之一。
2、根据权利要求1所述的多线程下执行磁盘读写的方法,其特征在于,还包含在处理完毕该磁盘读写命令时,将处理完毕的该磁盘读写命令自该读写命令等待队列中删除。
3、根据权利要求2所述的多线程下执行磁盘读写的方法,其特征在于,还包含更新该读写命令等待队列中的该待处理命令数。
4、根据权利要求3所述的多线程下执行磁盘读写的方法,其特征在于,还包含根据更新后的该待处理命令数决定是否消除该至少一磁盘读写线程的其中之一。
5、一种多线程下执行磁盘读写的方法,其特征在于,包含:
提供一读写命令等待队列中的一待处理命令数;
提供对应于该待处理命令数的一期望磁盘读写线程数量;以及
比较该期望磁盘读写线程数量与一现有磁盘读写线程数量,以决定是否新增或删减一磁盘读写线程。
6、根据权利要求5所述的多线程下执行磁盘读写的方法,其特征在于,还包含定义每一磁盘读写线程的一最大处理命令数,该期望磁盘读写线程决定于该待处理命令数与该最大处理命令数。
7、根据权利要求5所述的多线程下执行磁盘读写的方法,其特征在于,还包含处理完毕一磁盘读写命令后,变更该读写命令等待队列中的该待处理命令数。
8、根据权利要求5所述的多线程下执行磁盘读写的方法,其特征在于,还包含在接收一磁盘读写命令后,将该磁盘读写命令暂置于该读写命令等待队列中,并变更该待处理命令数。
9、根据权利要求5所述的多线程下执行磁盘读写的方法,其特征在于,该待处理命令数包含未处理完成的磁盘读取命令与新接收的磁盘读写命令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810146255A CN101650669A (zh) | 2008-08-14 | 2008-08-14 | 多线程下执行磁盘读写的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810146255A CN101650669A (zh) | 2008-08-14 | 2008-08-14 | 多线程下执行磁盘读写的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101650669A true CN101650669A (zh) | 2010-02-17 |
Family
ID=41672908
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810146255A Pending CN101650669A (zh) | 2008-08-14 | 2008-08-14 | 多线程下执行磁盘读写的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101650669A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016078259A1 (zh) * | 2014-11-17 | 2016-05-26 | 中国科学院声学研究所 | 一种基于嵌入式文件系统的流式数据读取方法 |
CN107273231A (zh) * | 2016-04-07 | 2017-10-20 | 阿里巴巴集团控股有限公司 | 分布式存储系统硬盘挂住故障检测、处理方法及装置 |
CN109101194A (zh) * | 2018-07-26 | 2018-12-28 | 郑州云海信息技术有限公司 | 一种刷写性能优化方法和存储系统 |
CN111367626A (zh) * | 2018-12-26 | 2020-07-03 | 北京奇虎科技有限公司 | 一种读写磁盘任务的处理方法和装置 |
CN111367627A (zh) * | 2018-12-26 | 2020-07-03 | 北京奇虎科技有限公司 | 一种读写磁盘任务的处理方法和装置 |
-
2008
- 2008-08-14 CN CN200810146255A patent/CN101650669A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016078259A1 (zh) * | 2014-11-17 | 2016-05-26 | 中国科学院声学研究所 | 一种基于嵌入式文件系统的流式数据读取方法 |
CN107273231A (zh) * | 2016-04-07 | 2017-10-20 | 阿里巴巴集团控股有限公司 | 分布式存储系统硬盘挂住故障检测、处理方法及装置 |
CN109101194A (zh) * | 2018-07-26 | 2018-12-28 | 郑州云海信息技术有限公司 | 一种刷写性能优化方法和存储系统 |
CN111367626A (zh) * | 2018-12-26 | 2020-07-03 | 北京奇虎科技有限公司 | 一种读写磁盘任务的处理方法和装置 |
CN111367627A (zh) * | 2018-12-26 | 2020-07-03 | 北京奇虎科技有限公司 | 一种读写磁盘任务的处理方法和装置 |
CN111367627B (zh) * | 2018-12-26 | 2024-02-13 | 三六零科技集团有限公司 | 一种读写磁盘任务的处理方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111406250B (zh) | 无服务器计算环境中的使用经预取的数据的配设 | |
CN103984598B (zh) | 用于线程调度的方法以及系统 | |
US9417935B2 (en) | Many-core process scheduling to maximize cache usage | |
US9047196B2 (en) | Usage aware NUMA process scheduling | |
CN103823636B (zh) | Io调度方法及装置 | |
US8700838B2 (en) | Allocating heaps in NUMA systems | |
CN102508716B (zh) | 任务控制装置和任务控制方法 | |
US20060123423A1 (en) | Borrowing threads as a form of load balancing in a multiprocessor data processing system | |
CN101650669A (zh) | 多线程下执行磁盘读写的方法 | |
CN100530111C (zh) | 一种多线程访问间接寄存器的调度方法 | |
CN103678167A (zh) | 动态可调整大小的循环缓冲区 | |
CN102708064A (zh) | 从休眠中多阶段恢复 | |
CN103631624A (zh) | 读写请求的处理方法和装置 | |
US20100037231A1 (en) | Method for reading/writing data in a multithread system | |
CN102541959B (zh) | Etl调度方法、装置及系统 | |
KR20090037638A (ko) | 디스크 스케줄링 방법 및 장치 | |
CN106383742B (zh) | 一种基于linux的IO调度方法 | |
CN101324851A (zh) | 线程调度方法及其装置 | |
KR101357975B1 (ko) | 코루틴을 이용하여 원격 프로시저 호출 서비스를 제공하는 방법 및 장치 | |
CN102301664A (zh) | 多核处理器的流分发方法及装置 | |
US11886743B2 (en) | Method for enhancing quality of service of solid-state drive and solid-state drive | |
CN108536609B (zh) | 内存碎片管理系统及方法 | |
CN106126708A (zh) | 一种删除终端存储的文件的方法和装置 | |
CN102004665B (zh) | 工作流系统中任务并发处理方法 | |
CN115981893A (zh) | 消息队列任务处理方法、装置、服务器及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20100217 |