建设网站需要什么技术支持,免费大数据查询平台,WordPress域名相关主题,专业的高密网站建设文章目录一.进程的概念1.1概念1.2进程的组成1.2.1 PCB中描述进程的特征二.进程的虚拟地址空间三.进程间的通信引入线程一.进程的概念
1.1概念
百科的介绍: 换句话说,一个跑起来的程序,就是一个进程,也就是在操作系统中运行的exe程序就是一个进程,如下图的进程列表 进程是操…
文章目录一.进程的概念1.1概念1.2进程的组成1.2.1 PCB中描述进程的特征二.进程的虚拟地址空间三.进程间的通信引入线程一.进程的概念
1.1概念
百科的介绍: 换句话说,一个跑起来的程序,就是一个进程,也就是在操作系统中运行的exe程序就是一个进程,如下图的进程列表 进程是操作系统对一个正在运行的程序的抽象,同时,在操作系统内部,进程又是操作系统进行资源分配的基本单位 而线程是操作系统调度执行的基本单位 1.2进程的组成
进程是一个重要的资源管理,是由描述组织构成的, 描述:使用结构体来描述进程属性(PCB(进程代码块)) 组织:通过双向链表,来把多个PCB给串到一起
1.2.1 PCB中描述进程的特征
pid 进程的身份标识符(唯一的数字)内存指针 (指向自己的内存是那些)文件描述符表 (硬件上的文件等其他资源)进程调度的相关属性
详细的介绍的进程调度的相关属性
进程的状态
就绪状态运行状态阻塞状态
优先级上下文 操作系统在进行进程切换的时候,就要把进程执行的中间状态记录下,保存好,下次这个进程再上CPU运行的时候,就可以恢复上次的状态好继续往下执行(读档,存档)记账信息 操作系统,统计每个进程在CPU上占用的时间和执行的指令的数目,根据这个来决定下一阶段如何调度
二.进程的虚拟地址空间
内存管理----虚拟地址空间 程序中所获取的内存地址,并非是真的物理内存的地址,而是经过了一层抽象,虚拟出来的地址(内存的特性:随机访问(闪现)) 虚拟地址空间:程序中所取到内存地址,并非是真正的物理内存的地址,而是经过了一层抽象,虚拟的地址 先来介绍未引入虚拟地址的模式 如果代码不小心出不bug了,可能会导致访问的内存越界 像上面的图片,进程1访问的内存越界到进程2时候,就把进程2搞崩溃了 针对进程使用的内存空间,进行’隔离引入了虚拟地址空间,代码里不再直接使用真实的物理地址,而是使用虚拟的地址(由操作系统和专门的硬件设备负责进行虚拟地址到物理地址的转换) 如下图: 一旦进程1访问越界了,操作系统发现后,此时就直接向进程反馈一个错误(具体来说是发送一个(SIGN SEGEMNT FAUL信号,引起进程的崩溃) 三.进程间的通信
虽然进程进行隔离,但是也引入了新的问题,进程之间也需要进行数据的交互,如此,进程之间就需要有进行信息交换的需求.进程间通信的需求就应运而生。 简单来说,需要搞一多个进程都能访问到公共空间,基于这个公共空间进行交互数据即可. 其中公共空有很多具体的体现形式(不作过多介绍)
管道共享内存文件网络信号量信号
引入线程
一个进程要完成内核的事情它必须有一个运行在它的地址空间的线程。此线程负责执行该进程地址空间的代码。每个进程至少拥有一个在它的地址空间中运行的线程。一个进程要完成内核的事情它必须有一个运行在它的地址空间的线程。此线程负责执行该进程地址空间的代码。每个进程至少拥有一个在它的地址空间中运行的线程。