进程

什么是进程?
  • 进程是一个实体,每一个进程都有它自己的地址空间。
  • 进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体。
进程的三种状态
  • 执行态run : 进程正在使用CPU
  • 等待态wait : 进程正在等待I/O完成
  • 就绪态ready : 进程不在使用CPU,但已经准备好使用CPU
进程状态的转换
进程的状态转换
  • 就绪 -> 执行 : 当前运行进程阻塞,调度程序选一个优先权最高的进程占有CPU
  • 执行 -> 就绪 : 当前进程时间片用完
  • 执行 -> 等待: 当前运行进程等待键盘输入
  • 等待 -> 就绪: I/O操作完成,被中断处理程序唤醒
进程的调度

进程调度器是操作系统的一部分,决定了何时运行什么进程。它通常能够暂停一个运行中的进程,将它放回到运行队列当中,并运行一个新进程,我们把这样的调度器叫做抢占调度器。否则,它就是协同调度器。

进程调度的指标:
  • CPU利用率:尽可能让CPU保持忙的状态
  • 吞吐量:每单位时间CPU运行时所完成的进程数目
  • 周转时间:从进程创建到结束的时间
  • 等待时间:进程在就绪队列中等待所花的时间综合
  • 响应时间:从事件产生到进程或系统作出响应所经过的时间
进程调度的方式:
  • 可抢占式:就绪队列中一旦有某进程的优先级高于当前正在执行的线程的优先级时,操作系统会立即进行线程调度,完成线程切换。
  • 不可抢占式:即使在就绪队列中有某进程优先级高于当前正在执行的进程的优先级时,当前进程仍将占用CPU执行,直到该进程自己进入阻塞状态,或时间片用完,或在执行完系统调用后准备返回用户进程前的时刻,才重新发生调度让出CPU。

显然,可抢占式调度可有效减少等待时间和响应时间,但会带来较大的其他管理开销,使得吞吐量等的性能指标比不可抢占式调度要低。所以一般在桌面计算机中都支持可抢占式调度,使得用户可以得到更好的人机交互体验,而在服务器领域中不必非要可抢占式,而通常会采用不可抢占式,从而可提高系统的整体吞吐量。

进程调度的策略
  • 先到先服务(FCFS):处于就绪状态的进程按先后顺序进入到就绪队列中,FCFS策略是按就绪进程进入就绪队列的先后次序选择当前最先进入就绪队列的进程来执行,直到此进程阻塞或结束,才进行下一次的进程选择调度。

  • 缺点:FCFS为不可抢占式调度。一旦一个进程占有CPU,就一直运行下去,直到该线程完成其工作,或因等待某一事件而不能继续执行时,才释放CPU。如果操作系统采用这种进程调度方式,则一个运行时间长且正在运行的进程会使很多晚到的且时间短的进程的等待时间过长。

  • 短作业调度(SJF):选择就绪队列中确切运行时间最短的进程进入执行。它既可采用可抢占式,也可采用不可抢占式。

  • 评价:短进程优先调度算法能有效缩短进程的平均周转时间,提高系统的吞吐量,但不利于长线程的运作。而且如果进程的运行时间是”估计“出来的话,会导致由于估计的运行时间不准确,而不能实际做到短线程优先。

  • 时间片轮转(RR)算法:定义一个时间单元,称为”时间片“。一个时间片通常在1~100ms,当正在运行的进程用完了时间片后,就会从就绪队列中依次选择下一个就绪状态的进程执行,而被剥夺CPU使用的进程返回到就绪队列的末尾,等待再次被调用。

  • 评价:时间片的大小可调整,如果时间片大到让一个进程足以完成其全部工作,这种算法就退化为FCFS算法。若时间片设置得很小,那么CPU在进程之间的进程上下文切换工作过于频繁,使得真正用于运行用户程序的时间减少。时间片可以静态设置好,也可根据系统当前负载状况和运行情况动态调整。

  • 高响应比优先算法:FCFS算法只考虑进程的等待时间而忽略执行时间,而SJF只考虑执行时间,而忽略了等待时间。而高响应比优先算法既考虑等待时间,又考虑执行时间,为此定义了一个指标:

Rp = (等待时间 + 预计执行时间)/ 执行时间 = 响应时间 / 执行时间
  • 评价:这样既照顾了短线程又不使长线程的等待时间过长,改进了调度性能。但该算法需要每次计算各个进程的响应比,这样会带来较大的时间开销。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,378评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,356评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,702评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,259评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,263评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,036评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,349评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,979评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,469评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,938评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,059评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,703评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,257评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,262评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,485评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,501评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,792评论 2 345

推荐阅读更多精彩内容

  • 又来到了一个老生常谈的问题,应用层软件开发的程序员要不要了解和深入学习操作系统呢? 今天就这个问题开始,来谈谈操...
    tangsl阅读 4,088评论 0 23
  • 引言 当计算机系统处于就绪状态的用户进程数多于CPU数时,就会产生多个进程或线程同时竞争CPU的结果。假设现在只有...
    程序猿胖子阅读 7,718评论 1 3
  • 进程和线程 进程线程的区别1、进程是什么?是具有一定独立功能的程序、它是系统进行资源分配和调度的一个独立单位,重点...
    HeartGo阅读 1,193评论 0 4
  • 11.1进程的概念 进程的定义 进程是指一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程 精髓:正在执...
    龟龟51阅读 468评论 0 1
  • 迷鹿mirror阅读 205评论 0 2