1. 程序并发执行的特征:间断性,失去封闭性,不可再现性。为使程序可以独立运行,需要配置进程控制块(PCB),由程序段,数据段,PCB构成进程实体。
2. 进程:进程实体的一次执行过程。
动态性是进程的最基本特征。
并发性:多个进程实体同存于内存中,能在一段时间内同时运行。
独立性:进程实体是一个能独立运行,独立分配资源,独立接受调度的基本单位。
异步性:进程按照独立的,不可预知的速度向前推进。
3. 进程的三种基本状态:就绪状态,执行状态,阻塞状态
就绪状态:已经分配到除CPU以外所有必要资源,只要获得CPU,便可立即执行
执行状态:获得CPU,正在执行
阻塞状态:正在执行的进程由于发生某件事而暂时无法继续执行,也称等待或者封锁
就绪--------(进程调度)-------执行 执行---------(时间片用完)------就绪
执行----------(I/O请求)------阻塞 阻塞-----------(I/O完成)---------就绪
4. 创建状态和终止状态
创建状态:为新进程创建一个PCB,把该进程转入就绪状态并插入就绪队列之中。
终止状态:PCB清零,PCB空间返回给系统
5. 进程控制块组织方式:链接方式和索引方式
(1)进程标识符用于唯一的标识一个进程
内部标识符:操作系统为进程赋予一个唯一的数字标识符,通常是一个进程序号
外部标识符:创建者提供,用户在访问该进程时使用。
(2)处理机状态通用寄存器 指令计数器 程序状态字 用户栈指针
(3)进程调度信息 进程状态 进程优先级 进程调度所需的其他信息
(4)进程控制信息程序和数据的地址进程同步和通信机制资源清单 链接指针
6. 进程控制一般由原语来实现,原语是由若干条指令组成,用于完成一定功能的一个过程。是一个不可分割的单位,不允许被中断。
引起创建进程的事件:用户登录,作业调度,提供服务,应用请求。
7. 进程的创建
(1) 申请空白的PCB
(2) 为新进程分配资源
(3) 初始化进程控制块
(4) 将新进程插入到就绪队列
8. 进程终止
引起进程终止的条件:正常结束 异常结束(错误,超时) 外界干预(父进程终止)
(1) 根据进程标识符,检索出该进程的PCB,从中读取该进程的状态
(2) 若进程处于执行状态,终止执行,调度标志置为真
(3) 若有子孙进程,所有的子孙进程终止
(4) 终止进程所拥有的全部资源
(5) 将被终止进程从所在队列中移出
9. 进入阻塞状态
(1) 请求系统服务,系统没有立即执行
(2) 启动某种操作,例如启动了I/O设备
(3) 新数据尚未到达
(4) 无新工作可做
10. 进程同步对进程执行顺序上协调,使进程能有效的共享资源和相互合作
两种形式的制约关系:间接相互制约关系(非合作竞争)直接相互制约关系(合作的)
临界资源:一段时间内只允许一个进程访问的资源
访问临界资源的代码称为临界区
进入前检查的代码称为进入区
退出后增加的代码称为退出区
除上述区域之前的区称为剩余区
11. 同步机制遵循的原则
(1) 空闲让进
(2) 忙则等待
(3) 有限等待
(4) 让权等待当进程不能进入自己的临界区时,应立即释放处理机
12.P、V操作
v 操作系统利用信号量实现对进程和资源的控制和管理。信号量的值仅由P、V操作来改。P、V操作是能够实现对临界区管理要求的两条原语,P操作起到了限制一次只有一个进程进入临界区的作用,而V操作将唤醒位于阻塞队列中的头一个进程,使其可以进入临界区,保证了进程在临界区内逗留有限时间。
v P原语操作的主要动作是:
- Semaphore减1;
- 若Semaphore 减1后仍>=0,则进程继续执行。
- 若Semaphore 减1后<0,则进程被阻塞在与该信号相对应的队列中,然后转进程调度。
v V原语操作的主要动作是:
- Semaphore加1;
- 若Semaphore 加1后仍>0,则进程继续执行。
- 若Semaphore 加1后<=0,则从信号的等待队列中唤醒一等待进程,然后再返回原进程继续执行或转进程调度。
12. 经典进程同步问题 “生产者—消资者问题”、“读者—写者问题”、“哲学家进餐问题”
13. 进程通信的类型
(1) 共享存储器系统
(1) 共享数据结构 低效的,只能传递相对少量的数据
(2) 共享存储区 可以传输大量的数据
(3) 消息传递系统 进程间的数据交换是以格式化的消息为单位的可大量的传输数据,而且隐藏了通信的实现细节
(4) 管道通信 连接一个读进程和一个写进程以实现他们之间通信的一个共享文件能够传输大量的数据
14. 线程 线程是调度和分派的基本单位 进程作为资源拥有的基本单位
线程不拥有系统资源,但是它可以访问其隶属进程的资源,线程的切换只需保存和设置少量寄存器内容,不涉及存储器管理方面的操作
15. 线程的属性
(1) 轻型实体线程中的实体基本不拥有系统资源
(2) 独立调度和分派的基本单位
(3) 可并发执行
(4) 共享进程资源
16. 多线程中的进程
是系统资源分配的单位
可包括多个线程
进程不是一个可执行的实体,线程才是独立运行的基本单位。
17. 线程间的同步和通信
(1) 互斥锁:用于线程间对资源的互斥访问,适用于高频度使用的数据和程序
(2) 条件变量:条件变量通常与互斥锁一起使用,创建一个互斥锁便联系着一个条件变量。单纯的互斥锁用于短期锁定,条件变量用于线程的长期等待。
18. 线程的实现方式‘
(1) 内核支持线程系统调用进入内核,程序处理完成,在内核的支持下运行
(2) 用户级线程:线程的创建撤销不需要系统调用实现。切换的速度快
对于设置了用户级线程的系统,其调度仍是以进程为单位的。
用户级线程的实现与操作系统平台无关