1、前驱图
可以描述进程之间执行的前后关系。在前驱图中不能出现循环。
2.程序的并发执行
间断性:执行过程中等待资源的释放
失去封闭性:多个程序共享资源
不可再现性:可能对同义变量进行处理
3.要实现并发执行同时保证程序的执行正确性,为一个程序配置一个进程控制块。PCB:程序段,数据段,pcb
4.在操作系统中执行一个程序,其实windows下用户执行一般普通程序是由explorer.exe调用CreateProcess来完成:
操作系统把这个过程分成以下步骤来完成:
1.打开将要在该进程中执行的映像文件。
2.创建Windows执行体进程对象。
3.创建初始线程(栈、堆执行环境初始化及执行线程体对象)。
4.通知Windows子系统新进程创建了(子系统是操作系统的一部分它是一个协助操作系统内核管理用户态/客户方的一个子系统具体的进程为Csrss.exe)。
5.开始执行初始线程(如果创建时候指定了线程的CREATE_SUSPENDED状态则线程暂时挂起不执行)。
6.在新进程和线程环境中完成地址空间的初始化(比如加载必须的DLL和库),然后开始到进程入口执行。
到这里操作系统完成一个新进程的创建过程。
5.进程的状态
就绪,执行,阻塞
6.操作系统将处于各种不同状态的进程,排列成一个或者多个队列进行管理
7.进程控制块的组织方式
1. 链接方式,将相同状态的进程链接成一个队列
2.索引方式:将不同状态的进程以及其位置放在一个索引表中,索引表放在一个专用单元中。
8.进程的控制(如何建立子进程,在java中使用Runtime执行)
9.进程的同步
两种形式的制约关系:间接相互制约(资源共享) 直接相互制约(进程合作)
10.同步机制遵循的规则
空闲让进 忙则等待 有限等待 让权等待
11.进程同步机制
信号量机制:定义一些读取临界值的原子操作
管道机制:
12.进程间通信
共享存储器系统
消息传递系统:
直接通信:命令方式
间接通信:信箱方式
管道通信
13.线程间同步
互斥锁
条件变量
信号量机制