会员登录

  • 个人登录
  • 企业登录
  • 院校登录

用户名:

密  码:

验证码:

记住密码忘记密码

登 录 立即注册立即注册立即注册

为应届生/求职者提供更多职业选择

为企业提供优秀的毕业生资源

为各大院校提供学生就业的渠道

企业入驻院校入驻 全国服务热线:010-80788512

总站

 我的位置:首 页 > 就业指导 >  职场资讯 >发布新职位

有效率的一周应该始于一份安排得当的计划表

2018-07-13来源:世界经理人点击量:1619

我们日常都会遇到时间处理问题,去做什么,什么时候做,以及什么次第做?我们总会想着找到一个最好的方法来进行时间处理,市面上也有许多的书告诉我们该怎样办,但他们却又互不相同,甚至互相矛盾。比如说《搞定:无压作业的艺术》里就推重一种把任何想到的能在两分钟以内结束的作业,灵敏搞定的做法;而与此相对,在《吃掉那只青蛙》里边,却又建议先从困难的事初步,然后到简略事...如同每位作者都有着自己的一套理论,那毕竟

我们日常都会遇到时间处理问题,去做什么,什么时候做,以及什么次第做?

我们总会想着找到一个最好的方法来进行时间处理,市面上也有许多的书告诉我们该怎样办,但他们却又互不相同,甚至互相矛盾。比如说《搞定:无压作业的艺术》里就推重一种把任何想到的能在两分钟以内结束的作业,灵敏搞定的做法;而与此相对,在《吃掉那只青蛙》里边,却又建议先从困难的事初步,然后到简略事...

如同每位作者都有着自己的一套理论,那毕竟该听谁的呢?

那不妨借鉴一下计算机科学中的调度 (Scheduling) 算法,来进行科学时间处理。

调度算法:来源

虽然,时间处理这个概念可能与时间自身相同陈腐,但提到调度算法科学,可能得追溯到19世纪末端。Frederick Taylor 在拒绝了哈佛大学的选取后,成了一名荣耀的机械师学徒,之后一番打拼,从学徒升到了总工程师。期间,他越来越坚决一个主见,那就是,许多机器的时间没有得到最大程度的运用,所以他就提出了一个新的叫作“科学处理”的学科。

所以 Taylor 建立了方案办公室,房间中一块大板子上列着店内全部机器,以及正在进行的作业和正在等候的作业。之后他的同事 Henry Gantt 在此根底前进一步提出了现在我们了解的甘特图,现在被广泛运用在各个大公司的项目处理中,比如亚马逊和 SpaceX

但是他们只是提出概念还有视觉化,却没处理怎样调度这个根本问题。而这还得等到几十年后 RAND 公司的数学家 Selmer Johnson 来处理了。

Johnson 碰上的是书本装订问题,或许说洗衣服问题。洗衣服分两步,洗和烘干。假定你有几篮子衣物(糙汉子表示只需一个篮子),有的比较脏得长时间洗,烘干时间正常;还有的衣物多得长时间烘干,洗倒不用太久。所以 Johnson 就问,毕竟怎样的次第来洗衣服最好呢。

答案很简略,先找出这些篮子里洗或烘干所需时间最短进程,假设是洗就放最前面,假设是烘干就放最终面,不断重复这个进程就能获得最优次第。

因为洗衣进程中,必定有些时间只在洗或只在干,而不是一起进行。为了避免这种浪费,只需使它俩最小就好。所以这就是调度算法中榜首个算法:从最好洗的初步,以最好干的结束。

此外,Johnson 还提醒了两点:

调度是可以用算法方法表现

最优的调度方案是存在的

所以这就为调度延伸出了各种问题,比如说一个有各式各样机器的虚拟工厂,它的最优调度战略是什么。

但今日,我们不谈这些凌乱问题。只谈一台机器情况,因为我们最关心的调度问题也就只需一台机器——我们自己。

截止日期是第终身产力

但是,当挽起衣袖预备初步处理单机器调度问题时,却俄然发现如同有点不对。因为一台机器一次只能做一件事,那无论怎样的次第来做花的时间都相同,还需求什么调度。

但是,慢着,在实践日子中却又是需求考虑干事次第的不是吗?

那是哪儿出问题了呢,这儿就要提到调度中最重要的概念:衡量政策 (metric),清楚你的政策。也就是你得对不同方案好坏设置一个衡量标准,是越快越好,仍是先干重要的好。这也是计算机科学里的一个重要原则:在方案前,先设定一个评判标准(这也是机器学习中evaluation的重要性)。

因此即使同一个问题,假设评判标准不同,那最优战略也就不同。

比如说我们希望尽量不推迟,也就是逾越截止日期的时间最短。那就可以运用称为最早结束日期 (Earliest Due Date)的最佳战略。只看截止日期,先做截止日期最近的,很简略。

或许都不用这儿说,你早就现已会用这个战略了。但实践中不光推迟时间,还会有许多其他要素。比如你买了许多新鲜食物,假设把品尝日期作为截止日期,运用上述战略的话,确实能最小化你食物的过期时间,但就不确保味道了。

所以改动一下测量标准,最小化会过期食物的数量。所以就得到摩尔算法 (Moores Algorithm)。它开始也是先按过期日期先后来吃,但是一旦看到之后的事物可能会在吃之前过期。那么立刻停下来,把最大的食物(需求最长时间吃)丢掉。这样就能尽量减少过期食物数量了。

搞定任务

有时候我们关心的可能不是截止日期,而是越快越多的搞定手头作业。而此时的最优算法又成了最短处理时间(Shortest Processing Time) 算法,即先结束能最快结束的任务。

这就类似《搞定:无压作业的艺术》中的战略了。先把能快速处理的事前处理,也能减少心思担负,使得会合精力于困难的事。

但在实践中,并不是说越快越多结束任务就越好。特别是事有轻重,有些事要比另一些事重要些。那么我们可以对最短处理时间算法进行少数批改,不同的任务有各自权重,运用权重与所需时间比得到“单位时间重要度”,之后只需优先实行重要度高的任务即可。这个算法可以称为加权最短处理时间战略,非常有用。

有意思的是,当查询动物寻食时,也会查询到类似战略,它们会倾向于寻找“单位时间更多能量”的食物。

认清问题

从上面的两个比如可以清楚看出,虽然针对各个标准都能给出最优解法,但选择哪个标准却是在于我们自己。

这也供应了看待推迟症(时间处理的死敌)的另一个视角。一般认为推迟症是一种坏习惯和行为,但会不会实践上推迟症只是用了匹配错了最优战略和衡量方法呢。

一般认为推迟症是懒或许逃避,但其实关于一些勤勉想快点做完作业的人也非常简略出现。比如2014年的一项研讨就发现,有时候人们为了从速结束任务,效果却花了更多时间和精力,也就是欲速则不达。

那么他们采用了错的战略吗,不,他们只是把一个好战略用在了过错的标准上。因为他们可能用的是最短处理时间方法, 但是实践上应该进行衡量的标准并不是最快最多结束任务。

这就是成也标准败也标准。比如说现在的智能手机,会在运用图标的右上角标上未读信息,不管信息的重要性都只计数一,这导致我们不能辨明信息的重要性,而会浪费许多时间去检查不重要信息。只因为我们是以从速结束尽可能多的任务为战略。

而实践上应该做的可能应该是,先把重要的作业做完。这听起来是处理推迟症的牢靠方法,但是关于NASA的人来说确实在最戏剧性地情况下意识到这个问题:火星的外表,而且是众目睽睽下。

优先级倒置和优先束缚

1997年夏天,当人们兴奋地将价值一亿五千万美元的探路者号送上火星,却发现它居然出现了推迟症。寻路者号关于优先度最高的任务漠不关心,却把时间都花在那些中等优先度的任务上。

大名鼎鼎的 JPL(喷气推动实验室)小组爆肝数日,毕竟发现了首恶,那就是调度中的大敌人:优先级倒置 (priority inversion)。详细是这样的,系统先工作一个低优先级任务占用一些系统资源,然后根据计时器半途间断任务,调用调度程序。

这时调度程序想工作高优先级的任务,但因为要用的部分资源被低优先级任务占着,所以只能退而工作中优先级不运用相同资源的任务,或是这个占用着资源的低优先级任务。因为这个原因,往往有些最高优先级的任务被丢在一旁长一段时间不实行。

JPL 一旦发现问题就知道怎样处理了,写了个代码发送到火星。这个处理方法就是优先级承继,方法很简略:一旦发现低优先级任务占用了高优先级任务的资源,便立刻将其优先级升为与被占用任务相同优先级,从速实行完。

日子中也会遇到许多优先级倒置的问题,可以说它也是推迟症的首恶巨恶之一。比如我最近的比如,需求交学费,非常急迫(不按时交开除学籍!),但是银行在山下,下山得骑车。借车这事,在我心里优先级又不高,效果便一向没借车,去忙些其他作业了。

直到最近学校发来最终通牒:“快交学费!” 可以去管帐科,所以便不用下山了,也就不用借自行车,也就没有低优先任务阻挠交学费这个急迫任务了,所以我也就没有被开除了(这才是关键)。

事实上,下次碰到这样这样的作业,正确做法是将借自行车晋级为交学费相同急迫的作业。

以上讲的都涉及到优先束缚,也就是有些事只能在某些事之后结束。

撞上墙了!

Eugene Lawler 可以说是20世纪研讨优先束缚最出色的科学家,他简直花了终身时间来考虑怎样才华更有用地结束一系列接连任务。因为当一个一般调度问题参与优先束缚后,可能会变得很不相同。

比如说最早结束日期,假设参与优先束缚,就会发现正本战略行不通了,因为有些任务即使截止日期早,但却得在另一件任务之后做。而 Lawler 证明只需求反过来从后往前就能很长处理,也就是先找没有未结束任务中没有其他任务依托的任务,找出其间截止日期最晚的,放在调度表最终,然后不断重复这个操作就行了。

此外,他还发现了许多很有意思的其他问题。比如说最短处理时间,当参与优先束缚后,如同仍是一个很根底的问题,但事实上却没有一个有用处理它的方法。不但是 Lawler 没想出来,其他研讨人员也都没想出来。

而且不光最短处理时间问题, 情况远远比这更糟。那就是, Lawler 发现有一系列类似问题,都不能得到有用处理,所以调度理论也就撞上墙了。

不过这也激起了像 Lawler 这样的顶尖研讨人员的宏愿,去探究调度问题中毕竟哪些是无法被处理的,哪些又能被处理的。也就是说对整个调度理论,进行一次大勘察,而这个大勘察现在都还在继续着。

最近研讨显现,调度问题中有7%的问题现在没有了解。

而即就是剩下93%了解的问题,情况也不容乐观,其间只需9%是可以被有用处理的,而剩下84%都被证明无法被处理。也就是说事实上关于大多数调度问题,确实也没有最佳方法。

所以当我们对处理时间感到压力山大时,也不用太自责,或许它正本就太难了。但是,这儿提到的一些算法仍是可以作为你处理这些难问题的起点,即使不是最优方法,但至少有个比较好的方法可以运用。

停停停,先来干这个:优先处理

到目前为止说的都是些让问题变得更凌乱的要素,那现在来看看让问题变得更简略的吧。比如假设可以在某件任务半途停下来,而去干其他事。这个叫作抢先 (preemption)的性质,让问题又发生了大大的改动。

一些之前无法被处理的问题,又能被处理了。比如说参与优先束缚的最短处理时间问题,假设参与抢先后,就又能得到有用处理了。只需不断切换为处理其时重要度最大的任务即可。

抢先,特别合适应对不确定性。假定在进行一些任务时,一起有新的任务俄然参与,那么就需求重新考虑其时该工作的任务,也就是设置哪个任务抢先。

不确定性对战略的影响不大,仍然按照参与抢先后的战略进行就可以了。

抢先处理的价值

抢先有它的长处,当然也就有其缺陷,环境切换 (Context Switch)。而环境切换时,是需求支付一些价值的。

日常中我们也常会碰到,从某事切换到另一件事时,有时需求调整下心思情况,或许作业环境。比如说检查邮件时,得翻开邮件软件,等上好一会;假设要写代码,得登录终端,调理好情况;假设写作,又得找来卡片,翰墨,工具书...

任务和任务之间切换时,是需求耗费额外时间的。当任务少时,或许还看不出有什么问题,但当我们把任务切换频率提到很高时,就会出现一个很乖僻的现象系统动摇 (thrashing).

简略的解说就是,假定有许多任务,我们想进行多任务处理,所以就给每个任务分配相等但少数的时间,不断地来回切换处理任务,这类似于计算机系统的分时处理。

假定每个任务都需求预备时间,所以当任务太多,分配给每个任务的时间块很短时,就会出现不断在任务之间切换,而每次预备时间就把时间块用完了的现象。这样就会不断在各个任务上移动,而实践作业却一点没做的现象,即系统动摇。

日常日子中类似的,一有邮件就点开瞧瞧,一有信息就拿起来看看,有过经历的人也知道这样对功率影响有多大。

关于计算机来说,这个问题可以简略用晋级内存或缓存的方法处理,当然关于我们人,要晋级大脑可没那么简略,或许还得等到多年往后生物技术的展开。

但也仍是有些方法来避免这个问题的。榜首,我们可以减少任务的数量,对不重要的作业说不,把精力只会合在少数任务上。第二,我们可以规矩最短时间块得有的时间,也就是很盛行的西红柿钟,给每个任务规矩一个满足的最短时间。

当然,假设你不想减少任务数量,也不想费事的运用西红柿钟,调度中一些其他技巧也能帮组你避免环境切换的损耗。

比如说间断结合 (Interrupt Coalescing),其实就是批量处理。简略说就是把类似任务放在一起结束,这样也就避免了环境切换。比如说把一天的特定半个小时全部用来回复邮件和发邮件,就能前进许多功率。

运用这个技巧的模范人物就是大神级程序员 Donald Knuth,他说:“我一次只干一件事。” 当然,他说的一件事是指需求相同环境的一类任务。比如说在“2014 TeX 大调整”中,他就一下把曩昔6年我们关于 TeX 反响的全部bug都修正了。结束之后还挂上“等候2021年的大调整”。不仅如此,他也没有电子邮箱,就连邮件都是三个月才看一次,而传真更是六个月才看一次。

其实我想知道其他时间他都干什么去了。

怎样处理自己的时间

最终回到主题,怎样运用调度算法最优地处理自己的时间?

很怅惘,答案是没有。因为实践中要处理的调度问题往往都是不可处理的,也就是没有最好的调度方案。

但是呢,至少我们也能从中借鉴到一些小技巧运用于时间处理中,比漫无目的地东一棒西一锤瞎干的好。

清楚衡量任务结束的标准,根据这个标准拟定方案。

清楚手头任务的重要性,再根据任务结束所需时间进行预算,先结束最急迫最重要的任务。

当一个急迫任务必须在一个不急迫任务之后才华进行时,将这个不急迫任务晋级为相同急迫的任务。

不要检验短时间内进行多任务,而是将相同任务归类,然后一段时间只做一类任务。

相关文章