时间片

时间片(timeslice)又称为“量子(quantum)”或” 处理器片(processor slice)”是分时操作系统分配给每个正在运行的进程微观上的一段CPU时间(在抢占内核中是:从进程开始运行直到被抢占的时间)。现代操作系统(如:Windows、Linux、Mac OS X等)允许同时运行多个进程 —— 例如,你可以在打开音乐播放器听音乐的同时用浏览器浏览网页并下载文件。事实上,由于一台计算机通常只有一个CPU,所以永远不可能真正地同时运行多个任务。这些进程“看起来像”同时运行的,实则是轮番穿插地运行,由于时间片通常很短(在Linux上为5ms-800ms),用户不会感觉到。

时间片由操作系统内核的调度程序分配给每个进程。首先,内核会给每个进程分配相等的初始时间片,然后每个进程轮番地执行相应的时间,当所有进程都处于时间片耗尽的状态时,内核会重新为每个进程计算并分配时间片,如此往复。

时间片的分配

通常状况下,一个系统中所有的进程被分配到的时间片长短并不是相等的,尽管初始时间片基本相等(在Linux系统中,初始时间片也不相等,而是各自父进程的一半),系统通过测量进程处于“睡眠”和“正在运行”状态的时间长短来计算每个进程的交互性,交互性和每个进程预设的静态优先级(Nice值)的叠加即是动态优先级,动态优先级按比例缩放就是要分配给那个进程时间片的长短。一般地,为了获得较快的响应速度,交互性强的进程(即趋向于IO消耗型)被分配到的时间片要长于交互性弱的(趋向于处理器消耗型)进程。

我们的公共号

来自乌龟运维 wuguiyunwei.com

QQ群:602183872

时间: 2024-10-10 03:45:52

时间片的相关文章

通用高校排课算法研究----3.基于时间片优先级排课算法

通用高校排课算法研究----3.基于时间片优先级排课算法 3   基于时间片优先级排课算法描述与分析 排课问题实质上是时间.教师.班级.教室.课程这五维关系的冲突问题,要合理的解决这个问题首先要了解排课中的一些基本原则以及排课的一些基本要求. 3.1排课中的基本原则 在课程的编排中应遵循一定的规则, 只有按照基本规则来进行课程的编排才能够减少冲突的发生, 这些基本规则主要有以下几条: 1) 同一班级的学生在同一时间(某些特定的选修课时间除外) 不能安排两门课程 2) 同一教师在同一时间不能安排两

CPU 时间片 分时 轮转调度

时间片即CPU分配给各个程序的时间,每个线程被分配一个时间段,称作它的时间片,即该进程允许运行的时间,使各个程序从表面上看是同时进行的.如果在时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程.如果进程在时间片结束前阻塞或结束,则CPU当即进行切换.而不会造成CPU资源浪费.在宏观上:我们可以同时打开多个应用程序,每个程序并行不悖,同时运行.但在微观上:由于只有一个CPU,一次只能处理程序要求的一部分,如何处理公平,一种方法就是引入时间片,每个程序轮流执行. 举例 编辑 你同时输入两篇

015 输入理解时间片

线程 ● 线程抢占式运行 ○ 启动两个线程 ○ 分别在第一个线程 1 - 100 ○ 第二个线程里面 101-200 ○ 未知 ○ 有一定规律的,哪个线程先抢到时间片,就先执行里面的所有代码   ○ 谁先抢到时间片 就先运行谁的代码 1 #include <windows.h> 2 #include <stdio.h> 3 #include <tchar.h> 4 5 DWORD WINAPI ThreadFuncNo1(LPVOID lParama) 6 { 7 fo

linux内核调度算法(2)--CPU时间片如何分配 转!

内核在微观上,把CPU的运行时间分成许多分,然后安排给各个进程轮流运行,造成宏观上所有的进程仿佛同时在执行.双核CPU,实际上最多只能有两个进程在同时运行,大家在top.vmstat命令里看到的正在运行的进程,并不是真的在占有着CPU哈. 所以,一些设计良好的高性能进程,比如nginx,都是实际上有几颗CPU,就配几个工作进程,道理就在这.比如你的服务器有8颗CPU,那么nginx worker应当只有8个,当你多于8个时,内核可能会放超过多个nginx worker进程到1个runqueue里

时间片轮调的单片机程序结构

时间片轮调的单片机程序结构 作者:佚名 来源:本站原创 我们使用单片机去做一些任务的时候,通常把程序写成顺序结构,基本可以解决大部分的设计要求了.而且这种结构便于理解,而且程序易构成模块化,在各个模块中调用实现更复杂的任务. 然而顺序结构的写法,有时候避免不了沉重冗长的时间等待.例如键盘扫描,你就给我弄了一个delay_20ms()函数,而在这延时的过程,其实 MCU可以做很多事情的,这不白白的浪费掉这段时间吗?其实,delay的这段时间用数码管显示代替,也就是在等待的过程,我们可以做一下显示.

Linux2.6内核进程调度系列--scheduler_tick()函数2.更新实时进程的时间片

RT /** * 递减当前进程的时间片计数器,并检查是否已经用完时间片. * 由于进程的调度类型不同,函数所执行的操作也有很大差别. */ /* 如果是实时进程,就进一步根据是FIFO还是RR类型的实时进程 */ if (rt_task(p)) { /** * 对SCHED_RR类型(时间片轮转)的实时进程,需要递减它的时间片. * 对SCHED_FIFO类型(先进先出)的实时进程,什么都不做, * 退出.在这种情况下, * current进程不可能被比其优先级低或其优先级相等的进程所抢占, *

错误的CPU时间片大小概念

1.错误的CPU时间片大小概念:http://blog.csdn.net/blue_morning/article/details/7843581 2.时间片:http://baike.baidu.com/link?url=YzpkOfifRwmYnozOrlUFt1GiyviL5cFiXNwtgB48yvWsTEWxs5u640SIQR-fqyjOh_sUA3C9NNYWmdC6jspPz0fDW56TfnRLUikUUZh0YCp3jdRtcTnom2sq60TIp7TF 3.CPU时间片:

FreeRTOS——任务调度—抢占式,时间片和合作式

本章教程为大家将介绍 FreeRTOS 操作系统支持的任务调度方式:抢占式,时间片和合作式,这部分算是 FreeRTOS 操作系统的核心了. 对于初学者来说,要一下子就能够理解这些比较困难,需要多花些时间把这些基本概念搞清楚,然后阅读下源码,深入理解实现方法. 关于合作式调度器的特别说明 FreeRTOS 支持的调度方式FreeRTOS 操作系统支持三种调度方式:抢占式调度,时间片调度和合作式调度. 实际应用主要是抢占式调度和时间片调度,合作式调度用到的很少. ? 抢占式调度每个任务都有不同的优

论时间片与定时器

此贴解决了心里一大疑团,也说明了很多问题,比如高精度定时是否一定起作用了,如果异议,请给出充分理由    众所周知,我们编写的应用程序,或者游戏,作为进程形式运行在系统中,而现代系统为了充分发挥cpu的作用,采用了时间片造成程序并行运行的假象.当然如果有多核的话,也能实现一部分并行计算,不过主要还是靠分时间片运行程序.这就带来了一个问题:如何让程序在指定时间做某件事.这不是一个容易回答的问题,因为该程序在正常情况下通常需要先获得cpu时间片,才可以做一会自己的工作,时间片用完后该进程返回就绪队列

runloop和时间片

前一篇<<postNotificationName同步调用导致的白屏问题>>里讲到"mediaView里抛通知时在异步线程抛,利用线程切换避免reloadData过程中再reloadData". 为何这样做可以解决问题呢? 在异步线程(假设是thread10)抛HWCHAT_VIEW_NEED_RELOAD 通知,导致在thread10里同步调用了reloadChatCollectionViewData.因为在reloadChatCollectionViewDa