计算机操作系统——2 进程与作业

目录

  • 一、程序
    • (一)概念
    • (二)程序的执行
  • 二、进程
    • (一)概念与特征
    • (二)进程控制块
    • (三)进程句柄
    • (四)进程的状态
  • 三、线程
  • 四、作业
    • (一)概念
    • (二)作业控制块

一、程序

(一)概念

应用程序是由程序段组成的,即一段程序就是程序段。程序是静态的指令集合,也可以说是一个操作序列。

(二)程序的执行

程序的执行方式有两种,分别是顺序执行和并发执行。
1、顺序执行
前者可概括为“顺序独占”,即每个操作必须在下一个操作开始前结束,执行时独占全部系统资源,且执行时不受外界影响。另外,当程序重复执行时,只要其执行环境和初始条件协同,则无论执行时间和过程如何,最终结果始终相同。

例如,下面这个程序段包含了四条语句,语句的关系是S1→S2→S3→S4,按照关系依次顺序执行:

S1
S2
S3
S4

2、并发执行
后者可概括为“并发共享”,多个程序并发执行(在同一时间间隔内执行),共享系统资源且相互合作,这种方式提高了系统的吞吐量和对资源的利用率。由于并发执行中,系统资源状态会因程序间互相制约的关系而改变,从而导致失去了可再现性,即最终得到的结果每个都不同。

两者的对比如下表:

方式优点缺点
顺序封闭性、可再现性、资源占用少效率低、无法充分利用资源
并发效率高、充分利用资源不可再现性、资源占用多、竞态条件

二、进程

操作系统中引入进程的概念的目的是使多个程序能并发执行,以提高系统资源利用率和吞吐量。

(一)概念与特征

进程是对程序加以描述和控制,使其“动态化”,即进程是程序的一次执行实例,其中包含了程序运行时所需要的所有信息,它是系统进行资源分配和调度的基本单位。每一个进程都有一个进程标识符(PID),且占用一定的系统资源(包括内存、CPU时间等),如下图,可看到计算机资源监视器里面的进程信息:
在这里插入图片描述
进程的特征分为动态性、并发性、独立性以及异步性,其中,并发性可概括为“同存同运行”,即多个进程实体共同在内存中,且一段时间内同时运行。另外,每个进程实体是可以独立运行的且独立获得资源和独立接受调度。

进程特征备注
动态性进程执行有一定的生命周期
并发性同存同运行
独立性独立运行、独立获得资源、独立接受调度
异步性以不可预知的速度向前推进

(二)进程控制块

1、进程和PCB的组成
进程实体由程序段、相关的数据段以及PCB(进程控制块)三部分组成。其中,PCB是进程存在于系统中的唯一标志。

通过打开Windows PowerShell 管理员模式,然后命令行中输入命令get-proces获取进程,显示的各列信息如下图所示:
在这里插入图片描述
2、PCB的组成
PCB通常包括PID(进程标识符)、进程句柄、进程状态、优先级、资源需求等。PCB的设置是为了确保并发执行的每个程序都能独立地运行,创建进程就是创建进程实体的PCB,而撤销进程就是撤销进程实体的PCB。

(三)进程句柄

进程句柄(Handle)用于引用操作系统的资源,从而进行访问和操作。前面讲到,PID是唯一标识一个进程,而多个进程可能有相同的句柄值。

(四)进程的状态

在一个进程被终止前,该进程处于三种基本状态中,分别是就绪状态、执行状态以及阻塞状态。可以依次连成一个环,如下,三种状态可转换:

调度
I/O请求
I/O完成
时间片用完
就绪状态
执行状态
阻塞状态

这里的时间片用完后,执行状态的进程必须释放CPU,以便其他进程占用CPU,然后当前进程进入就绪队列,转变为就绪状态。另外,这三种状态中,只有执行状态→阻塞状态是进程自身的主动行为,是由进程本身决定的,是因为该转换通常是因为进程需要等待某个事件完成或满足某个条件时发生的,进程会主动调用相应的系统调用或原语,将自己置为阻塞状态,并释放CPU给其他进程使用。

三、线程

操作系统引入线程的概念的目的是为了提高系统的并发性,减少程序并发执行时所付出的时间和空间开销。

一个进程中含有一个或多个相对独立的线程,且同一个进程中的线程或不同线程中的多个线程均可并发执行。可以说,线程是调度和分派的基本单位。另外,由于线程较进程更小且不拥有系统资源,当需要调度时,其开销会更小。

进程和线程的比较如下表:

特点进程线程
资源拥有资源一般不拥有资源
开销
独立性独立空间每个线程共享进程的空间
生命周期完整周期与进程紧密相关

四、作业

(一)概念

作业是用户向计算机提交的工作任务实体,通常包括程序、数据和作业说明书三部分。作业的执行过程是由进程完成,即一个作业是由一个或多个进程组成的。例如,在批处理系统中,作业是作为基本单位从外存调入内存的。

(二)作业控制块

作业步是作业的一部分,作业被分为若干个作业步,每个作业步完成特定的工作任务。另外,JCB(作业控制块)是作业在操作系统中存在的标志,它保存作业进行调度和管理所需的信息。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【STL详解 —— list的介绍及使用】

STL详解 —— list的介绍及使用 list的介绍list的介绍使用list的构造list iterator的使用list capacitylist element accesslist modifiers 示例list的迭代器失效 list的介绍 list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭…

Socket 通信机制详解

Socket 是网络编程中一种重要的通信机制,它允许不同的计算机通过网络进行数据交换。 一、 Socket 的概念 Socket(套接字)是计算机网络编程中的一种抽象,它提供了在网络上进行通信的接口。 Socket 本质上是一种通信的端点&#…

基于springboot+vue实现的药品信息管理系统

作者主页:Java码库 主营内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 技术选型 【后端】:Java 【框架】:spring…

java算法day52 | 动态规划part13 ● 300.最长递增子序列 ● 674. 最长连续递增序列 ● 718. 最长重复子数组

300.最长递增子序列 思路: 子序列问题是动态规划解决的经典问题,当前下标i的递增子序列长度,其实和i之前的下表j的子序列长度有关系,那又是什么样的关系呢。 接下来,我们依然用动规五部曲来详细分析一波: …

R:普通分组柱状图

输入文件实例&#xff08;存为csv格式&#xff09; library(ggplot2) library(ggbreak)# 从CSV文件中读取数据 setwd("C:/Users/fordata/Desktop/研究生/第二个想法(16s肠型&#xff0b;宏基因组功能)/第二篇病毒组/result/otherDB") data <- read.csv("feta…

elementui中el-select下拉列表偏移问题

问题截图 解决方法 在el-select中添加:popper-append-to-body"false"即可 加完后的效果

【MATLAB源码-第48期】基于matlab的16QAM信号盲解调仿真。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 16QAM (16个象限幅度调制) 是一种广泛使用的数字调制技术。在无线和有线通信系统中&#xff0c;为了在固定的带宽内发送更多的信息&#xff0c;高阶调制如16QAM被使用。下面是16QAM盲解调的基本步骤、优缺点及应用场景。 16…

Spring Boot 学习(5)——开发流程:快速入门

花了几天的时间&#xff0c;整出个 “hello spring boot”&#xff0c;并且把它从 2 搞到了 3。 纸上得来终觉浅&#xff01;自己实践出真知&#xff01;现在再回头来囫囵一遍&#xff0c;加深下印象。回想下从前自觉某一编程语言大都如此&#xff0c;先找到简单示例照着画一遍…

【音视频流媒体服务端开发学习指南】音视频驱动、多媒体中间件、流媒体服务器的开发,开发过即时通讯+音视频通话的大型项目

音视频流媒体开发是一个涉及多种技术和知识领域的实践领域。以下是一份指南&#xff0c;帮助你系统学习流媒体开发&#xff1a; 理解基础概念&#xff1a; 习关于音视频数据的基础知识&#xff0c;包括常见的音频与视频格式、编解码器(codec)、容器格式等。 了解流媒体的基本工…

操作系统(第四周 第二堂)

目录 回顾 进程运行 进程的创建 进程的工作 举例 进程的删除 举例1&#xff08;走到return 0结束&#xff09; 举例2&#xff08;利用exit&#xff08;1&#xff09;结束&#xff09; 进程通信 共享内存 生产者算法 消费者算法 消息传递 定义 算法实现 总结 回顾…

【Python习题】若一个正整数的逆序数和它自身相等,则该整数称为回文数。编写程序,找出 1000以内的所有回文数。

题干 若一个正整数的逆序数和它自身相等,则该整数称为回文数。编写程序,找出 1000以内的所有回文数。 代码

深度学习可视化模型

文章目录 CAM&#xff08; https://arxiv.org/abs/1512.04150&#xff09;算法原理 Grad-CAM(梯度加权类激活映射)算法原理 Grad-CAMScoreCAMLayerCAM 目前深度学习网络的可视化可以分为&#xff1a; 可视化卷积核。可视化特征图。可视化激活热力图&#xff0c;也就是不同位置像…

【JAVASE】带你了解String类的常用方法和常见操作

✅作者简介&#xff1a;大家好&#xff0c;我是橘橙黄又青&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a; 再无B&#xff5e;U&#xff5e;G-CSDN博客 目标&#xff1a; 1. 认识 String 类 2. 了解 String 类的基…

Flutter中间镂空的二维码扫描控件

1、UI效果图&#xff1a; 2、中间镂空UI&#xff1a; class CenterTransparentMask extends CustomClipper<Path> {final double? width;CenterTransparentMask({this.width});overridePath getClip(Size size) {final path Path()..addRect(Rect.fromLTWH(0, 0, size…

Go语言中如何正确使用 errgroup

不管是哪种编程语言,重新发明轮子都不是一个好主意。代码库重新实现如何启动多个goroutine并汇总错误也很常见。但是Go生态系统中的一个包旨在支持这种常见的用例。让我们来看看这个包并了解为什么它应该成为Go开发人员工具集的一部分。 golang.org/x是一个为标准库提供扩展的…

树上启发式合并(dsu on tree)学习

声明&#xff1a;本文部分内容摘自OI Wiki网站。详情可自行查看学习。 洛谷 P9233 题目实际上是蓝桥杯 2023 年 A 组省赛的一道题。题干大致的意思是&#xff0c;给定一个含有 n n n 个结点&#xff0c;并且以 1 1 1 为根的一棵树&#xff0c;每个节点 i i i 都有一个颜色 …

Spring框架第一篇(Spring概述与IOC思想)

文章目录 一、Spring概述二、Spring家族三、Spring Framework四、IOC思想五、IOC容器在Spring中的实现 一、Spring概述 Spring 是最受欢迎的企业级 Java 应用程序开发框架&#xff0c;数以百万的来自世界各地的开发人员使用 Spring 框架来创建性能好、易于测试、可重用的代码。…

Harbor私有镜像仓库

Docker私有仓库Harbor ​ 前面学习了Docker及Dockerfile构建镜像&#xff0c;那么构建的镜像放在哪里才能被Docker容器快速获取到呢&#xff1f;我们知道&#xff0c;可以把镜像放入Docker Hub镜像仓库&#xff0c;但是Docker Hub是国外网站&#xff0c;一方面镜像放在Docker …

童年女神大盘点:谁是第一个让你心动的动漫女神?

每当提起我们的童年记忆&#xff0c;总有一抹亮丽的色彩来自于那些国产动漫中的女性角色&#xff0c;她们以其独特的魅力、鲜明的性格和卓越的才智&#xff0c;深深地烙印在了我们的心底&#xff0c;成为了一代人的集体回忆。今天&#xff0c;让我们一同回首&#xff0c;盘点那…

napi系列学习进阶篇——NAPI异步调用

简介 OpenHarmony Napi 标准系统异步接口实现支持Callback方式和Promise方式。标准系统异步接口实现规范要求&#xff0c;若引擎开启Promise特性支持&#xff0c;则异步方法必须同时支持Callback方式和Promise方式。使用哪种方式由应用开发者决定&#xff0c;通过是否传递Call…