进程概念

一、定义

(1)进程是程序的一次执行过程

(2)进程是程序及其数据在处理机制上顺序执行时所发生的活动

(3)进程是具有独立功能的程序在数据集合上运行的过程,它是系统进行资源分配和调度的基本单位

二、PCB

1. 概念

进程=PCB+程序(程序段+数据段),PCB是进程存在的唯一标志。创建进程就是创建PCB,撤销进程就是撤销PCB。

系统为每个运行的程序(一个指令序列)配置一个数据结构,称为进程控制块(PCB),用来描述进程的各种信息(如程序代码存放的位置)

描述进程:PCB(将进程的信息用一个结构体存储起来,这个结构体相当于一个结点)

组织进程:用双向链表将PCB连接起来。在数据结构里面,一般的数据结构都会用到结构体,而PCB也是一个数据结构,所以这里用到struct,在Linux下PCB是task_struct的结构体。在别的平台下,存放PCB信息的可能是别的struct

2. 操作系统通过PCB来管理进程,因此PCB中应该包括操作系统对其进行管理所需的各种信息,Linux下task_struct结构体内容有:

(1)标识符:(进程ID)用来唯一标识该进程,区别其他进程

(2)状态:每个进程都有自己的状态,还有退出码、退出信号等

(3)优先级:相对于其他进程的优先级,标识CPU资源分配的先后顺序

(4)程序计数器:程序中下一条被执行指令的地址

(5)内存指针:内存代码和进程相关数据的指针,还有和其他进程共享的内存块的指针

(6)上下文数据:进程执行过程中寄存器中的数据

(7)I/O状态信息:I/O请求,分配的I/O设备等

(8)其他信息

三、进程标识

每一个进程都有一个非负整型的表示的唯一的进程ID,常将其用来作其他标识符的一部分保证其唯一性,虽然是唯一的,但是进程ID是可复用的,当一个进程终止后,其进程ID就成为复用的候选者,ID为0的进程通常是调度进程,也被称为交换进程和系统进程,ID为1的进程通常是 init 进程,在某些 UNIX 的虚拟存储器中,进程ID2是页面守护进程,该进程是负责支持虚拟存储系统的。 

除了进程ID,进程还有一些其他标识符,来看一下下列函数返回的标识符

getpid

调用进程的进程ID

getppid

调用进程的父进程ID

getuid

调用进程的实际用户ID

geteuid

调用进程的有效用户ID

getgid

调用进程的实际组ID

getegid

调用进程的有效组ID

 四、进程三种基本状态

运行态:占有CPU,在CPU上运行

就绪态:已经具备运行条件,但是没有空闲CPU,暂时不能运行

阻塞态:因等待某一件事而暂时不能运行

另外两种状态:

创建态:进程正在被创建,操作系统为进程分配资源、初始化PCB

终止态:进程正在从系统中撤销,操作系统会回收进程拥有的资源、撤销PCB

五、查看进程(ps命令)

常见的选项:

a:显示当前终端下的所有进程信息,包括其他用户的进程。

u:使用以用户为主的格式输出进程信息。

x:显示当前用户在所有终端下的进程。

-e:显示系统内的所有进程信息。

-l:使用长(long)格式显示进程信息。

-f:使用完整的(full)格式显示进程信息。

需要注意的是,有一部分选项是不带“-”前缀的(添加“-”前缀后含义可能会有出入)。习惯上将上述选项组合在一起使用,如,“ps aux”或“ps -elf”

六、CPU调度算法 (在就绪序列中怎么挑选进程让CPU执行)

1. 基本概念

  • 周转时间: 从开始申请执行任务,到执行任务完成
  • 响应时间: 从开始申请执行任务到开始执行任务

2. 调度算法

  1. 先来先服务调度算法FCFS:按作业或者进程到达的先后顺序依次调度;(平均周转时间可能会很长 )
  2. 短作业优先调度算法SJF:算法从就绪队列中选择估计时间最短的作业进行处理,直到得出结果或者无法继续执行(周转时间短,但是响应时间长 )
  3. 高相应比算法HRN:响应比=(等待时间+要求服务时间)/要求服务时间;
  4. 时间片轮转调度RR:按到达的先后对进程放入队列中,然后给队首进程分配CPU时间片,时间片用完之后计时器发出中断,暂停当前进程并将其放到队列尾部,循环 ;(响应时间可以得到保证)
  5. 多级反馈队列调度算法:目前公认较好的调度算法;设置多个就绪队列并为每个队列设置不同的优先级,第一个队列优先级最高,其余依次递减。优先级越高的队列分配的时间片越短,进程到达之后按FCFS放入第一个队列,如果调度执行后没有完成,那么放到第二个队列尾部等待调度,如果第二次调度仍然没有完成,放入第三队列尾部…。只有当前一个队列为空的时候才会去调度下一个队列的进程。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值