进程----@颜麓

一、进程简介
进程是计算机中的程序基于某数据集合上的⼀次运⾏的过程,是系统进⾏资源 分配和调度的基本单位,是操作系统结构的基础,同时也是线程的容器。 在Linux环境下,每个正在运⾏的程序都称为进程。 它和程序的区别是: 程序是静态的,是⼀些保存在磁盘上的指令的有序集合,没有任何执⾏的概 念。进程是⼀个动态的概念,它是程序执⾏的过程,包括动态的创建,调度和消亡 的整个过程。(⻋与开⻋的区别) 对于系统⽽⾔,当⽤户在系统中输⼊命令执⾏⼀个程序时,它将启动⼀个进 程,进程是处于执⾏期的程序以及他所包含的资源的总称。
二、进程分类
在Linux操作系统中,进程⼤致可以分为3中不同的类型,每种进程都有⾃⼰的 特点和属性。 交互进程:也称为终端进程,由⼀个Shell启动的进程,交互进程既可以在前台 运⾏,也可以在后台运⾏。 批处理进程:这种进程和终端没有联系,即执⾏的是批处理⽂件、shell脚本。 监控进程:也称守护进程,即运⾏的守护程序,Linux系统启动时启动的进程, 并在后台运⾏。 按照进程执⾏模式分为:⽤户模式和内核模式。
如果当前运⾏的是⽤户程序,应⽤程序或者⾮内核的系统程序,那么进程就运 ⾏在⽤户模式下,如果⽤户程序在执⾏过程中出现系统调⽤或者发⽣中断事 件,那么就要运⾏系统程序,进程模式就变为内核模式,内核模式下的进程可 以执⾏机器的特权指令,此时运⾏的进程不受到⽤户的⼲扰,即使是 root ⽤户 也不能⼲扰内核模式下进程的运⾏。
三、进程控制块
进程控制块(PCB)是系统为了管理进程设置的⼀个专⻔的数据结构,⽤它来记录 进程的外部特征,描述进程的运动变化过程。系统利⽤PCB来控制 和管理进 程,所以PCB是系统感知进程存在的唯⼀标志。进程与PCB是⼀ ⼀对应的。
在这里插入图片描述
进程控制块包含了内容主要有:
进程的描述信息;
进程控制信息;
进程的资源信息 ;

在…/include/linux/sched.h中定义了task_struct或在 #include <linux/sched.h >查看,其中包含了⼀个进程所需的全部信息。其结构体实例 在内存中的⼤⼩⼀般在1KB以上。
在Linux中⽤task_struct这个结构体来表示:

 struct task_struct 
 {  //---------------------------进程状 态----------------------------------
 	/*任务的运⾏状态(-1 不可运⾏,0 可运⾏(就绪),>0 已停⽌)*/  
 		long state; //任务的运⾏状态 
 //-----------------------------进程标识 信息--------------------------------
		pid_t pid; //进程ID 
 		unsigned long sleep_time; //进程的睡眠时间 
		unsigned long rt_priority; //实时优先级 
 		long counter;/*运⾏时间⽚计数器(递减)*/ 
 } 

四、进程标识符
(Process ID)是进程描述符中最重要的组成部分,是在当前 Linux 系统中唯⼀的⼀个⾮负整数,⽤于标识和对应唯⼀的进程。⽗进程标识 号:当前进程的⽗进程的标识(PPID)。 Linux 内核使⽤了⼀个数据类型 pid_t 来存放进程的进程标识符,这个数据类 型的实质是⼀个32位的⽆符号整型数据。进程标识符被顺序编号,通常来说是 前⼀个进程的进程标识符的值加1。进程标识符可以重复使⽤,当⼀个进程被回 收之后,过⼀段时间其标识符⼜可以被再次使⽤。Linux 内核上通常允许使⽤的 进程标识符是 0~32767。
在Linux中,有⼏个特殊的进程标识符所对应的进程。
进程标识符0:对应的是交换进程(swapper),⽤于执⾏多进程的调⽤。
进程标识符1:对应的是初始化进程(init),在⾃举过程结束时由内核调 ⽤,对应的⽂件是/sbin/init,负责 Linux 的启动⼯作,这个进程在系统运 ⾏过程中是不会终⽌的,可以说当前操作系统中的所有进程都是这个进程衍 ⽣⽽来的,除了 init 进程外其他所有的进程 ID 每次都会改变。
进程标识符2:可能对应⻚守护进程(pagedaemon),⽤于虚拟存储系统的 分⻚操作。
五、进程的特性
动态性 进程的实质是程序的⼀次执⾏过程,进程是动态产⽣,动态消亡的。 并发性 多个进程可以同⼀时间运⾏在⼀个内存空间中,任何进程都可以同其 他进程并发执⾏。 独⽴性 虽然在⼀个内存空间中有多个进程在运⾏,但其实每个进程都运⾏ 在各⾃的虚拟内存空间中,互不⼲扰。 6
异步性 由于进程间的相互制约,使得进程具有执⾏的间断性,也就是说, 进程按各⾃独⽴的,不可预知的速度向前推进。 结构特性 每个进程都有⾃⼰的私有空间,在这个私有空间中,会涉及四个不 同的段落,进程在内存中的结构由代码段,数据段,堆段和栈段四部分组成。
在这里插入图片描述
并⾏性:只有在多cpu多处理器的计算机上,进程才能并⾏执⾏。
并发与并⾏的区别:
并发性是在宏观上的同时向前推进,cpu是时间轮转机制进⾏对进程的调度,可 能⼀个进程占⽤cpu短短10ms就切换去执⾏另⼀个进程了,⽽我们的⾁眼是不 可能看到这种细微的变化,所以在我们宏观概念上认为他是同时推进的,这就 是并发性。(⼀定是在宏观上)
并⾏性就是真正意义上的⼀起推进,就是多个进程在同⼀时间被⼀起执⾏。但 是上⾯也提到过,想要⽀持进程并⾏,必须是多cpu的计算机。
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值