操作系统OS(二)进程和线程

news2024/11/13 9:36:27

进程

所谓进程,简单来说是计算机中的各种任务。

进程是程序的一次执行,是操作系统进行资源分配和调度的基本单位。

进程结构PCB

进程结构

控制块PCB:进程唯一标识

程序段:同一个应用程序的多个进程

数据段:

为了便于系统描述和管理进程的运行,在 OS 的核心为每个进程专门定义了一个数据结构——进程控制块 PCB(Process Control Block)。PCB 作为进程实体的一部分,记录了操作系统所需的,用于描述进程的当前情况以及管理进程运行的全部信息,是操作系统中最重要的记录型数据结构。。

当系统创建一个新进程时,就为它建立了一个 PCB 。进程结束时又回收其 PCB ,进程于是也随之消亡。系统是通过 PCB 感知进程的存在的。事实上,PCB 已成为进程存在于系统中的唯一标志,在进程的整个生命周期中,操作系统总是根据 PCB 实施对进程的控制和管理

保护CPU 现场信息

系统就可以将 CPU 现场信息保存在被中断进程的 PCB 中,供该进程再次被调度执行时恢复 CPU 现场时使用


线程

线程是一系列活动按事先设定好的顺序依次执行的过程,是一系列指令的集合。线程是操作系统中运算调度的最小单位

线程的资源由进程管理,即资源的所有权属于进程,线程需要去跟进程申请。

线程相对于进程,大大降低了创建、撤销和切换可执行实体的成本和难度。

资源分配的最小单位是进程,调度的最小单位是线程


进程状态和控制

3种基本状态:就绪、执行、阻塞。就绪队列只有一个,阻塞队列可能会有多个。

进程挂起:是把进程从内存拿到外存,挂起和激活是操作(行为)而不是进程的状态。

执行状态是不可以挂起的,

阻塞状态挂起就是进程从 活动阻塞-静止阻塞

就绪状态挂起就是进程从 活动就绪-静止就绪

综合一下。


处理机调度层次

高级调度(作业调度):把磁盘上的程序加载到内存变成进程。只调入一次,调出一次。

中级调度(内存调度):将进程调到外存[交换区],条件合适再调入内存。如挂起和激活

低级调度进程调度):从就绪队列选取进程分配给处理机

处理机调度一般指进程调度,是最基本的调度,发生的频率非常高


进度调度策略

进度调度:就是按照一定的策略,动态地把处理机分配给处于就绪队列的进程,使之执行。

1、先来先服务算法[FCFS]

先来先服务调度算法:就是对于优先到达就绪队列的进程采取优先服务的策略,直到该进程运行结束或发生某事件导致阻塞才放弃处理机。

2、短作业(进程)优先算法[SJF]

短作业(进程)优先调度算法:从后备队列或就绪队列选择估计运行时间较短的作业或进程,将他们调入内存运行,直到该进程运行结束或发生某事件导致阻塞才放弃处理机重新进行调度。

3、高响应比优先调度算法[HRRN]

对于长作业,作业的优先级可以随等待时间的增加而提高,当其等待时间足够长时,其优先级便可升到很高,从而也可获得处理机。简言之,该算法既照顾了短作业,又考虑了作业到达的先后次序,不会使长作业长期得不到服务。

4、高优先权优先调度算法[PSA]

当系统中有紧急作业或进程,且不满足先进队列或运行时间短时,这些作业或进程将很难得到资源。那么对于这些作业或进程,又该怎么办呢?

优先权调度算法,所谓优先权调度算法,顾名思义就是谁的优先权高,谁就得到资源得以运行

又非抢占式优先权算法和抢占式优先权算法

抢占式调度:立即暂停当前进程(原优先权最高的进程),分配处理机给新到的优先权最高的进程。

抢占式的优先权调度算法能更好地满足紧迫作业的要求,故而常用于要求比较严格的实时系统中,以及对性能要求较高的批处理和分时系统中。

非抢占式调度:系统一旦把处理机分配给就绪队列中优先权最高的进程后,该进程便一直执行下去,直至完成或阻塞。适用于批处理系统

5、基于时间片的轮转调度算法[RR]

保证就绪队列中的所有进程在给定的时间内均能获得处理机时间片。换言之,系统能在给定的时间内响应所有用户的请求。

6、多级反馈队列调度算法[MFQ]

(1) 应设置多个就绪队列,并为各个队列赋予不同的优先级。第一个队列的优先级最高,第二个队列次之,其余各队列的优先权逐个降低。该算法赋予各个队列中进程执行时间片的大小也各不相同,在优先权愈高的队列中,为每个进程所规定的执行时间片就愈小。例如,第二个队列的时间片要比第一个队列的时间片长一倍,……,第i+1个队列的时间片要比第i个队列的时间片长一倍。
(2) 当一个新进程进入内存后,首先将它放入第一队列的末尾,按FCFS原则排队等待调度。当轮到该进程执行时,如它能在该时间片内完成,便可准备撤离系统;如果它在一个时间片结束时尚未完成,调度程序便将该进程转入第二队列的末尾,再同样地按FCFS原则等待调度执行;如果它在第二队列中运行一个时间片后仍未完成,再依次将它放入第三队列,……,如此下去,当一个长作业(进程)从第一队列依次降到第n队列后,在第n 队列便采取按时间片轮转的方式运行。
(3) 仅当第一队列空闲时,调度程序才调度第二队列中的进程运行;仅当第1~(i-1)队列均空时,才会调度第i队列中的进程运行。如果处理机正在第i队列中为某进程服务时,又有新进程进入优先权较高的队列(第1~(i-1)中的任何一个队列),则此时新进程将抢占正在运行进程的处理机,即由调度程序把正在运行的进程放回到第i队列的末尾,把处理机分配给新到的高优先权进程


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/705095.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Pytorch中的Exponential Moving Average(EMA)

EMA介绍 EMA,指数移动平均,常用于更新模型参数、梯度等。 EMA的优点是能提升模型的鲁棒性(融合了之前的模型权重信息) 代码示例 下面以yolov7/utils/torch_utils.py代码为例: class ModelEMA:""" …

ELK报错no handler found for uri and method [PUT] 原因

执行后提示no handler found for uri and method post,最新版8.2的问题? 原因: index.mapping.single_type: true在索引上 设置将启用按索引的单一类型行为,该行为将在6.0后强制执行。 原 {type} 要改为 _doc,格式如…

优炫软件自主研发再结硕果,共享存储SRAC集群数据库重磅发布

新一轮科技革命重塑全球经济结构,关键核心技术是产业发展的基石,数据库、芯片、操作系统是我国数字技术领域三大卡脖子难题。数据库向下发挥硬件算力,向上使能应用系统,是各行各业业务系统运行的基础,是软件行业皇冠上…

光口的作用及应用场景

在光通信中,交换机是一个非常重要的设备,它的作用是将来自不同设备的数据包进行收发和交换。之前发布的文章我们有了解到交换机的光口是如何配置的,本期文章我们将详细讨论交换机的光口的作用及应用场景。 一、光口的主要作用 交换机的光口…

适合团队人数少,预算低的四种办公室类型

如果团队人数少且预算低,以下是一些在深圳比较适合租赁的办公室类型: 1. 联合办公空间:联合办公空间是一种灵活的办公模式,通常提供共享的办公环境和设施,如会议室、休息区、打印机等。这种模式的办公室租金通常较低&…

Linux下Master-Master Replication Manager for MySQL 双主故障切换

简述: Master-Master Replication Manager for MySQL(MMRM)是一种用于MySQL数据库的主-主复制管理工具。它允许在多个MySQL主机之间建立双向的主-主复制关系,实现数据的同步和高可用性。 工作原理是通过在每个MySQL主机上配置双…

javascript 剪贴板数据

本篇文章将介绍在 JavaScript 中检测粘贴事件上的剪贴板数据。 JavaScript 剪贴板数据 当用户通过浏览器 UI 启动粘贴操作时,将引发粘贴事件。 当光标位于可编辑上下文中时,默认操作是将剪贴板的内容粘贴到光标位置的文档中。 此事件的处理程序可以通过…

性能优化 :删除项目中没有引用关系的文件 useless-files-webpack-plugin

一般此类包不需要安装到项目中,减少node_modules体积(以项目实际情况决定-S/-D) npm i useless-files-webpack-plugin -S然后再vue.config.js中配置 const UselessFile require(useless-files-webpack-plugin) chainWebpack: config > …

KEIL支持中文编辑

默认只支持英文,中文一粘贴就变成问号。怎么办? 菜单:Edit, Configuration 点击Encoding的下拉按钮,选择GB2312.

关于Http Header必须了解的知识

header是发送请求时携带的头部信息。通常一些鉴权的信息:authentication/cookie、响应的数据格式:content-type等等的设置。当然响应的数据也会返回一些头部信息。 Requests Header,请求头信息  Responses Header&…

自动化测试中如何比较颜色

引言 在做Nightwatch自动化测试中,出现需要比较颜色的时候如何来做? 基本的思路是首先需要取到这个element的颜色值,然后跟预期的颜色进行对比。 比如我要取下面这个会话窗口的颜色,选中这个图标,按F12,查…

Java实现office办公文档在线预览(word、excel、ppt、txt等)

文章目录 一、官网下载openOffice 安装包,运行安装(不同系统的安装请自行百度,这里不做过多描述) 二、pom中引入依赖 三、office文件转为pdf流的工具类 四、service层代码 五、controller层代码 office办公文档,如doc…

C语言编程—预处理器

预处理器不是编译器的组成部分,但是它是编译过程中一个单独的步骤。简言之,C 预处理器只不过是一个文本替换工具而已,它们会指示编译器在实际编译之前完成所需的预处理。我们将把 C 预处理器(C Preprocessor)简写为 CP…

文心一言 VS 讯飞星火 VS chatgpt (52)-- 算法导论6.2 4题

四、当i>A.heap-size/2 时,调用 MAX-HEAPIFY(A,i)会有什么结果? 文心一言: 当 i > A.heap-size/2 时,调用 MAX-HEAPIFY(A, i) 会将 A[i] 与其子树中的最大元素进行交换,并将 A[i] 视为新的根节点。这个操作会…

移动WEB开发之flex布局

css基础(一)css基础(一)_上半场结束,中场已休息,下半场ing的博客-CSDN博客Emmet语法Emmet语法_上半场结束,中场已休息,下半场ing的博客-CSDN博客css基础(二)c…

Spring Boot中的STOMP Broker:原理及使用

Spring Boot中的STOMP Broker:原理及使用 简介 STOMP(Simple Text Oriented Messaging Protocol)是一种基于文本的协议,用于在Web应用程序之间传递消息。STOMP提供了一种简单的方式来实现WebSocket的双向通信。在Spring Boot中&…

centos7.X安装docker---个人学习经验

工具:VMware Workstation Pro 16.1 系统:CentOS-7-x86_64-DVD-2009 docker:docker-ce-24.0.2-1 说明:这是个人在学习安装docker的时候一些经验,如有不对的还请指教,有些步骤因个人专业能力和时间问题并未…

Elasticsearch-01篇(单机版简单安装)

Elasticsearch-01篇(单机版简单安装) 1. 前言1.1 关于 Elastic Stack 2. Elasticsearch 的安装(Linux)2.1 准备工作2.1.1 下载2.1.2 解压(启动不能用root,所以最好此处换个用户) 2.2 修改相应的…

2023年上海市浦东新区网络安全管理员决赛理论题样题

目录 一、判断题 二、单选题 三、多选题 一、判断题 1.等保1.0至等保2.0从信息系统拓展为网络和信息系统。 正确 (1)保护对象改变 等保1.0保护的对象是信息系统,等保2.0增加为网络和信息系统,增加了云计算、大数据、工业控制系统、物联网、移动物联技术、网络基础…

vite环境变量

vite环境变量 import.meta.env对象中存储环vite的境变量 环境变量以VITE_ 为前缀 在不同环境下,自动读取不同的文件 一般命名 .env .env.development .env.test .env.production