课程内容提要
3:知识点考点详解
3.1操作系统概述
考点1:操作系统的功能
[操作系统的功能]
管理系统的硬件、软件、数据资源
控制程序运行
人机之间的接口.
应用软件与硬件之间的接口
[操作系统的任务]
进程管理
存储管理
文件管理
作业管理
设备管理
考点2:特殊的操作系统.
3.2:进程管理
考点1:进程与线程的概念
1、进程是程序在-个数据集合上运行的过程,它是系统进行资源分配和调度的-一个独立单位。它
由程序块、进程控制块(PCB)和数据块三部分组成。
2、PCB: PCB是进程存在的唯一标志。内容包含进程标识符、状态、位置信息、控制信息、队列
指针(链接同一状态的进程)、优先级、 现场保护区等。
3、进程与程序的区别:进程是程序的- -次执行过程,没有程序就没有进程。
程序是一个静态的概念,而进程是一个动态的概念, 它由创建而产生,完成任务后因撤销而消亡:进程是系统进行资源分配和调度的独立单位,而程序不是。
4、进程的2个基本属性:可拥有资源的独立单位;可独立调度和分配资源的基本单位。
5、同一个进程当中的各个线程,可以共享该进程的各种资源,如内存地址空间、代码、数据、文
件等,线程之间的通信与交流非常方便。
对于同一个进程当中的各个线程来说,它们可以共享该进程的大部分资源。每个线程都有自己独立的CPU运行上下文和栈,这是不能共享的。
考点2:进程的状态
[三态模型]
运行:当一个进程在CPU.上运行时。
(单处理机处于运行态的进程只有一个)
就绪:一个进程获得了除CPU外的一切所需资源,- 旦得到处理机即可运行。
阻塞:阻塞也称等待或睡眠状态,一个进程正在等待某一事件发生(例如请求I/O、等待I/O完成
等)而暂时停止运行,此时即使把CPU分配给进程也无法运行,故称进程处于阻塞状态。
思考:
"等待某个事件发生"和"等待事件发生",二者有什么区别?
【五态模型】
挂起原因:
(1)进程过多,主存资源不足,此时必须将某些进程挂起,放到磁盘对换区,暂时不参与调度,以
平衡系统负载;
(2)系统出现故障,或者是用户调试程序,也可能需要将进程挂起检查问题。
考点3:信号量与PV操作
[进程的同步与互斥]
临界资源:诸进程间需要互斥方式对其进行共享的资源。
(进程中访问临界资源的那段代码称为临界区)
注:临界资源同一时刻只允许-一个进程使用, 共享资源同-时刻允许多个进程同时使用。
[PV操作]
信号量:是一种特殊的变量。
信号量可以表示资源数量;
信号量为负数时还可以表示排队进程数。
P是荷兰语的Passeren表示锁定资源资源数-1,
V是荷兰语的Verhoog表示释放资源资源数+1.
P操作:
S=S-1,申请并锁定资源;
S<0,判断资源是否足够,如果不够则将进程送到阻塞队列,如果足够则执行该进程后续代码。
V操作:
S=S+1,释放资源并解锁资源;
S<=0,判断是否有进程排队,如果有则唤醒排队进程。思考:假设用S表示打印机资源,现有2台
打印机,3个进程要互斥使用打印机。模拟整个PV过程,信号量S的初值为多少?取值范围是多
少?
[PV操作与互斥模型]
多个进程共享一台打印机问题(互斥模型) :
P(S);
使用打印机;
V(S);
后续代码;
斥信号量S的初值为1。
注:
互斥信号量S的初值一般为非0。
访问权是一类特殊的互斥资源, 同一时刻仅允许1个人用,则信号量初值为1。
分析技巧:互斥模型中同-信号量的PV操作-般成对出现在同一个进程内。
[PV操作与同步模型]
单缓冲区生产者、消费者问题(同步模型) :
生产者:
生产-一个产品;
P (S1) ;
送产品到缓冲区;
V (S2) ;
消费者:
P (S2) ;
从缓冲区取产品;
V (S1) ;
消费产品:
S1初值为1,S2初值为0。注: 同步信号S的初值一般为0。
分析技巧:同步模型中同一信号的PV操作一般成对出现在 不同的进程内。
考点4:前趋图与PV操作
A、绞肉 B、切葱末 C、切姜末
D、搅拌 E、包饺子
Sa=0; Sb=0; Sc=0; Sd=0;
技巧:
并发图中某活动有后继就有v操作释放资源,有前趋就有p操作消耗资源。
实现并发的信号量初值一般为0。 有几个箭头就有几个信号量。
考点5、死锁问题
所谓死锁,是指两个以上的进程互相都要求对方已B经占有的资源导教无法继续运行下去的现象,
进程管理是操作系统的核心,但如果设计不当,就会出现死锁的问题。如果进程在等待一件不可能
发生的事,则进程就死锁了。而如果多个进程产生死锁,就会造成系统死锁。
【死锁资源数计算】
系统不可能发生死锁的最小资源数(w-1)*m+1<=n
注:m表示进程总数,w表示每个进程需要的资源数,n表示系统中该类资源的总数。
例:系统有5个进程:A、B、C、D、E。这5个进程都需要4个系统资源。如果系统至少有多少个资
源,则不可能发生死锁。
考点6、进程资源图
分析思路:
先分析资源分配情况,列出剩余可用资源:此时已分配1个R1给进程P,剩余1个R1可用。
再判断申请后进程是否能够执行: P进程申请1个R1,系统有1个R1可用,P进程可成功执行,执行后
释放占用的2个R1。
思考:什么样的结点会阻塞?什么样的结点不会阻塞?
阻塞结点:当前资源不足以支撑执行的进程结点。
非阻塞结点:当前资源足够支撑执行的进程结点。
可化简:非阻塞结点执行后会释放所占据的资源,此时图示可化简,可以重新判断资源分配情况。
死锁:无论怎样调整分配顺序,都无法执行完所有进程的图示情况,就是死锁情况。
[不可化简的图示-定死锁的,目前软设考试中可化简的图示通常是非死锁的。]