从零了解进程(操作系统定位,进程的概念,特征,虚拟地址)
目录
操作系统的定位
进程的概念
如何描述进程?
如何组织进程?
进程的特征
1.pid
2.内存指针
3.文件描述符
4.进程调度的相关属性
(1)进程的状态
(2)优先级
(3)上下文
(4)记账信息
进程是如何利用cpu资源的?
进程的虚拟地址
物理地址
内存随机访问的特性
为什么程序不直接获取内存的物理地址?
虚拟地址
操作系统的定位
介绍进程之前我们先简单介绍一下操作系统
操作系统是一个搞管理的软件,它对下管理硬件设备,对上给软件提供稳定的运行环境,操作系统是:软件 硬件 用户之间交互的媒介
我们熟悉的操作系统有:Window Linux Mac……
进程的概念
一个正在运行的程序,就是一个进程.
比如我们打开任务管理器,这些都是进程,它们对应着一些cpu,内存,磁盘,网络资源,
进程是操作系统资源分配的基本单位.
进程是一个重要的软件资源,由操作系统负责管理的操作系统是如何管理的呢?
简单来说就是,描述和组织进程,讲清楚进程有哪些属性和特征,通过一定的数据结构把多个这样的 基本单位串联起来.
如何描述进程?
使用结构体来描述进程, 用来描述进程的结构体我们称之为PCB(进程控制块)
如何组织进程?
通过双向链表,把多个PCB串联在一起, 创建一个进程,本质上就是创建一个pcb这样的结构体对象,把它插入到双向链表当中 销毁一个进程,本质上就是把链表上的pcb节点删除掉 用任务管理器查看进程,本质上就是遍历整个pcb链表
进程的特征
我们用pcb这个结构体来描述进程,那么pcb描述了进程的哪些特征?
1.pid
进程的身份标识符,是唯一的一串数字
2.内存指针
指向了说自己要用到哪些内存
3.文件描述符
硬盘上的文件等其他资源
4.进程调度的相关属性 (1)进程的状态
就绪状态:随叫随到,随时准备到cpu上取执行
运行状态:正在cpu上执行
堵塞状态:短时间内无法在cpu上执行
(2)优先级
进程也是有优先级的.谁先排,谁后排也是有一定的算法逻辑的
(3)上下文
简单来说就是”存档”和”读档”,操作系统在进行切换的时候,就需要把中间状态给记录下来,下次这个进程再上cpu上执行时,就可以恢复上次的状态继续往下执行了.
本质上,进程的上下文,就是cpu中的各个寄存器的值. 寄存器:cpu内置的存储数据模块,保存的就是程序运行的中间结果保存上下文:就是把这些cpu寄存器的值,记录到内存中 恢复上下文:就是把内存中这些cpu寄存的值,恢复回去
(4)记账信息
操作系统,统计在每个进程在cpu上占用的时间,和执行的指令数目, 根据这个来决定,下一阶段该如何调度.
进程是如何利用cpu资源的?
内存指针和文件描述符,其实就是描述了,进程持有了哪些硬件资源 进程的调度的相关属性,其实就描述了进程是如何利用cpu资源的.
硬件资源,内存,硬盘,网卡等比较好分,而cpu资源不好分, 一般我们的电脑进程有上百个,而cpu只有一个,尽管现在cpu是多核的,每个核心都可以看作一个独立的cpu,但是往往也就是8核,12核,16核……还是不够进程分!
狼多肉少,这些进程都希望能够同时运行,这时我们就要用到并行核并发了.
并行:微观上,同一时刻,俩个核心上的进程,就是同时执行的
并发:微观上同一时刻,一个核心上只能运行一个进程,但是能够进行快速切换 比如一个cpu核心上,先运行谷歌浏览器,再运行qq音乐,再运行微信…… 只有切换速度足够快,宏观上,让人感知不到
操作系统内核处理的应用程序,我们感知不到是并行还是并发 因此,往往把并行和并发统称为并发
操作系统也有一个重要的模块调度器,负责让有限的cpu调度执行这么多的进程.
进程的虚拟地址 物理地址
内存:物理上是一条内存条,可以存很多数据, 内存可以想象成一条大走廊,有很多房间,每个房间的大小都是1Byte 每个房间都有一个编号,从0开始依次累加这个内存编号,就是地址, 这个地址我们称之为物理地址.
内存随机访问的特性
随机访问:访问内存上任意地址的数据,速度都极快,时间上都差不多. 数组取下标时间复杂度是O(1),也是因为内存随机访问的特点.
为什么程序不直接获取内存的物理地址?
虚拟地址
使用物理地址有个明显的弊端,如果出bug了,明明是进程1的bug,可能会把其它进程给搞坏. 所以我们针对进程使用的内存空间,进行”隔离”,使用虚拟地址空间,由操作系统和专门的硬件设备(MMU),负责进行虚拟地址,到物理地址的转换
一旦访问越界了,比如进程1的指针地址成了0x3000 操作系统内核会发现这里的地址超出了进程1的访问范围了 此时就会直接反馈一个错误 因此,谁出bug,影响谁,其它进程不受影响.
转载自CSDN-专业IT技术社区
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_62712350/article/details/128426323