(P10)进程:进程状态变迁、进程控制块、进程创建、进程创建、进程撤销、终止进程的五种方法

文章目录

    • 1.进程状态变迁
    • 2.进程控制块
    • 3.进程创建
    • 4.进程撤销
    • 5.进程终止的5种方法

1.进程状态变迁

  • 就绪
    除了CPU资源未满足,其它资源全都满足了;

  • 等待
    不仅CPU资源不满足,其它资源也不满足(比如外设,等待别人将外设让出来使用);

  • 运行
    所有资源都满足了,且投入到计算机中运行了;

  • 解释
    (1)进程因创建而产生处于就绪状态。
    (2)进程因调用而运行,运行中的进程可能发生等待事件,比如访问的设备资源未满足,所以进程处于等待状态。
    等待状态的进程因等待结束,进程就会处于就绪态。
    (3)另外,运行中的进程可能被剥夺处于就绪态,需要让出CPU时间片(可能操作:给进程分配CPU的时间片用完了或者被更高优先级的进程抢占)
    (4)另外,运行中的进程可能因为程序代码执行完毕而处于撤销状态
    (P10)进程:进程状态变迁、进程控制块、进程创建、进程创建、进程撤销、终止进程的五种方法_第1张图片

  • 进程状态变迁
    (1)运行状态TASK_RUNNING
    (2)可中断睡眠状态TASK_INTERRUPTIBLE
    (3)不可中断睡眠状态TASK_UNINTERRUPTIBLE
    (4)暂停状态TASK_STOPPED
    (5)僵尸状态TASK_ZOMBIE

  • 进程状态变迁图
    (1)可运行状态(running状态)分为:用户运行态,内核运行态(图中的就绪态不是正真的运行状态)
    (2)等待状态分为:可中断睡眠状态,不可中断睡眠状态
    (3)可中断睡眠状态:系统允许进程被信号中断,而被重新唤醒
    (4)不可中断睡眠状态:系统不允许进程被信号中断,eg:执行磁盘操作时,就不允许信号中断,磁盘操作结束,会通知系统磁盘操作结束
    (5)就绪态分(了解)为:在内存空间就绪,在交换空间就绪
    (P10)进程:进程状态变迁、进程控制块、进程创建、进程创建、进程撤销、终止进程的五种方法_第2张图片

2.进程控制块

  • 进程描述信息
    进程标识符用于唯一的标识一个进程

  • 进程控制信息
    (1)进程当前状态:就绪,等待,运行
    (2)进程优先级:高优先级的进程可以抢占
    (3)进程开始位置
    (4)各种计时信息
    (5)通信信息

  • 资源信息
    (1)占用内存大小及管理用数据结构指针
    (2)交换区相关信息
    (3)I/O设备号、缓冲、设备相关的数据结构
    (4)文件系统相关指针

  • 现场保护信息:进程之间的切换需要保存一些现场信息
    (1)寄存器:CPU通用寄存器
    (2)PC指针
    (3)程序状态字PSW
    (4)栈指针:堆栈的指针信息

  • 0号进程和1号进程
    (1)0号进程是内核进程,0号进程也称之为空闲进程,作用:交换功能:将内存中的数据交换到交换空间,或者将交换空间的数据交换到内存
    (2)1号进程是0号进程创建的,init进程是用户进程,他是磁盘上的一个程序,位置:/sbin/init(which init)
    (3)创建的进程数目:

root@ubuntu:~# cat /proc/sys/kernel/pid_max
131072
  • 进程标识
    (1)每个进程都会分配一个独一无二的数字编号。我们称之为进程标识process identifier,或者就直接叫它PID
    (2)是一个正整数,取值范围从2到32768
    (3) 当一个进程被启动时,他会顺序挑选下一个未使用的编号数字作为自己的PID
    (4)数字1一般为特殊进程init保留的

3.进程创建

  • 不同的操作系统所提供的进程创建原语的名称和格式不尽相同,但执行创建进程原语后,操作系统所做的工作却大致相同,都包括以下几点:
    (1)给新创建的进程分配一个内部标识PID,在内核中建立进程结构PCB
    (2)复制父进程的环境
    (3)为进程分配资源,包括进程映像所需要的所有元素(程序、数据、用户栈等)
    (4)复制父进程地址空间的内容到该进程地址空间中
    (5)置该进程的状态为就绪,插入就绪队列

4.进程撤销

  • 进程终止时操作系统做以下的工作
    (1)关闭软中断:因为进程即将终止而不再处理任何软中断信号
    (2)回收资源:释放进程分配的所有资源,如关闭所有已打开文件,释放进程相应的数据结构等
    (3)写记账信息:将进程在运行过程中所产生的记账数据(其中包括进程运行时的各种统计信息(CPU时间等))记录到一个全局记账文件中
    (4)置该进程为僵死状态:向父进程发送子进程死的软中断信号,将终止信息status送到指定的存储单元中;
    (5)转进程调度:因为此时CPU已经被释放,需要由进程调度进行CPU的再分配

5.进程终止的5种方法

  • 从main函数返回:return 0,因代码执行完毕而撤销
  • 调用exit
  • 调用_exit
  • 调用abort:产生SIGABRT信号,异常终止
  • 由信号终止:ctrl + C:向当前运行的前台进程发送SIGINT信号,终止前台进程

你可能感兴趣的:(Linux高性能编程)