2019-06-04

写在前面

    本系列是操作系统期末复习笔记,主要参考资料是王道《2019年操作系统考研复习指导》与《操作系统-精髓与设计原理:第七版》。

    本文是本系列的第一篇,介绍进程与线程,是操作系统中的重中之中。对应《操作系统精髓》的第三章与第四章。

进程的定义

Q1:进程和程序是两个概念:程序是代码+数据,进程是代码+数据+堆栈+PCB;程序是永存、静态的,进程是暂时的、动态的。一个程序可对应多个进程,一个进程可以执行一个或几个程序。

进程的状态转换

N1:区分就绪状态和阻塞态的原因主要在于把处理机资源从其他资源中独立出来,是因为在分时系统的时间片轮转机制中,每个时间片只有若干ms,进程的切换是十分频繁的且时间短,其他资源的使用分配对应的时间比较长而且频率较低,因此区分成生命周期的两个状态,能够方便进行管理。

N2:  阻塞和就绪态都能直接到退出状态,由于父进程终止的时候,子进程也会被终止。

Q2阻塞态为什么不能进入运行态?就绪态为什么不能直接进入阻塞态?

N3:  阻塞->就绪:当进程等待的事件到来的时候,中断程序必须把相应程序从阻塞状态转换为就绪状态。

Q3:为什么需要挂起态?为什么需要两个挂起态?在一个没有虚拟内存的系统中,每个被执行的进程都必须完全载入内存。但是由于处理器处理速度比I/O快,很有可能出现所有进程都在等待I/O的情况。因此,即使是多道程序设计,处理器仍然有可能处于空闲状态。解决方法一种是扩充内容,但成本高昂。另一种合理的方法是进行交换:把内存中某个进程的一部分或全部转移到磁盘中。操作系统把阻塞的进程换出到磁盘中的挂起队列,之后取出挂起队列中的另一个进程或者接受一个新进程的请求,将其纳入内存运行(交换是一个I/O操作,因此也可能使问题恶化,但是由于磁盘I./O一般是系统中最快的IO,因此往往能提高性能)。

       当操作系统执行换出操作时候,有两种换进内存的选择:第一种是接入新创建的进程,第二种是调入一个以前挂起的进程。通常调入之前的进程,而不去增加系统的负载总数。但是以前挂起的进程有可能仍处于阻塞,再次调入就毫无意义,所以需要设计阻塞和就绪挂起来调度进程。

      如果存在虚拟内存,可能会执行到只有一部分内容在内存中的进程,如果访问的进程地址不在内存中,则进程的相应部分被调入内存中,可以消除显式交换的需要。但是有可能导致虚拟内存崩溃,所以仍需要显式的交换。

运行->就绪/挂起态:超时之后转换到就绪态,如果如果这个进程被优先级高的抢占之后,就可以直接转换到就绪挂起队列中,并释放一些内存空间。

各种状态->退出:完成、错误、父进程终止

N4:挂起的原因:交换、os原因:挂起后台进程或工具程序进程或是怀疑有问题的进程、交互式用户请求、定时:周期性的进程,在两次使用之间应该被换出、父进程请求:检查或修改挂起的进程,协调不同后代进程的行为

进程的控制

N5:进程切换与处理器模式切换有何不同?模式切换时,处理器逻辑上可能还处在同一进程中。如果进程因中断或异常进入到核心态运行,执行完后又回到用户态,那么操作系统只需要恢复进程进入内核时所保存的CPU现场,无需改变当前进程的环境信息。但若要切换进程,则进程的环境信息也需要改变。

N6:调度和切换的区别?调度是指决定资源分配给哪个进程的行为,是一种决策行为;切换是指实际分配的行为,是执行行为。也就是说,先有资源的调度,然后才有进程的切换。

进程的组织

进程的通信

进程通信是指进程之间的信息交换,PV操作是低级通信方式,高级通信方式以较高的效率传输大量的数据,主要有以下三类:

 线程的概念

Q4:为什么要引入线程?引入进程的目的是为了更好地使多道程序并发执行,以提高资源利用量和系统吞吐量,增加并发程度,(满足功能需求)。引入线程,则是为了减小程序在并发执行时所付出的时空开销,提高操作系统的并发性能。引入线程后,进程的内涵发生改变,只作为除CPU以外系统资源的分配单元,线程则作为处理器的分配单元。有了线程之后,线程切换时,有可能候会发生进程切换,也有可能不发生进程切换,平均下来,每次切换所需要的开销就小了,让更多的线程参与并发,也不会影响到响应时间的问题,提高系统并发性。

N7:线程的用户级/内核级线程示意图

         用户级线程相对内核级的优点:(1):所有线程管理数据结构都在一个进程的用户地址空间中,线程切换不需要内核态特权,进程不需要为了线程管理而切换到内核态,节省了两次状态转换的开销;(2):调度可以是一个用程序相关的,为应用程序量身定做调度算法而不扰乱底层的调度程序;(3):用户级线程可以在任何操作系统中运行,不需要对底层内核进行修改。线程库是一组供所有应用程序共享的应用程序级别的函数。

        用户级线程相对于内核级的缺点:(1):在典型的操作系统中,许多系统调用都会引起阻塞。当一个线程阻塞,整个进程阻塞(2):一个多线程应用程序不能利用多处理技术。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,163评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,301评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,089评论 0 352
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,093评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,110评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,079评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,005评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,840评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,278评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,497评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,667评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,394评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,980评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,628评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,649评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,548评论 2 352

推荐阅读更多精彩内容