【进程概念】

什么是在计算机运行的程序

对于一个在磁盘可执行的二进制文件,也可叫做可执行程序。对于一个可执行的程序,程序有自己的代码和数据。一旦运行起来,就会在计算机内部运作起来。
根据冯诺依曼体系,一个程序要被运行起来,先是要加载到内存当中,然后再到CPU调度。当代计算机中,能运行一个程序,就能运行多个程序,然后每个二进制的可执行文件程序都像在自己干自己的事情,互不干扰。这就是在计算机运行的程序。

这么多运行的程序计算机是如何管理的

先描述

当程序加载到内存的时候,计算机的操纵系统(OS)必然会对这个程序进行管理,操作系统是通过对程序对象的先描述,抽象成一个对象,这个对象就是一个进程(process),所以程序运行起来就是操作系统的一个进程(操作系统创建一个进程来运行这个程序)。操作系统对程序的管理转而变为对进程的管理,进程有程序的代码和数据。实际上在磁盘的程序在运行之前,是把代码和数据拷贝到内存当中,而程序依据再磁盘保存着,所以说运行的程序其实是操作系统中运行的进程。然后这些进程在合适的时机会被CPU调度。

再组织

对程序拷贝到内存的代码和数据进行描述完成后,操作系统要对这些进程管理,再linux系统当中,会以一个叫task_struct的结构体对象对进程进行管理,task_struct包含着进程的属性,task_struct就是操作系统管理进程的控制块,包含着进程的许多属性(process contorl block),然后task_struct以某种数据结构类型相互联系起来。再以一个struct runqueue的运行队列结构体管理。
进程包含(代码 + 数据 + 进程控制数据结构)
如果一个在磁盘可执行的文件已经加载到内存有进程一直在运行,如果进程还没结束,把磁盘的可执行文件删除,该进程还能运行,因为该进程是拷贝可执行文件的数据和代码,虽然已经删除可执行文件,但依旧运行。如果终止想重新执行就不可以。

struct task_struct {
   
	volatile long state;	/* -1 unrunnable, 0 runnable, >0 stopped */
	prio_array_t *array;//有该进程被cpu调度的优先级
	pid_t pid;//有进程的id编号
	pid_t tgid;
	struct mm_struct *mm, *active_mm;//进程的内存地址空间
	int exit_code, exit_signal;//进程的退出码和退出信息
	struct task_struct *next_task, *prev_task;
	//
	//...........................................
	//该进程的一系列属性。包括形成该进程的文件路径和其他文件信息
}
//操作系统也是软件,上述结构体就是操作系统管理进程的task_struct
struct task_struct *next_task, *prev_task;

操作系统通过这种双链表的形式组织管理这些进程控制块。
在这里插入图片描述

当新的程序执行的时候,操作系统再次创建进程,把进程通过链表的链入规则连接到运行队列,如果进程结束,则task_struct在链表上删除,然后重新连接。

相关推荐

  1. 进程概念介绍

    2024-02-23 20:20:03       23 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-23 20:20:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-23 20:20:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-23 20:20:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-23 20:20:03       20 阅读

热门阅读

  1. 如何让qml使用opengl es

    2024-02-23 20:20:03       27 阅读
  2. ChatGPT提示词(最新)

    2024-02-23 20:20:03       24 阅读
  3. K8S 滚动升级&持久化实战案例

    2024-02-23 20:20:03       29 阅读
  4. 备战蓝桥杯 Day11(滚动数组优化+完全背包)

    2024-02-23 20:20:03       28 阅读
  5. c++无条件转移语句goto的介绍

    2024-02-23 20:20:03       25 阅读
  6. ERC721解读

    2024-02-23 20:20:03       31 阅读