进程管理(1):进程和线程的概念

进程产生的背景首先需要回答一个问题,为什么要引入进程的概念?前面在物理内存管理部分,我有提到物理内存管理的一切目的,都是为了多任务的系统,否则对于单道程序的操作系统,直接让那单道程序独占内存和CPU就可以了,自然不需要内存管理,显然也不需要进程的管理。所以,进程概念的产生,其实还是处在多道程序的背景下的。正是因为操作系统希望同时运行多道程序,而我们都知道程序运行需要资源,因此操作系统需要合理...
摘要由CSDN通过智能技术生成

进程产生的背景

首先需要回答一个问题,为什么要引入进程的概念?

前面在物理内存管理部分,我有提到物理内存管理的一切目的,都是为了多任务的系统,否则对于单道程序的操作系统,直接让那单道程序独占内存和CPU就可以了,自然不需要内存管理,显然也不需要进程的管理。所以,进程概念的产生,其实还是处在多道程序的背景下的。

正是因为操作系统希望同时运行多道程序,而程序运行需要资源,因此操作系统需要合理地把自己的资源组织管理起来,在程序运行的时候分配相应的资源,在程序退出的时候回收那部分资源。那么问题来了?操作系统怎么知道把资源分配给了谁?怎么知道资源的占有者什么时候退出?又怎么知道应该从哪里回收分配出去的资源?因此,需要对每一个运行的任务进行抽象。对每一个运行的程序的抽象,就是这里进程的概念。这样,进程就成了操作系统资源分配的基本单位。

进程与程序的区别

程序是编译后的代码,机器码,驻留在外存或者内存当中。那么进程呢?其实上面已经提出了,进程本质上就是运行的程序。这句话涵盖了它们之间的全部区别。

一方面,进程必然是包含程序的,毕竟它需要运行这个程序,但是程序只是进程的一部分。【进程是运行的程序】,这里的【运行】,就体现了它们之间的区别——既然程序要运行,就必然在代码以外还需要一定的数据,就必然需要占用一定的资源,比如代码和数据驻留的内存资源,就会涉及到程序当前的执行状态,比如一些上下文的信息,还有寄存器的信息。因此,可以概括出,进程是由代码,数据,各个寄存器以及占用的资源所组成的。

从上面的讨论中,已经可以总结出进程和程序的区别了:

  • 首先,程序是静态的,进程是动态的。程序其实是静态的可执行文件,是可以永久保存的;但是进程由于其运行的性质,不可避免地具有各个生命周期,比如创建,运行,等待,退出等,它是动态变化的,有始有终的。由此也可以得出结论,同一个程序的多次执行过程是对应了不同的进程。
  • 其次就是两者的组成成分不同,进程是包含了程序的,除此以外进程还含有数据,状态信息等。

现在,我们可以给出一个更加严谨的进程的定义了:

进程是指一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。

它具有以下特点:

  • 动态性
  • 并发性:进程就是为了多任务并发运行而产生的
  • 独立性:指不同的进程,它们的工作互不影响
  • 制约性:操作系统的资源是有限的,所有进程共享这些有限的资源,会因为资源的分配或者进程间同步而产生制约

进程控制块

进程管理是进行什么管理呢?

这就好比你在烟花巷开了一家青楼,对于每一个客人,有的要先喝个酒,你得给他分配一瓶酒;有的客人直接带姑娘上楼了,那你得知道它带的是哪个姑娘,别的客人请求这个姑娘的时候他们就只能等着;然后这个客人带着这个姑娘,你得知道他什么时候完事儿了,你总不能让他就把姑娘给你带走了,你得把姑娘进行回收,然后再把姑娘分配给等着的那些客人。

进程管理也是出于同样的目的。进程管理其实只在意资源的分配和回收。但是为了管理资源,还需要同时管理进程的状态,这样操作系统才知道什么时候应该分配资源,什么时候又应该回收

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值