问题描述
总是觉得每天时间不够用,感觉每天都白过了,如何才能做好时间管理!
时间管理、任务管理,计科学生听了狂喜。这不就是操作系统中的进程调度问题么。
先简单讲讲进程调度问题,大家看看就明白为啥本质上这和时间管理是一回事了了。
小故事
平时你打开电脑,开一堆应用,都是需要占用 CPU 的。CPU 就是那个苦逼的打工人,而你则是那个给他派任务的老板。
为了应对潮水般涌来的任务,CPU 需要合理规划做每一个任务的时间。
不能慢悠悠地按照任务派发顺序做,不然老板派来的急事不能及时完成,程序未响应,会被老板炒鱿鱼。(先来先服务 FCFS)
也不能哪个任务 deadline 快到了就干哪个,这样会让 Deadline 比较远的任务被一直拖延,最后成了 deadline 战士。(短任务优先 SJF)
上述两种方法都有缺点,也无法区分不同任务的重要程度。
那有什么好的算法能安排得更好?这里介绍一下带优先级的时间片轮转算法。
算法之内
首先,将任务划分优先级,不必太细,高、中、低三类即可。
然后,每天也可以划分为三个时间片——上午,下午,晚上。
这里应该有读者反应过来了。我们在上午做高优先任务,下午做中优先任务,晚上完做低优先任务。是不是很简单?
或许有读者这时要问了:那怎么划分优先级呢?我每个任务感觉都很重要啊。
简单,假如你有十个任务,请将其划分为1:3:6,也就是一个高优先任务,三个中优先任务,剩下的低优先。当你做完一个高优先任务,就将一个中优先任务提升为高优先。其他的同理。不管有多少任务,请保持这个比例。
这样一来,我们能保证每个优先等级的任务都会被执行。而1:3:6这个比例能让我们投入更多时间在最重要的任务上。
什么?你说这样低优先的任务要干不完了?
那就别干完。这些低优先任务正是你的时间杀手。
算法之外
请意识到以下两点:
- 我们做的许多事情都没有什么意义。
- 我们通常只能执行一小部分计划、梦想、想法、待办事项清单
我们常常陷入一个恶性循环:
首先,我们承诺的太多(包括对自己许下诺言),然后我们就陷入了令人不快的工作的混乱中(例如,令人不快的学习)。这会导致不满情绪的增加,这是逃避问题的完美燃料。逃避的方式可能有电子游戏、BiliBili、暴饮暴食、社交、酗酒、微博等等。逃避问题会减少可用时间,增加不快乐,并结束恶性循环。
怎么办呢?操作系统也有卡死的时候,我相信你不会想对你自己说:「要不重启试试?」
我们需要的是,不再害怕拖延,正视拖延,合理拖延,让拖延成为保护自己的手段。
详情请见:
理性拖延注:SuperMemo 的优先级队列其实也是这个原理。(本回答的灵感也出自于此)
渐进阅读:卡片刷不完?拥抱优先级!