鼓浪屿一日游

去年答应mini娜娜以后每年生日在旅游中过,因为今年工作不久,mini娜娜没有太多的假期,所以选择了去一个近一点文艺点的地方:厦门。

广州过去厦门的高铁也是很紧张,想必是中间经过潮汕地区,提前20天把来回的火车票买了。从广州到厦门坐的是K字头火车,从厦门回来坐高铁到深圳。

周五下班就赶过去广州东跟小娜娜会合坐7点26的火车,每次旅游前都是挺兴奋的。 [Read more...]

操作系统(一)——进程

前言

近期看了几本关于Linux的书籍,打算再重温一下APUE(《Unix环境高级编程》),需要写几篇文章沉淀一下之前看过的记录自己的理解。其实我对Linux系统(或者说操作系统)最感兴趣的部分还是如何执行程序,进程间如何进行调度(进程也成为任务,下文的伪代码中用task来表示跟进程相关的结构)。
这一系列的第一篇就写写自己对进程的理解吧,由于存在一些理解上的偏差,文章描述可能有误,还请指正。

进程初始化

我们告诉操作系统我们要执行程序A和程序B,于是操作系统从硬盘里边把程序A跟程序B读出来,并初始化,最终放入调度队列,整个初始化进程的流程如图1所示:

图1 进程初始化

在初始化进程的内容之前,需要把进程的状态先设置成TASK_UNINTERRUPTIBLE,表示这个进程还不能被唤醒跟不能被调度,在设置完之后把进程状态设置成就绪状态TASK_RUNNING,此时的进程就具备了运行的条件,但是具体能不能运行还得看之后的调度程序是否选择它来运行。
[Read more...]