提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、什么是进程?
  • 二、进程在操作系统到底怎么运作的呢?
    • 我们如何从一个进程转换到另一个进程


一、什么是进程?

其实进程就是由代码➕️pcb=进程。而pcb是操作系统加载在内存中,建立的一个结构体,里面存储是有关代码的和他本身进程的一些信息。

这就是pcb也就是task_struct的一些内容,里面的内容其实非常多,感兴趣的可以自己去找网上的linux的源代码。

二、进程在操作系统到底怎么运作的呢?

1.首先我们要明白我们使用的电脑到底是怎么通过操作系统来控制进程来执行我们想要的任务?

其实操作系统就是一个软件,他是用来连接上层(用户)和下层的中间的管理人,我们在使用的一些库,都是通过系统调用来封装的。

什么是系统调用呢?

其实系统调用其实就是操作系统提供给上层的的一个命令接口,而操作系统里面封装成的命令就是来控制我们的硬件例如:cpu,内存,硬盘等等。但是操作系统并不能直接来指挥硬件,它要通过驱动程序来指挥我们的硬件。

我们在启动电脑的时候,操作系统就会加载到内存中,我们点击一个软件的时候我们会从硬盘上把这个软件的的代码加载到内存中,然后操作系统就会在内存中创建pcb,然后在运行队列中排队,运行队列可以想象成一个一个的进程排着队,等待在操作系统调用它。

这就是操作系统里面的一个数组运行队列,里面具体的含义我就不一一解释了,感兴趣的可以自行了解。

2.我们如何从一个进程转换到另一个进程?

我们现在的cpu基本都实现了多线程并行,但是我们以单cup单内核来说明进程的切换。

首先我们单核的cpu是如何运行多个程序呢?

其实cup是通过时间片段来运行多个进程,但是这个时间片段非常短,我们几乎感觉不到有变化。这就会导致一个问题,我们正在运行的进程被切换到了下一个进程,我们下一次怎么知道上一次我们运行的进度在那呢?

操作系统里面会设置多个寄存器来存储和记录进程的运行临时数据,当我们要切换进程了,操作系统会把我们运行到哪一行的代码数据给存储在寄存器里面,然后全部拷贝寄存器的内容直接放到pcb里面,等下次运行到这个进程时把里面内容再拷贝会到寄存器里面。


总结

总而言之在学习操作系统,不仅要理解里面的概念,更要切实体验一下。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐