计算机四级网络工程师--《操作系统(Operating System)》重点内容学习3

开篇语

今天第三次看《操作系统》,本次码字实在“汽车概论”的课堂上写出来的,怀着,唔,应该算是比较糟糕的心情。三月份的计算机的等级考试是在月底3/25-28的。所以不做好笔记,到时候考前还得重新学一遍,学习笔记模式---开!!!!
前面还有两篇类似的:
计算机四级网络工程师--《操作系统(Operating System)》重点内容学习
计算机四级网络工程师--《操作系统(Operating System)》重点内容学习2

计算机四级网络工程师--《操作系统(Operating System)》重点内容学习3_第1张图片
用我最喜欢的Kali Linux的图片做封皮,帅到爆炸吧

正文-----进程线程

进程有两个属性:资源分配、拥有 and 独立调度、执行。
因此,系统要不停地进行资源的分配、回收;现场的保护、恢复,这样会极大地占用系统的资源,不利于系统的性能的充分利用以及并发性的增强。所以,分开进程的两个属性,进程只作为分配和拥有的单位,具体的执行由线程进行。所以,线程产生了!从此,CPU站起来了。(这什么鬼梗,不管了,写进去就不删了)

一、线程的概念:

进程中的一个实体--线程。被系统独立的调度和执行,基本上不拥有系统的资源,只拥有一部分必不可少的资源【程序计数器、一组寄存器、栈】。线程之间共享资源,同一个进程内的线程具有异步性,也具有三个基本状态--就绪、等待、执行。

二、线程/进程的比较:

  • 调度:进程任何时候都是资源的占有者,线程只负责调度执行
  • 并发性:进程并发,线程也并发,所以整机在并发性上大大增强
  • 拥有资源:资源一直占有资源;线程可以访问进程的系统资源
  • 系统开销:创建、撤销所花费的资源 进程>线程;切换 进程>线程 所以实际的开销大大减小
  • 关系:一个程序至少有一个进程,一个进程至少有一个线程(进程由程序、数据、PCB表组成

三、线程实现机制:

(1)用户级线程:用户控制、与系统控制无关

(2)内核级线程:依赖于内核

(3)混合式实现:混合上述两者

四、Pthread线程包(俗称API,应用程序接口)
用户及线程库定义标准,大部分UNIX系统支持

五、进程调度(大家伙来了)

【1、进程调度层次】

  • 高级调度
  • 低级调度
  • 中级调度:部分的资源调度进入内存、另外一部分 进入外存,这就形成了---虚拟存储技术,也就是很多时候电脑参数显示的虚拟内存大小的来源

【2、时机】

  • 正在执行的进程结束
  • 正在执行的进程调用阻塞原语进入阻塞状态
  • 激活原语激活等待的进程
  • 时间片用完了
  • 就绪队列中有高于当前运行的进程的优先级的进程进入

六、调度算法

【1、调度算法设计原则】

  • To Users :周转时间短
  • To System : 系统的吞吐量高

【2、进程调度算法】

  • 先来先服务算法(FCFS)

如果早就绪的进程排在就绪队列的前面,迟就绪的进程排在就绪队列的后面,那么先来先服务(FCFS: first come first service)总是把当前处于就绪队列之首的那个进程调度到运行状态。也就说,它只考虑进程进入就绪队列的先后,而不考虑它的下一个CPU周期的长短及其他因素。FCFS算法简单易行,是一种非抢占式策略,但性能却不大好。

  • 最短作业优先调度算法(SPF)

最短作业优先(SPF)调度算法从就绪队列中选出一个估计运行时间最短的进程,将处理机分配给它,使它立即执行并一直执行到完成,或发生某事件而被阻塞放弃处理机再重新调度。优点是SPF调度算法能有效地降低作业(进程)的平均等待时间,提高系统吞吐量。缺点是该算法对长作业不利;完全未考虑作业的紧迫程度,因而不能保证紧迫性作业(进程)长期不被调度;由于作业(进程)的长短只是根据用户所提供的估计执行时间而定的,而用户又可能会有意或无意地缩短其作业的估计运行时间,致使该算法不一定能真正做到短作业优先调度。

  • 最短剩余时间优先调度算法(SRT)

这是对FCFS和SPF算法的改进,其目标是减少平均周转时间。对预计执行时间短的作业(进程)优先分派处理机。通常后来的短作业不抢先正在执行的作业。

[上述三个算法的实例比较]

假设有三个进程:P1 P1 P3
分别需要 5s 2s 1s
P1最先到达,P2随后到达,时间上排在一起,P3 3s后到达

计算机四级网络工程师--《操作系统(Operating System)》重点内容学习3_第2张图片
算法时间CPU占用时间图
  • 时间片轮转调度算法(RR)

时间片轮转调度是一种最古老,最简单,最公平且使用最广的算法。每个进程被分配一个时间段,称作它的时间片,即该进程允许运行的时间。如果在时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。调度程序所要做的就是维护一张就绪进程列表,当进程用完它的时间片后,它被移到队列的末尾。
适用于交互式进程调度

  • 最高优先级调度算法

在这种调度方式下,系统一旦把处理机分配给就绪队列中优先级最高的进程后,该进程就能一直执行下去,直至完成;或因等待某事件的发生使该进程不得不放弃处理机时,系统才能将处理机分配给另一个优先级高的就绪进程。
在这种调度方式下,进程调度程序把处理机分配给当时优先级最高的就绪进程,使之执行。一旦出现了另一个优先级更高的就绪进程时,进程调度程序就停止正在执行的进程,将处理机分配给新出现的优先级最高的就绪进程。
进程的优先级可采用静态优先级和动态优先级两种,优先级可由用户自定或由系统确定。

  • 多级反馈队列调度算法(MLF)

设有N个队列(Q1,Q2....QN),其中各个队列对于处理机(CPU)的优先级是不一样的,也就是说位于各个队列中的作业(进程)的优先级也是不一样的。一般来说,优先级Priority(Q1) > Priority(Q2) > ... > Priority(QN)。怎么讲,位于Q1中的任何一个作业(进程)都要比Q2中的任何一个作业(进程)相对于CPU的优先级要高(也就是说,Q1中的作业一定要比Q2中的作业先被处理机调度,依次类推其它的队列。
对于最后一个队列来说,里面是遵循时间片轮转法。也就是说,位于队列Q2中有N个作业,它们的运行时间是通过Q2这个队列所设定的时间片来确定的

计算机四级网络工程师--《操作系统(Operating System)》重点内容学习3_第3张图片
这个我就懒得画图了。细细体悟我的笔记吧

结束语

先到这里了。今天,唔,容我花点时间调整心情再来面对这个世界!对了,推荐一首我很喜欢的歌,歌手喜欢(好吧,因为嗓子喜欢),歌词很喜欢,调调特别喜欢,你们能相信我会为了多听几遍这首歌,而在雨天从图书馆走回去吗?而且还特意的减速绕路,因为,在雨中,迷蒙的夜灯下,世界都变得很美啊!

计算机四级网络工程师--《操作系统(Operating System)》重点内容学习3_第4张图片
邓福如,声音好听,另外,别看评论,烦得要死,听歌就好

个人宣言

知识传递力量,技术无国界,文化改变生活!

你可能感兴趣的:(计算机四级网络工程师--《操作系统(Operating System)》重点内容学习3)