计算机操作系统-第十天

目录

1、操作系统的进程

进程的概念

进程的组成------PCB        

进程的组成------程序段、数据段

旧知新学:《程序是如何运行的》

进程的特征

本节思维导图


1、操作系统的进程

进程的概念

当我们打开多个qq程序,我们会发现任务管理器的进程中有两个qq进程:

程序:是静态的,是放在磁盘里的可执行文件,是一系列的指令集合

进程:是动态的,是一个程序的一次执行过程,同一个程序多次执行会对应多个进程

进程的组成------PCB        

为了区分这些看起来相同的进程,操纵系统会在一个进程创建时,为该进程分配一个唯一的、不重复的“身份证号”-----PID(Process ID,进程ID)

可以看到的是任务管理器中有多个相同名字的网页的进程,它们的PID各不相同......

除了PID在任务管理器中我们还发现操作系统记录了其他的内容:

可以让操作系统区分各个进程的进程描述信息:

进程标识符PID、用户标识符UID

可用于实现操作系统对资源的管理的进程控制和管理信息

①CPU、磁盘、网络流量的使用情况统计等;

②进程当前状态:就绪态、阻塞态、运行态

③可用于实现操作系统对进程的控制、调度的资源分配清单:

某进程正在使用哪些文件 / 内存区域 / I/O设备

以及处理机的相关信息:

如PSW、PC等等各种寄存器的值(用于实现进程切换)

这些信息都被保存在一个数据结构PCB(Process Control Block),即进程控制块

操作系统需要对各个并发运行的进程进行管理,而管理时所需的所有信息都会被放在PCB中

PCB是进程存在的唯一标志,当进程被创建时操作系统为其创建PCB,当进程结束时回收PCB

进程的组成------程序段、数据段

旧知新学:《程序是如何运行的》

        其中,PCB、程序段和数据段三者共同组成了一个新的概念:进程实体/映像它与进程的区别在于进程是动态的,而进程实体(进程映像)是静态的,后者反映了进程在某一时刻的状态(快照)如:x=2、x++等,我们也因此可以得出新的结论:PCB是给操作系统用的,而程序段和数据段是给进程自己使用的,与进程自身的运行逻辑有关

当我们引入进程实体的概念后,我们就可以将进程定义为以下内容:

进程是进程实体的运行过程,是系统进行资源分配调度的一个独立单位

关于“调度”的解释:一个进程被“调度”,就是指操作系统决定让该进程运行在CPU上

关于前文“挂起两个qq进程”的相关拓展:同时挂起两个qq号,会产生两个qq进程,它们的PCB、数据段各不相同,但是它们程序段中的内容是相同的

进程的特征

相比于静态的程序,动态的进程拥有以下特征:

动态性:进程是程序的一次执行过程,是动态地发生、变化和消亡地

并发性:内存中有多个进程实体、各进程可并发执行

独立性:进程是能独立运行、独立获得资源、独立接受调度地基本单位

异步性:各进程按各自独立的、不可预知地速度向前推进,可能导致运行结果的不确定性

结构性:每个进程都会配置一个PCB,结构上来看,进程由程序段、数据段、PCB组成

需要补充的是:动态性是进程最基本的特征 ~

本节思维导图

~over~

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决方案-LBS用户位置Redis-GEO附近人/店铺

附近人 windows安装附近人列表功能mysqlredis GEO CNNVD-201511-230 未授权访问python 多线程 redis大端模式与小端模式IP地址的不同表现形式1.字符串表现形式2. 整数表现形式3.大小端模式下的IP地址 0x01 进入python正题Python的socket库1.socket.socket(family,type)2.socket…

02.机器学习原理(复习)

目录 机器学习的本质机器学习的类型Regression/回归Classification/分类Structured Learning/结构化学习 ML的三板斧设定范围设定标准监督学习半监督学习其他 达成目标小结达成目标设定标准设定范围 部分截图来自原课程视频《2023李宏毅最新生成式AI教程》,B站自行搜…

10.18作业

使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数 将登录按钮使用qt5版本的连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账号是否为"admin",密码是否为…

【网络安全】防火墙技术

防火墙是网络安全防御的重要组成部分,它的主要任务是阻止或限制不安全的网络通信。在这篇文章中,我们将详细介绍防火墙的工作原理,类型以及如何配置和使用防火墙。我们将尽可能使用简单的语言和实例,以便于初学者理解。 如果你对…

【字符串匹配算法】KMP、哈希

STL O(mn) C中提供子串查询的函数可以使用std::string类的相关方法来实现。 find函数:可以查找一个子串在原字符串中的第一个出现位置。它返回子串的起始索引,如果找不到则返回std::string::npos。substr函数:可以提取原字符串中的一个子串…

Jmeter性能测试(压力测试)

1.先保存 2.添加请求(即添加一个线程组) 3.添加取样器(在线程组下面添加一个http请求) 场景1:模拟半小时之内1000个用户访问服务器资源,要求平均响应时间在3000毫秒内,且错误率为0&#xff0…

Kafka SASL认证授权(六)全方位性能测试

Kafka SASL认证授权(六)全方位性能测试。 官网地址:https://kafka.apache.org/ 一、场景 线上已经有kafka集群,服务运行稳定。但是因为产品升级,需要对kakfa做安全测试,也就是权限验证。 但是增加权限验证,会不会对性能有影响呢?影响大吗?不知道呀! 因此,本文就此…

Qt/C++开源作品45-CPU内存显示控件/和任务管理器一致

一、前言 在很多软件上,会在某个部位显示一个部件,专门显示当前的CPU使用率以及内存占用,方便用户判断当前程序或者当前环境中是否还有剩余的CPU和内存留给程序使用,在不用打开任务管理器或者资源查看器的时候直接得知当前系统的…

ORACLE内存结构

内存体系结构 ​​​​​​​ 目录 内存体系结构 2.1自动内存管理 2.2自动SGA内存管理 2.3手动SGA内存管理 2.3.1数据库缓冲区 2.3.1.1保留池 2.3.1.2回收池 2.3.2共享池 2.3.2.1SQL查询结果和函数查询结果 2.3.2.2库缓存 2.3.2.3数据字典缓存 2.3.3大池 2.3.4 …

20-数据结构-内部排序-插入排序

简介:插入排序基本有两步,先是通过比较,得到插入位置,随后移动给需要插入的位置处腾空,最后进行值的插入。 目录 一、直接插入排序 1.1简介: 1.2代码 二、折半插入排序 2.1简介: 2.2代码…

LXC、Docker、 Kubernetes 容器以及Hypervisor的区别

LXC、Docker、 Kubernetes 容器以及Hypervisor的区别 SaaS: Software-as-a-Service(软件即服务) PaaS: Platform-as-a-Service(平台即服务) IaaS: Infrastructure-as-a-Service(基础设施即服务) 1、Docke…

如何使用 Disco 将黑白照片彩色化

Disco 是一个基于视觉语言模型(LLM)的图像彩色化工具。它使用 LLM 来生成彩色图像,这些图像与原始黑白图像相似。 本文将介绍如何使用 Disco 将黑白照片彩色化。 使用 Disco 提供了一个简单的在线演示,可以用于测试模型。 访问…

SpringMVC之国际化上传下载

spring项目中的国际化 1&#xff09;提供中英两种资源文件 i18n_en_US.properties i18n_zh_CN.properties 2&#xff09;配置国际化资源文件&#xff08;在spring配置文件中添加&#xff0c;例如spring-mvc.xml&#xff09; <bean id"messageSource" class&quo…

从头开始机器学习:神经网络

一、说明 如果你还没有做过逻辑回归&#xff0c;你会在这里挣扎。我强烈建议在开始之前查看它。您在逻辑回归方面的能力将影响您学习神经网络的难易程度和速度。 二、神经网络简介 神经网络是一个神经元网络。这些神经元是逻辑回归函数&#xff0c;它们被链接在一起形成一个网络…

使用REPLACE将数据库某一列字段进行字符串操作

REPLACE可以将表里的数据进行替换操作 如&#xff1a;需要把这一列里面的 # 去掉&#xff0c;经过测试&#xff0c;无论是开头、句中还是结尾都可以删除 UPDATE 表名 SET 字段名 REPLACE(字段名 , #, )

C#上位机序列9: 批量读写+事件广播

1. 读取配置文件及创建变量信息&#xff08;点位名称&#xff0c;地址&#xff0c;数据类型&#xff08;bool/short/int/float/long/double&#xff09;&#xff09; 2. 读任务&写任务,数据有变化时事件广播通知 using HslCommunication; using HslCommunication.Core; usi…

IOday7

A进程 #include <head.h> int main(int argc, const char *argv[]) {pid_t cpidfork();if(cpid>0)//父进程向管道文件2写{ int wfd;if((wfdopen("./myfifo2",O_WRONLY))-1){ERR_MSG("open");return -1;} char buf[128]"";while(1){bze…

进阶JAVA篇-异常处理:解读与解决编程中的意外情况

目录 1.0 什么是异常&#xff1f; 1.1 异常主要分为两个情况分别是运行时异常、编译时异常。 2.0 怎么处理异常呢&#xff1f; 2.1 捕获异常&#xff08;Catch Exception&#xff09; 2.2 声明异常&#xff08;Declare Exception&#xff09; 3.0 自定义异常 3.1 如何定义异常类…

Linux:进程控制

目录 一、进程创建 写时拷贝 二、进程终止 echo $? 如何终止进程 _exit与exit 三、进程等待 进程等待的必要性 进程等待的操作 wait waitpid status 异常退出情况 status相关宏 options 四、进程程序替换 1、关于进程程序替换 2、如何进行进程程序替换 程序…

【深度学习】【Opencv】【GPU】python/C++调用onnx模型【基础】

【深度学习】【Opencv】【GPU】python/C调用onnx模型【基础】 提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 文章目录 【深度学习】【Opencv】【GPU】python/C调用onnx模型【基础】前言Python版本OpenCVWindows平台安装OpenCVopencv调用onnx模型 C版本…