[计组03]进程详解2

news2025/1/11 8:17:08

目录

应用程序

系统调用  

驱动  

软件

再看进程

进程管理  

  如何管理  ?

  创建一个进程  

  注意  

PCB  

文件描述表  

进程相关重点

为什么有进程调度  

虚拟空间地址  


这次我们从更加详细全面的角度看一下进程在计算机中体系中的展现

应用程序

应用程序 调动
    系统调用 后  
    操作系统内核  
    响应 驱动  
    硬件  产生反应


系统调用  


系统调用  
    实现操作系统最核心的功能  

比如
    内存管理  
    硬盘管理  
    进程管理  
    设备管理  
    文件管理  
    ……  

一般是
    操作系统提供的原生API  
    通常是C语言编写的  
    应用程序需要调用这里的api才能完成一些具体工作  


驱动  


    由于生产硬件厂商很多,为了让系统能适配每一个系统,就需要靠驱动程序,让操作系统内核认识并管理硬件。  


软件

软件   
    软件是不能直接操作硬件的  
    操作系统给应用程序提供了  
    1.write系统调用,可以用于写入一些数据  
    2.提供stdout特殊文件,对应显示器硬件设备

Java为了能够跨平台,在jvm中就已经对各种常见的系统调用进行了封装。  
不必要直接使用系统调用,直接调用jvm封装好的一些Java方法就行。  
  
应用通过系统调用和操作系统内核产生联系  
操作系统内核通过驱动和硬件产生交互  


再看进程

进程  
    进程也就做  “任务”  
    运行起来的程序就是进程  
    .exe就是可执行文件/可执行程序  
    是存储在硬盘上的文件—静态的  

  
运行这个文件 操作系统就会把这个程序的核心文件数据加载到内存当中,并在操作系统中生成一个进程,并且在任务管理器中可以检测到此进程。  
  
硬盘基本不会影响系统的流畅度,但是如果硬盘空间快满的时候,是极有可能卡顿的
1.因为很多操作系统都在内存空间不够的时候,使用一部分(C盘)硬盘空间作为交换分区,所以硬盘空间快满的时候,是可能会卡的  
2.执行应用程序的时候需要向硬盘CURD的时候,会影响效率。  
3.有些应用程序会默认被设置为开机启动,默认消耗很多内存资源,疯狂的占用你的内存。  
  
在移动端,app 有个权限 ——读取应用程序列表,很可能使得应用程序之间相互启动,导致内存消耗。  


进程管理  


     管理的重要凭证是进程表, 详细的表示进程的属性和信息  
    主要是结构体,结构体中包含进程的各种信息(PCB进程控制块)  


  
如何管理  ?


    通过一定的数据结构,把若干个进程管理到一起。  
    系统一般使用双向链表这样的数据结构,把PCB链接到一起。  


  
创建一个进程  


    本质上是创建一个PCB,并且加入到链表上  
    销毁一个进程  
    本质上就是从链表上删除这个PCB  
    查看任务管理器  
    遍历和打印该链表  


  
注意  


    一个进程可能对应多个PCB  
    系统中管理的链表也可能是多个


PCB  


    1.pid 进程身份标识码,一个主机中,pid是唯一的,通过pid区分进程  
    2.内存指针   
    一个可执行文件运行后,操作系统把文件中的核心数据加载到内存中  
  
进程的创立必然伴随内存空间的分配,内存空间中的区域,有存放指令的,有存放数据的,有来维护运行状态的……  
来表述哪块内存的具体功能 。
进程持有的内存资源。  


文件描述表  

文件描述表  
    每个进程都可以打开一些硬盘文件,  
    文件描述表记录了当前进程打开了哪些文件,可以对这些文件进行CURD。  
      也就是进程持有的文件资源。  
      进程也就可以说操作系统分配资源的基本单位。  
  


进程相关重点


进程调度  
进程属性  
进程上下文  
进程优先级  
进程的记账信息  
  

进程属性

 进程属性是指每个进程的特征和信息,包括进程的唯一标识符(进程ID)、状态(运行、就绪、阻塞)、优先级、程序计数器(PC)的值、寄存器状态、打开的文件描述符列表等。这些属性决定了进程的行为和状态

进程上下文  


    进程在CPU上执行一段时间后,需要切换到别的进程,需要保存前者的结果,下次再轮到前者执行的时候,会恢复上次执行的结果。  
  
对于进程来说,上下文就是CPU中寄存器的值。寄存中包含了运行的中间结果,会把这些信息保存到PCB的上下文信息中。  

进程的优先级

进程优先级是一个数值,用于表示进程相对于其他进程的重要性。操作系统可以使用进程优先级来调度进程,高优先级的进程可能会在低优先级的进程之前执行


  
进程记账信息  


    每个进程在CPU上执行了多久,统计信息  
    具有辅助调度的效果  
    防止一些进程完全无法执行



为什么有进程调度  


    CPU资源有限,需要合理安排,进程有很多,一般CPU处理器都是6/8核,需要通过进程调度同时处理这些进程。  
      

多核CPU  
    CPU的运算能力,和集成程度是密切相关的  
    (密度)也就是制程。  
    单核计算能力有限,于是增加核心提升进程运行效率。  
  

并行执行  
    多个CPU核心运行多个进程  
  

并发执行  
    一个核心运行多个进程  
    运行一下进程1,运行进程2,再运行进程3,只要微观上切换的足够快,宏观上就是3个进程同时运行。  

**现在基本上都是并行和并发同时执行。**


 


虚拟空间地址  


给每一个进程分配内存资源  
为了防止进程之间的相互影响  
给每个进程划分的内存空间,都叫做  
“虚拟的内存空间”  
通过专门的设备MMU来完成,虚拟地址到物理地址之间的映射  
  
mmu可以避免进程超出划分的虚拟内存,避免在真是物理地址中影响进程
 
  
有点类似于审核员  
  
使用虚拟地址空间,就认为进程之间存在“隔离性”,一个进程无法干扰另一个进程的内存数据。提高了进程和系统的稳定性。  
  
有些需求场景,需要多个进程互相配合  
进程隔离了,进程间很难交互了  
这时候 进程间通信就起作用了
 
  


进程间通信  
    核心原则是找一个 公共资源,多个进程都能访问到的,然后基于公共资源交换数据。  
    公共资源可以基于文件,可以基于socket,可以基于内存……具体方式在篇幅1有说明


哈,谢谢各位同志的阅读,然后呢如果觉得本文对您有所帮助的话,还给个免费的赞捏
Thanks♪(・ω・)ノ

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

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

相关文章

Maxon Cinema 4D 2024:创新功能助力新境界

Maxon的Cinema 4D 2024是一款在全球范围内广受赞誉的三维动画和建模软件。新版本在速度、性能、本地化、功能增强等多个方面进行了全面的提升,为用户提供了更加流畅、高效且丰富的创作体验。 飞一般的速度 Cinema 4D 2024在速度上较之前的版本有了显著的提升&…

【c++GDAL】IHS融合

【c&GDAL】IHS融合 基于IHS变换融合,实现多光谱和全色影像之间的融合。IHS分别指亮度(I)、色度(H)、饱和度(S)。IHS变换融合基于亮度I进行变换,色度和饱和度空间保持不变。 IHS融合步骤: (1)将多光谱RGB影像变换到…

拥塞控制概念

网络拥塞 何为拥塞控制?拥塞控制是指在计算机网络中,通过监测网络的拥塞程度并采取相应的措施来维持网络的稳定运行的方法。它的主要目标是确保网络资源的合理利用,避免网络拥塞导致的性能下降和服务质量下降。 为什么需要拥塞控制&#xf…

【力扣每日一题】2023.9.17 打家劫舍Ⅱ

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 打家劫舍2在1的基础上增加了一个规则,那就是房屋是首尾相连的。 这对我们解题有什么影响呢? 唯一的影响就是我们…

数据结构:树和二叉树之-堆排列 (万字详解)

目录 树概念及结构 1.1树的概念 1.2树的表示 ​编辑2.二叉树概念及结构 2.1概念 2.2数据结构中的二叉树:​编辑 2.3特殊的二叉树: ​编辑 2.4 二叉树的存储结构 2.4.1 顺序存储: 2.4.2 链式存储: 二叉树的实现及大小堆…

Logrus日志

目录 一、Logrus 1、Logrus使用 1、下载Logrus第三方库: 2、日志配置文件 3、加载日志配置文件 4、初始化日志记录器 5、在main.go中加载init函数 一、Logrus 日志的重要性及作用 日志是程序的重要组成部分 1.记录用户操作的审计日志 2.快速定位问题的根源…

【计算机视觉】Vision Transformers算法介绍合集(三)

文章目录 一、OODformer二、Colorization Transformer三、MUSIQ四、LeVIT五、Visformer六、Twins-PCPVT七、Conditional Position Encoding Vision Transformer八、Twins-SVT九、Shuffle Transformer十、RegionViT十一、LocalViT十二、EsViT十三、Multi-Heads of Mixed Attenti…

推荐一个页面引导库 driver_js

推荐一个页面引导库 driver.js 页面引导功能是 web 开发中常见的一个功能。通过页面引导功能,你可以让用户第一时间熟悉你的页面功能。今天给大家推荐一个页面引导库 driver.js。 1 简介 driver.js 是一款用原生 js 实现的页面引导库,上手非常简单&am…

远程连接PostgreSQL:配置指南与安全建议

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🐅🐾猫头虎建议程序员必备技术栈一览表📖: 🛠️ 全栈技术 Full Stack: &#x1f4da…

UDP/TCP 最大可传输单元细节可不少~

一、MTU 简述 - 分包后数据包最大长度 1、定义 Maximum Transmission Unit(最大可传输单元) 的缩写,它的单位是字节。在 *数据链路层* 定义 一个数据包穿过一个大的网络,它其间会穿过多个网络,每个网络的 MTU 值是不…

探索Adobe Photoshop 2024:新功能与增强功能详解

Adobe Photoshop 2024,这款传奇的图像编辑软件,近期又迎来了一些令人振奋的新特性。对于专业设计师和摄影爱好者来说,Photoshop 的每次更新都牵动着他们的心。那么,这次的新版本究竟带来了哪些值得我们期待的功能呢?且…

GDB之打印函数堆栈(十二)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

Mysql002:(库和表)操作SQL语句

目录: 》SQL通用规则说明 SQL分类: 》DDL(数据定义:用于操作数据库、表、字段) 》DML(数据编辑:用于对表中的数据进行增删改) 》DQL(数据查询:用于对表中的数…

获取spring容器中的bean实例

在开发过程中,我们可能需要动态获取spring容器中的某个bean的实例,此时我们就会用到ApplicationContext spring应用上下文,这里做一下记录,网上很多类似的的工具类。 先写好工具类再测试一下是否好用 工具类: packag…

CLIP 基础模型:从自然语言监督中学习可转移的视觉模型

一、说明 在本文中,我们将介绍CLIP背后的论文(Contrastive Language-I mage Pre-Training)。我们将提取关键概念并分解它们以使其易于理解。此外,还对图像和数据图表进行了注释以澄清疑问。 图片来源: 论文&#xff1a…

关于 Qt串口不同电脑出现不同串口号打开失败 的解决方法

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/132842297 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软…

8. 工厂方法模式

一 典型工厂方法模式&#xff08;Factory Method&#xff09;结构图 二 典型工厂模式实现 测试代码 #include <iostream> using namespace std;class Product{ public:string name;virtual void show(){cout << "我是:";} }; class Desk : public Produ…

LeetCode 热题 100(九):回溯复习。77. 组合、17. 电话号码的字母组合、39. 组合总和

题目一&#xff1a; 77. 组合 思路&#xff1a; 思路&#xff1a;回溯算法。使用回溯三部曲进行解题&#xff1a; 1.递归函数的返回值以及参数&#xff1a;n&#xff0c;k&#xff0c;startIndex(记录每次循环集合从哪里开始遍历的位置)&#xff0c;其中startIndex 就是防止…

【管理运筹学】第 8 章 | 动态规划(1,多阶段决策过程与动态规划基本概念)

文章目录 引言一、多阶段决策过程及实例二、动态规划的基本概念和方法2.1 动态规划的基本概念 写在最后 引言 倒回来学动态规划&#xff0c;网络计划和排队论先放到后面吧。 动态规划是解决多阶段决策过程最优化问题的一种方法。该方法由美国数学家贝尔曼等人在 20 世纪 50 年…

网安之python基础作业(2-3)

目录 目录 前言 系列文章列表 网安之python基础学习作业(1) 思维导图 1&#xff0c;网安之python基础学习作业(2) 1.1,作业一: 1.1.1,题目 1.1.2,题解 1.2&#xff0c;作业二: 1.2,1,题目 1.2.2,题解 2&#xff0c;网安之python基础学习作业(3) 2.1,作业1 2.1…