操作系统第六周(第一堂)

2024-05-04 10:20

本文主要是介绍操作系统第六周(第一堂),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

回顾

线程与进程的关键点:

1、进程之间是并发运行的,线程之间也是并发运行的

2、线程是CPU使用的基本单位,是程序执行的基本单位

3、进程是CPU分配资源的单位

4、线程是进程的上下文,子进程不是父进程的上下文

5、进程是程序运行的实体

6、线程出现后比进程节省资源的重要原因在于:在一个线程被阻塞后CPU切换其他线程的速度更快

7、进程创建线程后,进程本身也仍然和线程并发执行,共同抢占CPU资源

关于线程的理解,我们只需要停留在:1、线程是程序执行的基本单位;2、线程是进程的上下文与进程共同抢占CPU资源 便可以了。

后续不会特别区分线程和进程,我们的知识点都将以进程展开

进程调度 

进程调度就是指CPU在不同的进程间切换,以提高CPU整体的利用率

必要性

进程在运行中有时需要IO参与,IO在执行中进程会被中断,此时CPU是空闲的,因此可以让CPU运行其他的进程

根本原因:进程运行是I/O执行和CPU执行交替进行的

现实统计结果: 在实际对程序进行调查后,发现大量的程序主要的时间都处于I/O执行阶段,实际需要CPU的时间非常少,这也就意味着CPU需要有较多的进程切换以保证自己的利用率。

下图中大部分的进程CPU占用时间在2s左右

调度程序 

调度程序实际上指的是短期调度程序(从内存的就绪队列中选择进程调用到CPU中)。调度程序的目的是在就绪队列中为CPU中选择下一个运行的进程

其他调度程序有:中期调度程序(从内存中选择进程调用到磁盘中)

                             长期调度程序(从磁盘中选择进程调度到内存就绪队列中)

后面我们用调度程序指代短期调度程序 

调度程序类型

调度程序可以分为两类:一、抢占的;二、非抢占的

定义如下:

抢占的:一旦有新进程准备就绪,操作系统就会给正在CPU执行的进程发出中断信号让其转为waiting状态,并调度新进程入CPU运行

非抢占:一旦某个进程分配到CPU则会一直使用CPU直到它终止或切换到等待状态

另一种视角: 

1、当调度只出现第一种和第四种情况时,则表示该调度程序是非抢占式的,否则就是抢占式的。

2、发送调度时,上图中第二种情况是该进程被其他进程抢占,第三种情况是该进程准备抢占其他进程

图解视角: 

利用上面用过的图帮助大家更直观的理解抢占和非抢占程序

1、箭头指向位置表示调度发生的时间

2、第一个箭头表示发生在CPU执行区间内

3、第二个箭头表示发生在CPU执行区间结束时

调度准则

重点的准则有:周转时间、等待时间

这里直接贴上黑宝书的图:

调度算法 

CPU需要调度进程,那么肯定就需要一个程序去执行这个调度的操作。不同的调度程序有不同的实现算法,其执行调度操作的特点肯定是不同的,接下来就介绍几种典型的调度算法,它们都有各自的优缺点,适用的场景也不同 

先到先服务算法(FCFS算法)

特点

1、先到CPU的先被服务,后到的后被服务

2、FCFS是非抢占式的,一旦进程被分配给了CPU则会一直运行到释放CPU(程序终止或请求I/O)

3、平均等待时间往往很长,变化很大

4、存在护航效应(所有其他进程等待一个大进程释放CPU),这是导致3出现的内核原因

 举例

假如P1先进入CPU那么画出甘特图如下 :

此时就出现护航效应 ,计算出各进程的等待时间为:

  • P1:0ms
  • P2:24ms
  • P3:27ms

所以平均等待时间为:(24+0+27)/3=17ms

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

特点

1、在就绪队列中选择最短CPU执行长度的进程

2、SJF算法可以是抢占式的也可以是非抢占式的,抢占理论上更优

3、SJF算法是一种特殊的优先级算法

4、SJF算法最困难的点在于如何确定进程的CPU执行长度

举例(非抢占式,0时刻各进程一起进入)

 假设是非抢占式的,画出甘特图如下 :

假设在0时刻各进程一起进入CPU,计算出各进程的周转时间:

  • P4:3ms
  • P1:9ms
  • P3:16ms
  • P2:24ms

平均周转时间为:(3+9+16+24)/4=13ms

如何预测进程执行的上下文长度

可以利用每一个进程的历史执行长度来预测该进程下一次执行的长度

上图就是CPU对一个进程执行长度的预测:从左往右看,8=(10+6)/2,6=(8+4)/2,6=(6+6)/2~~~~(即将预测时间与实际时间取平均作为下一个时间的预测,就是让CPU实际执行长度不停去修正我们的预测长度)

举例(抢占式) 

画出甘特图如下: 

计算各进程的等待时间 

  • P1:9ms
  • P2:0ms
  • P3:15ms
  • P4:2ms

平均等待时间为:(9+0+15+2)/4=6.5ms

总结

本文到这里就结束啦~~下节课我们再来进入剩下的三种调度算法
如果觉得对你有帮助,辛苦友友点个赞哦~

知识来源:操作系统概念(黑宝书)、山东大学高晓程老师PPT及课上讲解。不要私下外传

这篇关于操作系统第六周(第一堂)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/958980

相关文章

Linux操作系统 初识

在认识操作系统之前,我们首先来了解一下计算机的发展: 计算机的发展 世界上第一台计算机名叫埃尼阿克,诞生在1945年2月14日,用于军事用途。 后来因为计算机的优势和潜力巨大,计算机开始飞速发展,并产生了一个当时一直有效的定律:摩尔定律--当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。 那么相应的,计算机就会变得越来越快,越来越小型化。

1、简述linux操作系统启动流程

1、简述linux操作系统启动流程 启动第一步--加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。开机时将ROM中的指令映射到RAM的低地址空间,CPU读取到这些指令,硬件的健康状况进行检查,按照BIOS中设置的启

操作系统是怎么为不同的程序分配所需的内存空间的

操作系统为不同的程序分配内存空间的过程涉及多个关键步骤,确保每个程序都有其所需的内存资源,同时避免程序之间的冲突。以下是操作系统如何为程序分配内存空间的详细过程: 1. 内存管理的基础概念 虚拟内存:现代操作系统使用虚拟内存机制来为程序提供隔离的内存空间。每个程序运行在其独立的虚拟地址空间中,这使得程序间的内存互不干扰。物理内存:实际的 RAM(随机存取存储器),由操作系统和硬件共同管理。虚拟

操作系统安全保护

操作系统安全概述 概念:满足安全策略要求,具有响应安全机制及安全功符合特定安全标准,在一定约束条件下 能抵御常见网络安全威胁,保障自身安全运行及资源安全 安全等级:根据安全功能和安全保障要求分为 用户自主保护级  系统审计保护级 安全标记保护级 结构化保护级 访问验证保护级 操作系统作用: 负责计算系统的资源管理、支撑和控制各种应用程序运行,为用户提供计算机系统管理接口 是构成网络信息

Linux操作系统命令集(一)

最近开了操作系统的课,弄着虚拟机的linux系统命令学学 文件和目录操作命令: ls:列出目录内容 示例:ls -l 以长格式列出目录内容cd:切换目录 示例:cd /home/user 切换到 /home/user 目录mkdir:创建目录 示例:mkdir new_directory 创建名为 new_directory 的目录rmdir:删除空目录touch:创建空文件或更新文件的时间戳

操作系统分页式存储管理

每次输入地址后,计算出页号,若页号越界,则给出错误提示。否则依次调用FIFO和LRU算法,这里值得注意的是,由于我们的FIFO算法先于LRU算法被调用,那么当在处理FIFO算法时,我们暂且不将位视图相应位置做变化,留到处理LRU算法再做处理。 对于FIFO、LRU算法的缺页,我们分两种情况考虑,第一种是模拟栈内还有空间,那么直接将其入栈。第二种是模拟栈内无空间,要发生置换。发生置换时把模拟栈最底

linux定时监听ssh服务是否启动-------麒麟操作系统永久关闭swap

linux监听ssh服务是否启动 1、监听脚本2、定时任务3、麒麟操作系统,永久关闭swap 1、监听脚本 #在/usr/local/bin目录下新建脚本文件 cd /usr/local/bintouch check_sshd.sh#给可执行权限chmod +x /usr/local/bin/check_sshd.sh 脚本内容如下: #!/bin/bashs

【银河麒麟高级服务器操作系统实例】虚拟化平台系统服务中断现象分析及处理建议

服务器环境以及配置 【机型】虚机 处理器: Kunpeng-920 内存: 40G 【内核版本】 4.19.90-23.8.v2101.ky10.aarch64 【OS镜像版本】 银河麒麟操作系统 Kylin-Server-10-SP1-Release-Build20-20210518-arm64 【第三方软件】 智能运维系统、mysql数据集群 现象描述 环境描

VMware17 虚拟机下载以及 CentOS8 操作系统安装配置 一条龙全教程

目录 一、安装 vmware workstation 虚拟机  二、安装 CentOS8 操作系统 三、安装 FinalShell 远程连接 一、安装 vmware workstation 虚拟机     安装中...(耐心等待)  到此安装完成,点击启动运行  激活码如下:  MC60H-DWHD5-H80U9-6V85M-8280D

操作系统之虚拟机

虚拟机(Virtual Machine, VM)是一种通过虚拟化技术将一台物理计算机虚拟化为多个独立的虚拟计算机的技术。每个虚拟机都可以运行自己的操作系统,仿佛它们是独立的物理计算机。虚拟机的引入大大提高了计算资源的利用率,并提供了更大的灵活性。 虚拟机的定义 虚拟机是通过虚拟化技术在一台物理计算机上创建的多个虚拟计算环境。每个虚拟环境(虚拟机)都可以运行一个独立的操作系统和应用程序,仿