操作系统复习笔记--进程相关知识点

1、进程的定义
进程是指用户提交给操作系统运行的最小单位。进程是操作系统进行资源调度和分配的一个独立单元。
线程是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位,一个进行可以有多个线程,多个线程可以并发执行。

2、进程的特点
动态性:进程的实质是进程实体的执行过程。
并发性:在同一段时间内,多个进程同时执行
独立性:是进程实体是一个能独立运行,独立获取资源和独立接收调度的基本单位
异步性:多个进程按各自的独立的,以不可预知的速度向前执行。

3、进程创建的过程

首先申请一个空白PCB(进程控制块)
然后为该进程分配运行时所必要的资源
随后初始化PCB
最后把该进程转入就绪状态并插入就绪队列之中

若系统没有足够的内存,进程无法装入其中,此时创建工作尚未完成,进程不能被调度运行,于是把此时进程所处的状态称之为创建状态

4、进程的状态

创建状态、就绪状态、阻塞状态、执行状态、终止状态。

就绪状态:以获得除CPU以外程序运行需要的资源。(一旦获取到CPU资源,便准入执行状态进行执行)
阻塞状态:没有获取到程序运行需要的资源。(一旦获取到需要的资源,便转入就绪状态,等系统调度执行)

几种状态的转换: 创建状态—> 就绪状态----->执行状态----->终止状态 执行状态—>阻塞状态—>就绪状态

5、并发和并行
并发:在同一段时间内,多个程序同时执行,并发在宏观上虽然是同时执行的吗,但是在微观上其实是交替执行的。
并行:在同一时刻,多个程序同时执行。

6、PCB(进程控制块)
PCB是系统用来描述进程基本情况和活动的过程,进而控制和管理进程。
进程实体由代码段,数据段和PCB三部分构成。
进程创建的实质是创建进程实体的PCB,进程撤销的实质是撤销进程的PCB。

7、进程的内存布局
代码段:用来存放代码及常量
数据段:用来存放全局变量和静态变量
堆段:运行时动态为变量分配的内存
栈段:运行时函数调用占用的内存,每个当前调用的函数占据一个栈帧,其中保存了局部变量,参数,返回地址等

8、进程的调度算法
先来先服务调度算法:系统按照进程在就绪队列的先后次序进行调度

短进程优先算法:根据进程执行时间的长短进行调度,执行时间越短,调度优先级越高。(需要预知进程执行时间,对执行长的进程不利, 没法跟用户进行交互,没有考虑进程的紧急程度)

时间片轮转算法:为所有进程分配一个相同的时间片,各进程轮转执行一个时间片的时间。(频繁进行进程切换,开销大)

优先级调算法:为进程设置一个优先级,优先级高先执行(静态优先级,优先级在进程创建时确定,动态优先级,优先级随着进程的执行和等待时间的增加而改变)

多队列调度算法:将进程就绪队列从一个拆分为多个,不同的就绪队列采用不同的算法。

多级反馈队列算法:
设置多个就绪队列,为每个就就绪队列赋予不同的优先级,第一个队列优先级最高,第二个次之,其余队列的优先级逐个降低。
在优先级愈高的队列中,其时间片就愈小,第二个队列时间片的时间片比第一个长一倍,依次类推
每个就绪队列按照FCFS算法进行调度,如果在进程在时间片内执行完则终止,否则放回优先级比当前队列优先级低一级的就绪队列的队尾等待执行。
就绪队列之间采用优先级算法进行调度,即优先级越高的队列越先执行。

9、进程的挂起
挂起:挂起状态是进程从内存调度到外存中的一种状态,若在就绪态时,从内存调出到外存中,就是就绪挂起态,若在阻塞态时,从内存调出到外存中,就转换成了阻塞挂起状态。(不释放CPU,可能释放内存,放在外存)

10、进程间的通信
管道通信
无名管道:
命名管道:即FIFO,它是一种文件类型,
共享内存 :两个或者多个进程共享一个给定的存储区。
信号量:是一个计数器,用于实现进程间的互斥和同步,而不是用于存储进程间的通信数据。
socket:一般的进程间的通信机制,可用于不同机器之间的进程间的通信。
RPC
消息队列

猜你喜欢

转载自blog.csdn.net/weixin_43352448/article/details/87895219