快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

进程与线程-创新互联

一,进程 1.1 什么是进程

进程,也叫做任务.   一个跑起来的程序,就是一个"进程".如果没跑起来,就不是进程.例如:

在清丰等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站设计制作、网站设计 网站设计制作按需定制制作,公司网站建设,企业网站建设,品牌网站设计,网络营销推广,外贸网站建设,清丰网站建设费用合理。

这是一个ideaIU.exe可执行程序,我们可以双击将它进行运行.但是只要咱们没有双击,他就不叫进程!

1.2 认识进程

由下图我们可以看到许多正在运行的程序,他们都是进程.

同时,我们也可以看到,每个进程都有分配相应的CPu,内存,磁盘,GPU,网络等资源.所以我们说,进程是操作系统资源分配的基本单位.举个例子就是:疫情期间小区封控管理,小区开始给各家各户发菜,那么这个发菜就是以家庭为单位来发菜的.而我们的进程就相当于这里的家庭.

进程是一个重要的"软件资源",其主要是由操作系统来负责描述+组织.其中组织是用双向链表来串到一起,描述是用PCB来进行描述的.

二,PCB

我们上面说过,操作系统会对进程进行 描述+组织,而一个进程包含了一个或多个线程.其中,PCB就是用来描述线程的.PCB是用C语言的结构体来实现的.其中,创建一个进程,本质上就是创建一个PCB这样的结构体对象,把它插入到双向链表当中.而销毁一个进程,就是把链表上的PCB节点给删除掉.那么,PCB里到底包括了什么呢?

2.1 pid 进程的身份标识符(唯一数字)

每个进程都有自己的pid,并且每个进程之间的pid是不一样的.

2.2 内存指针

指向了说明自己的内存是哪些.

2.3 文件描述符表

描述了硬盘上的文件等其他资源.和内存指针一块描述了进程持有哪些硬件资源.

2.4 进程调度相关的属性 2.4.1 进程的状态

1.就绪状态:随叫随到,进程准备好了去CPU上面执行.

2.运行状态:正在CPU上运行.

3.阻塞状态:进程短时间内无法到CPU上执行.比如进程正在进行密集的IO操作(读写数据).

2.4.2 优先级

操作系统不是一碗水端平的,它在调度的时候也是有优先级的.先给哪个程序排,后给谁排.或者给谁少排点,给谁多排点时间.

2.4.3 上下文

上下文就是一种记录,记录上次和进程A进行到哪种状态了.比如:当操作系统进行切换的时候,就需要记录下来进程运行到哪种状态了.当下次CPU运行这个进程的时候,就可以直接恢复到上次结束的时候得状态.其本质就是存档的内容.(进程的上下文就是CPU各个寄存器中的值).

2.4.4 记账信息

操作系统统计每个进程每个程序在CPU上占用的时间和执行的指令数目,根据这个来决定下一阶段的调度.

三,CPU--进程调度

我们知道CPU是有很多核心的,像我这个就是有12个核心的CPU,虽然有这么多CPU核心,但是也架不住进程多呀.一般我们的电脑上的进程都有200来个,如果CPU无法合理分配自己的资源(一核有难,九核围观)来处理这些进程,那么我们的电脑就会变得非常的卡.那我们的CPU如何去应对这种狼多肉少的局面呢?那就是并行+并发.

1. 并行

微观上的同一时刻,两个核心上的进程就是同时执行的.

2. 并发

微观上,同一时刻,一个核心上智能运行一个进程,但是它可以快速的对进程进行切换.

例如:一个CPU核心,它先运行QQ,再运行一下微信,再运行一下浏览器....只要它的切换速度足够快,在宏观上(人)就感觉这几个进程在同时运行.而这几个进程在微观上是一直在切换的.

总结:1.CPU就时通过并发+并行,来处理狼多肉少这个问题.

  2.并行和并发是内核负责处理的.应用程序层面是感知不到的.因此并发和并行一般统称为并发.

四,内存管理

每个进程都有自己的内存空间,但是当进程出现BUG的时候,例如进程对内存的使用越过了界限的时候,就可能会对别的进程的内存中的内容进行修改.这样就可能会导致本进程没崩溃,而把别的进程搞崩溃的情况产生.为了防止这样的事情发生,我们一般使用MMU这个硬件设备来对虚拟内存地址来进行转换,转换到真正的物理地址,一旦虚拟地址转换的数值与进程的真正的物理内存地址不匹配,那么就说明产生了BUG,该硬件设备就会反馈一个错误,使出现错误的进程崩溃,这样就不会让出现错误的进程影响到其他进程了!

下面就是原理图:

五,程序间通信

我们知道,在操作系统中,进程是进行资源分配的最小单位.这就意味着进程和进程之间是无法感受到其他进程之间的存在的.我们称其为"隔离性".但随着业务需求越来越复杂,一个进程是无法完成任务的.进程和进程之间有时候也需要相互沟通交流.实现的核心思路就是:对进程之间提供一个公共空间,相互之间都可以访问,基于这个公共空间来进行数据交互.

主流操作系统提供的进程通信机制有:管道,文件,共享内存,网络,信号,信号量.

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


新闻标题:进程与线程-创新互联
分享网址:http://6mz.cn/article/dhdosj.html

其他资讯