我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信

我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信_第1张图片

 一、进程的概念我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信_第2张图片

如何区分这三个QQ进程?》除了名称之外,OS使用pid来唯一标识进程

我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信_第3张图片 

二、进程的组成 

我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信_第4张图片 

我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信_第5张图片 

PCB当中存储的都是OS在对进程进行管理时候的有用信息

我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信_第6张图片 PCB是给OS使用的一个数据结构,而程序段和数据段是给进程自己使用的,PCB是进程存在的唯一标识

我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信_第7张图片

PCB存储在OS内核当中 

三、进程的特征(理解)

我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信_第8张图片

我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信_第9张图片

 四、进程的状态 

我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信_第10张图片 

我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信_第11张图片 阻塞态是进程主动让出CPU

我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信_第12张图片 

 阻塞态不能直接转化为运行态,因为他还缺少其他的运行资源

就绪态也不能直接转化为阻塞态,因为这需要进程主动让出CPU,而就绪态都没有CPU,怎么主动让出?

我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信_第13张图片 进程的组织方式:把进程按照不同的状态挂在不同的链表下

我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信_第14张图片 

我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信_第15张图片 

就绪态》运行态:进程被调度

运行态》阻塞态:进程等待IO等资源主动让出CPU

阻塞态》就绪态:IO处理完毕,等待的事件完成,由OS将其置为就绪态(被动)

运行态》就绪态:进程时间片结束,或者被其他高优先级的进程抢占

五、进程的切换

我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信_第16张图片 如何确保进程调度过程不被打断

我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信_第17张图片

原语是一种特殊的内核程序,本质就是关中断,从而不受外界的影响

我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信_第18张图片 

进程控制(状态转换)过程需要一气呵成 

我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信_第19张图片

关中断特权指令 

执行完开中断之后,CPU会发现有之前的中断信号没有处理,就会再次去处理

以下内容理解为主:

我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信_第20张图片 

作业指的是此时还在磁盘当中、没有放入内存的程序

我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信_第21张图片

开机之后其他所有进程都是装入进程launch来启动的,系统中的0号1号进程是最祖先的进程,其他的进程都是他的子进程 

我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信_第22张图片

OS通过进程的PCB来保存和恢复它之前的运行环境

进程运行环境/进程上下文(context)就是进程运行过程中CPU寄存器当中保留的中间结果

我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信_第23张图片 

六、进程间通信的方式: 

我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信_第24张图片 

我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信_第25张图片 

我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信_第26张图片 

我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信_第27张图片 通过加一个段表/页表项就可以实现了

我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信_第28张图片 

我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信_第29张图片 

我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信_第30张图片  

进程Q的消息队列位于进程Q的PCB当中,它表达的是其他进程发给Q进程,需要被Q进程接受的消息

执行发送原语send之后,OS的内核接收到这条消息,并把这条消息挂到进程Q的消息队列当中去,再强调一遍:消息队列位于内核当中

我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信_第31张图片

接收的时候就遍历Q在内核当中PCB中的消息,判断是P发送的,就使用receive接收

这种直接通信的方式:发送和接收都是指名道姓地进行的

我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信_第32张图片

 

进程A通过系统调用向OS申请信箱A1和A2

间接通信方式并没有指名道姓要发给哪个进程,而是直接丢到A所申请的信箱里面去,到时候Q就指明从A信箱当中取消息就好了

我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信_第33张图片

管道通信就是循环队列,固定大小空间,先来先服务,数据流是单向的,只能从P流向Q,是一种半双工的通信方式,而共享存储支持随机存取

我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信_第34张图片

我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信_第35张图片 

我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信_第36张图片 

你可能感兴趣的:(c语言,考研,windows)