2.1 前驱图:一个有向无循环图DAG,描述程序执行先后顺序。
程序顺序执行的特征:顺序性,封闭性,可再现性。
程序并发执行的特征:间断性,失去封闭性,不可再现性。
2.2 进程由程序段,相关的数据段和进程控制块(PCB)组成,是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
进程与程序
1)动态性 。进程是进程实体的执行过程是动态的,程 是一组有序指令的集合,是静态的。
2)并发性。进程可以并发执行,程序(没有建立PCB)不能。
3)独立性。进程实体是一个能独立运行,独立获取资源和独立接收调度的基本单位,没有建立PCB的程序不能。
4)异步性。进程按异步方式运行。
进程的三种基本状态:就绪状态,执行状态,阻塞状态。
就绪----(进程调度)—>执行----(I/O请求)—>阻塞—(I/O完成)–>就绪
执行----(时间片完)–>就绪
为满足PCB对数据及操作的完整性要求以及增强管理的灵活性,引入创建状态和终止状态。
创建----(许可)–>就绪
执行----(释放)—>终止
挂起操作(活动->静止)与激活操作(静止->活动)
引入挂起的原因
终端用户的需求;父进程的请求;负荷调节的需要;操作系统的需要。
进程信息表:在计算机系统中对每个资源和每个进程都设置了一个数据结构。
PCB的作用的是一个能在多道程序环境下不能独立运行的程序(含数据)成为一个能独立运行的基本单位,一个能与其他进程并发执行的进程。
1)作为独立运行基本单位的标志;2)能实现间断性运行方式;3)提供进程管理所需要的信息4)提供进程调度所需要的信息5)实现与其他进程的同步与通信。
PCB中的信息:
a)进程标识符,唯一地标示一个进程。
b)处理机信息(处理机的上下文):通用寄存器,指令计数器,程序状态在,用户栈指针。
c)进程调度信息:进程状态,进程优先级,进程调度所需的其他信息,事件。
d)进程控制信息:程序和数据的地址,进程同步和通信机制,资源清单,链接指针。
PCB的组织方式
线性方式,链接方式,索引方式
2.3 处理机的执行状态分为两种:系统态和用户态。
系统态(管态):能执行一切指令。
用户态(目态):只能执行特定的指定,一般情况下,应用程序只能在用户态运行
OS的支撑功能:中断处理,时钟管理,原语操作。
原语:由若干条指令组成,用于完成一定功能的一个过程。
原子操作:一个操作中的所用动作要么全做要么全不做,是一个不可分割的基本单位。
进程图:描述进程间关系的一颗有向图。
引起进程创建的事件:用户登录,作业调度,提供服务,应用请求。
进程的创建:1)申请空白的PCB;2)为新进程分配其运行所需的资源;3)初始话PCB;4)将进程插入就绪队列。
引起进程终止的事件:
正常结束:进程任务完成。
异常结束:越界错,保护错,非法指令,特权指令错,运行超时,等待超时,算术运算错,I/O故障。
外界干预:操作员或操作系统干预,父进程请求,父进程终止。
引起进程阻塞和唤醒的事件:
1)向系统请求共享资源失败;
2)等待某种操作完成;
3)新数据未到达;
4)等待新任务到达。
发生了上述事件进程通过阻塞原语block将自己阻塞,当被阻塞进程期待的事件发生,进程钓鱼台唤醒原语wakeup,将其唤醒。
挂起原语;suspend 激活原语:active
2.4 间接相互制约关系(互斥)
直接相互制约关系(同步)
临界资源:一次仅允许一个进程使用的资源。
临界区:访问临界资源的那段代码。
同步机制遵循的规则:
空闲等待,忙则等待,有限等待,让权等待。
实现互斥:关中断,Test-and-Set指令,Swap指令
1)整型信号量:一个用于表示资源数目的整形量S。
wait(S) <=>S-- signal(S)<=>S++
2)记录型信号量:采用记录型的数据结构,除了代表资源数目的value还增加了一个进程链表指针list。
3)AND型信号量 。将资源一次性全给进程,使用完一起释放,要么全给要么全不给
4)信号量集
信号量的应用:实现进程互斥,实现前驱关系。
管程:定义了一个数据结构和能为并发进程所执行的一组操作,这组操作能同步进程和改变管程中的数据。
特性:模块化,抽象数据类型,信息掩蔽。
管程与进程的不同:
(1)两者都定义了数据结构,进程定义的是私有数据结构PCB,管程定义的是共有数据结构PCB;
(2)都存在对数据结构的操作,进程是顺序程序执行操作,管程师同步操作和同步化操作;
(3)设置进程的目的是实现系统的并发性,管程是解决共享资源的互斥使用问题;
(4)进程主动工作方式,管程被动工作方式。
(5)进程之间能并发执行;
(6)进程具有动态性,管程只是一个资源管理模块。
x.wait 表示调用管程的进程因x条件被阻塞或挂起,
x.signal 表示因x条件发生变化,重新启动一个阻塞或挂起的进程,如果没有则继续执行原进程
2.5 生产者-消费者问题
哲学家进餐问题
读者-写者问题
2.6 进程通信:进程之间的信息交换。
进程通信的类型:
1)共享存储器系统;
基于共享数据结构的通信方式,基于共享存储区的通信方式。
2)管道通信系统;
3)消息传递系统;
直接通信方式(直接消息传递系统· ),间接通信方式(信箱通信)。
4)客户机-服务器系统
套接字,远程过程调用,远程方法调用。
2.7 引入线程的目的:减少程序在并发执行时所付出的时空开销。
线程:能独立运行的基本单位,拥有资源的基本单位。
2.8 线程的实现方式
内核支持线程,用户级线程,组合方式(多对一模型,一对一模型,多对多模型)
线程与进程的区别:
进程是资源分配的最小单位,线程是程序执行的最小单位;
进程有自己独立的地址空间,线程是共享进程中的数据使用相同的地址空间。因此,创建一个线程的开销比进程的小很多;
线程之间通信更方便,共享内存变量;
线程并发性高,独立性第,系统开销小,支持多处理机 系统
第二章 进程的描述与控制
最新推荐文章于 2022-02-09 21:16:00 发布