06_进程

1.进程概述


程序是包含一系列信息的文件,这些信息描述了如何在运行时创建一个进程
一个程序包括:二进制标识符,机器语言指令,程序入口地址,数据,符号表及重定位表,共享库和动态链接信息,其他信息

进程是正在运行的程序的实例。是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本分配单元,也是基本执行单元
单道程序:在计算机内存中只容许一个程序的运行
多道程序:目的是为了提高CPU的利用率

时间片(timeslices)又称“量子”或“处理器片”:是操作系统分配给每个正在运行的进程微观上的一段CPU时间,只有一个CPU的情况下,一个CPU一个时刻只能运行一个程序,由于时间片很短(Linux上为5ms~800ms),这些进程看起来像是“同时进行”,实际上是轮番穿插地运行。

并行:在同一时刻,有多条指令在多个处理器上同时执行
并发:在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得宏观上具有多个进程同时执行的效果,但微观上不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行。

进程控制块(PCB):内核为每个进程分配一个PCB,维护进程相关的信息,Linux内核的进程控制块是task_struct结构体
task_struct结构体内部成员:进程id,进程状态,进程切换时需要保存和恢复的一些CPU寄存器,描述虚拟地址空间的信息,描述控制终端的信息,当前工作目录,umask掩码,文件描述符,和信号相关的信息,用户id组id,会话和进程组,进程可以使用的资源上限。
ulimit -a

2.进程状态转换


进程状态反应进程执行过程的变化。这些状态随着进程的执行和外界条件变化而转换。三态模型:就绪态,运行态,阻塞态。五态模型:新建态,就绪态,运行态,阻塞态,终止态。

运行态:进程占有处理器正在运行
就绪态:进程具备运行条件,等待系统分配处理器以便运行。当进程已分配到除了CPU以外的所有必要资源后,只要再获得CPU,便可立即执行。在一个系统中就绪态的进程可能有多个,通常将它们排成一个队列,成为就绪队列
阻塞态:又叫等待态或睡眠态,指进程不具备运行条件,正在等待某个事件的完成。
新建态:进程刚被创建时的状态,尚未进入到就绪队列
终止态:进程完成任务到达正常结束点,或出现无法克服的错误而异常终止,或被操作系统及有终止权的进程所终止时所处的状态。进入终止态的进程以后不再执行,但仍然保留在操作系统中等待善后。一旦其他进程完成了对终止态进程的信息抽取之后,操作系统将删除该进程。

ps aux / ajx 打印全部进程的快照信息
tty 查看当前终端的信息
top 实时显示进程动态,使用时可以加上-d来指定显示时间更新的时间间隔,在top执行后,可以按按键对显示的结果进行排序
杀死进程 
kill 进程号
kill -l  查看所有进程信号
kill -9 进程ID
killall name
./程序名   在前台运行程序
./程序名 &  在后台运行程序
在前台运行的话,当前终端就会阻塞在该程序中,无法输入其他的shell命令
在后台运行则可以随时输入kill等shell命令

进程号和相关函数
每个进程都由进程号来标识,其类型为pid_t(整型),进程号范围:0~32767。进程号总是唯一的,但可以重用,当一个进程终止后,其进程号就可以再次使用。
任何进程(除init进程)都是由另一个进程创建,该进程称为被创建进程的父进程,对应的进程号称为父进程号(PPID)
进程组是一个或多个进程的集合。他们之间相互关联,进程组可以接收同一终端的各种信号,关联的进程有一个进程组号(PGID)。默认情况下,当前的进程号会当做当前进程组号。
进程号和进程组相关函数:
pid_t getpid(void);
pid_t getppid(void);
pid_t getpgid(pid_t pid);
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值