Linux进程(冯诺依曼体系结构、操作系统、进程)


一、冯诺依曼体系结构:

1.基本概念:

我们常见的计算机设备大都遵循冯诺依曼体系结构。
请添加图片描述

  • 存储器:内存 输入设备:磁盘、网卡、键盘、话筒、摄像头…
  • 输出设备:磁盘、网卡、显示器、音响…
  • 中央处理器:CPU
  • 运算器:算数运算、逻辑运算
  • 控制器:CPU响应外部事件,协调外部就绪事件,比如,拷贝数据到内存。

2.为什么如此设计:

2.1.运行速度优化:

CPU&&寄存器 > 内存 > 磁盘 > 光盘 > 磁带
根据木桶原理,一只水桶能装多少水取决于它最短的那块木板。
在这里插入图片描述
如果直接让CPU和磁盘等交互,两者的运行速度差太多
内存的加入,使得内存和CPU,内存和外设之间运行速度数量级降低,再通过软件的优化,可以提前将数据加载到内存中,使得运行速度大大提高。

2.2.成本:

如果把磁盘全部换成内存,运行效率会大大提高,但是成本无疑是很高的,且磁盘这种磁性设备断电之后依然可以存储数据,内存是做不到的,所以冯诺依曼体系结构的设计在提高效率的基础上也降低了成本。

3.总结:

  1. CPU读取数据(数据+代码),都是从内存中读取,处理完后再写入到内存当中。
  2. CPU要处理数据,必须先将外设中的数据加载到内存,CPU只和内存打交道。

二、操作系统:

1.基本概念:

操作系统是进行软硬件资源管理的软件。

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

在这里插入图片描述

2.操作系统的作用:

  1. 对上:给用户减少使用成本,为用户提供良好的使用环境。
  2. 对下:与硬件交互->管理好软硬件资源。保证系统的稳定环境。

3.什么是管理:

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

在现实生活中,管理者和被管理者不一定要直接交互:
例如:校长通过辅导员和班主任来对学生进行管理。
在这里插入图片描述
管理者通过执行者来拿到被管理者的信息,再通过“先描述,再组织”来进行管理决策。即通过一系列的数据结构来进行描述组织。

例如:编写一个学生成绩排名的算法:
可以把对象组织为结构体数组:这样对学生的管理工作,就变成对数组的增删查改。

三、进程:

当我们启动了一个软件,实际上就是启动了一个进程。
在linux下,./xxx运行的时候,其实就是在系统层面创建了一个进程。

1.基本概念:

  • 正在运行的程序称之为进程。
  • Linux是可以同时存在大量的进程在系统中。
  • Linux操作系统要不要管理这些进程呢?必须要!
  • 怎么管理这些进程的呢?答案是:先描述再组织

2.进程的管理:

人认识各种事物,就是通过“属性”来认识的。
通过“先描述再组织”,进程=对应代码和数据+进程对应的PCB结构体

struct PCB
{
    
    
	//进程所有的属性数据
	struct PCB *next;
	struct PCB *prev;
}

在这里插入图片描述

3.PCB—进程描述:

  • 进程信息被放在一个叫做进程控制块的数据结构中,可以理解为进程属性的集合。
  • 课本上称之为PCB(process control block), Linux操作系统下的PCB是: task_struct。

task_ struct内容分类

  • 标示符: 描述本进程的唯一标示符,用来区别其他进程。
  • 状态: 任务状态,退出代码,退出信号等。
  • 优先级: 相对于其他进程的优先级。
  • 程序计数器: 程序中即将被执行的下一条指令的地址。
  • 内存指针: 包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针
  • 上下文数据: 进程执行时处理器的寄存器中的数据[休学例子,要加图CPU,寄存器]。
  • I/ O状态信息: 包括显示的I/O请求,分配给进程的I/ O设备和被进程使用的文件列表。
  • 记账信息: 可能包括处理器时间总和,使用的时钟数总和,时间限制,记账号等。
  • 其他信息

总结

以上就是今天讲的Linux进程的相关内容了,包含冯诺依曼体系结构、操作系统、进程的基本概念,希望对刚刚阅读本篇博客的你有所帮助!

猜你喜欢

转载自blog.csdn.net/weixin_61661271/article/details/127154386