从零了解进程(操作系统定位,进程的概念,特征,虚拟地址)

目录

操作系统的定位

进程的概念

如何描述进程?

如何组织进程?

进程的特征

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


比丘资源网 » 从零了解进程(操作系统定位,进程的概念,特征,虚拟地址)

发表回复

提供最优质的资源集合

立即查看 了解详情