Linux进程概念

一、冯诺依曼体系结构

我们常见的计算机,如笔记本大部分都遵守冯诺依曼体系。
冯诺依曼体系结构分为以下结构:
在这里插入图片描述
计算机硬件组件组成

1.输入设备:键盘、磁盘、网卡、显卡、话筒等;
2.输出设备:显示器、磁盘、网卡、显卡等;
3.存储器(内存)
4.运输器&&控制器(CPU)

工作原理

传输数据时。输入设备的数据先预加载到存储器中,再通过存储器将数据交给CPU进行处理,CPU再将结果写回存储器,最后再由存储器将结果刷新到输出设备。

为什么传输数据时先加载到内存中呢?

1、因为寄存器的效率比输入、输出设备快,如果输入输出设备直接跟CPU沟通这时候效率的快慢取决于输入和输出设备,最终会导致整个程序变得迟缓、所以由内存作为中间者和所以设备进行沟通。

需要注意的 点:

1、不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)
2、外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。
3、任何外设(输入、输出设备)在数据层面上,基本优先和内存打交道;CPU,在数据层面上,也直接和内存打交道。
4、内存是体系结构的核心设备。
5、存储器离CPU越近的设备存储效率越高,越远存储效率越低。
在这里插入图片描述

二、操作系统

什么是操作系统呢?

任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。笼统的理解,操作系统包括

内核(进程管理,内存管理,文件管理,驱动管理)
其他程序(例如函数库,shell程序等等)

注:操作系统(OS)不信任任何用户。

设计OS的目的是什么呢?

对下:与硬件交互,管理好所有的软硬件资源。
对上:为用户程序(应用程序)提供稳定的、高效的、安全的执行环境。

OS的定位是什么呢?

在整个计算机软硬件架构中,操作系统的定位是:一款纯正的“搞管理”的软件

如何理解 “管理”:

1、操作系统作为管理者,主要做事情决策。
2、而操作系统之下的驱动作为执行者,进行执行操作系统的决定。
3、最后的底层硬件则是一个被管理的角色。

那怎么进行管理呢?

1、先描述:先对被管理者进行描述,将其属性数据获取(数据写到struct结构体中)。
2、再组织:用链表或其他高效的数据结构进行管理数据(结构体),也就是对数据的操作达到管理的效果。

系统调用和库函数概念

1、在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分由操作系统提供的接口,叫做系统调用。
2、系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,有心的开发者可以对部分系统调用进行适度封装,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发。

三、理解进程

什么是进程呢?

课本概念:程序的一个执行实例,正在执行的程序等。
内核观点:担当分配系统资源(CPU时间,内存)的实体。

描述进程-PCB

进程可不可能存在大量的进程呢?这是可能的。
那操作系统OS会管理进程嘛?会的。
那如何进行管理呢?先描述,再组织

PCB是什么呢?

在OS层面上,PCB就是一个结构体类型。
在Linux系统中,PCB就是struct task_struct{进程的所以属性信息}
在这里插入图片描述

那如何先描述呢?

在任何进程形成之时,操作系统OS要为该进程创建一个PCB(进程控制块)进程信息被放在这个叫做进程控制块的数据结构中,可以理解为进程属性的集合。
在这里插入图片描述

如何组织进程呢?

可以在内核源代码里找到它。所有运行在系统里的进程都以task_struct链表的形式存在内核里。
在这里插入图片描述

进程和程序的区别

进程 = 程序+操作系统维护进程的相关数据结构!

task_ struct内容分类

1、标示符: 描述本进程的唯一标示符,用来区别其他进程。
在这里插入图片描述
2、状态: 任务状态,退出代码,退出信号等
在这里插入图片描述
3、优先级: 相对于其他进程的优先级。
4、程序计数器: 程序中即将被执行的下一条指令的地址。
5、内存指针: 包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针。
6、上下文数据: 进程执行时处理器的寄存器中的数据。

当有多个进程在运行时,是一个一个按照队列的方式加载到CPU中运行,但是进程代码可能在很短时间内不能运行完毕的,这时操作系统可以规定每个进程单次运行的时间片,就是让一个程序在规定的时间内运行,时间到了之后就换下一个程序加载到CPU上运行。
在单个CPU情况下,用户能感受到多个进程在运行,本质上是通过CPU的快速切换来完成的!
进程在运行期间是有切换的,进程可能存在大量的临时数据!
这些临时数据会被自己保存。等待下一次加载到CPU中。
与进程强相关的临时数据就叫上下文数据。
通过上下文,我们能感受到进程是被切换的。

7、 I/O状态信息: 包括显示的I/O请求,分配给进程的I/O设备和被进程使用的文件列表。
8、记账信息: 可能包括处理器时间总和,使用的时钟数总和,时间限制,记账号等。
9、其他信息

如何查看进程呢?
1、进程的信息可以通过 /proc 系统文件夹查看

在这里插入图片描述

2、进程的信息可以通过使用top和ps这些用户级工具来获取

进程运行时
在这里插入图片描述

进程退出时:在这里插入图片描述
所以曾经我们所有的启动程序的过程,本质上都是在系统上创建进程。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清晨白米稀饭.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值