大家好,我是旗帜僵尸。今天我将带领大家学习进程的概念。
本篇文章将继续收录于我的linux专栏中,若想查看关于linux其它知识的文章也可以点击右方链接。旗帜僵尸——linux
文章目录
一、进程概念
冯诺依曼体系结构
如上图所示,冯诺依曼体系结构将计算机划分为3部分,分别是CPU、存储器、I/O设备
运行速度:CPU>>存储器>>I/O设备
在数据传输时,为了加快程序运行速度,CPU是不会与I/O设备直接交涉的,而是通过存储器作为桥梁来交互。
存储器指系统内存,而磁盘属于I/O设备
OS(操作系统Operator System)
我们从上图来学习OS。
用户希望开发,为了方便用户开发,所以我们有了用户操作接口
而在用户开发时,为了保护底层数据,又有了系统调用接口
通过调用接口,进行各种管理
驱动管理又细分为各个驱动
每个驱动对应着一个底层硬件
从图中看到,操作系统向上便于用户开发,保护隐私数据
向下又管理各种程序
OS作为用户与底层的中间者。其本质是管理各式各样的数据,确保计算机运行稳定。
进程的概念
我们可以看到OS中有对进程的管理。
而进程的本质 = 内核数据结构 + 对应的可执行程序代码。
在运行代码时,我们的程序首先从磁盘中加载到内存。
而此时,内存中除该程序代码外,还要为其创建一个用于描述代码信息的结构体——task_struct.
OS通过这些描述代码的结构体来做出管理。
PCB(进程控制块)
PCB:由task_struct组成的控制模块
可以理解为一个链表,用于管理进程。
tast_struct结构体中的内容大致有如下几类:
示符: 描述本进程的唯一标示符,用来区别其他进程。
状态: 任务状态,退出代码,退出信号等。
优先级: 相对于其他进程的优先级。
程序计数器: 程序中即将被执行的下一条指令的地址。
内存指针: 包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针.
上下文数据: