操作系统重点:
1.计算机系统由硬件(子)系统和软件(子)系统组成。
2.计算机是一种进行计算或者控制那些可以表示为数字或者逻辑形式的操作的设备。
3.软件可分为系统软件、支撑软件和应用软件3类。
4.操作系统:是计算机系统中的系统软件,是能有效地组织和管理计算机系统中的硬件和软件资源,合理地组织计算机工作流程,控制程序的执行,并向用户提供各种服务功能,使得用户能够方便地使用计算机,使整个计算机系统能高效运行的一组程序模块的集合。
操作系统性能:有效;合理;方便。
操作系统的目标:(1)方便性;(2)有效性;(3)可扩充性;(4)开放性
5.用户需要表现在:①人机交互②共享主机③便于用户上机。
6.实时系统与分时系统的比较:
①多路性:系统按分时系统原则为多个终端用户服务,而对实时系统,其多路性主要表现在经常对多路的现场信息进行采集以及对多个对象或多个执行机构进行控制。
②独立性:每个终端用户在向实时系统提出服务请求时,彼此独立地操作,互不干扰,而在实时系统中信息的采集和对象的控制,也就是彼此互不干扰。
③及时性:分时系统以人们所能接受的等待时间来确定,而实时控制系统则是以控制对象所要求的开始截止时间或完成截止时间来确定的,一般为秒级、百毫秒级直至毫秒级。
④交互性:实时信息处理系统是人与系统的交互,仅限于访问系统中某些特定的专用服务程序,分时系统能向终端用户提供数据处理、资源共享等服务。
⑤可靠性:实时系统要求系统高度可靠。
7.计算机网络的类型:①按网络拓扑结构分类:星形网络,树形网络,总线形网络,环形网络,网状形网络②按网络地理范围分类:广域网(WAN),局域网(LAN)。
8.网络操作系统的模式:①客户机/服务器模式,服务器,客户机;②对等模式。
网络操作系统的功能:①网络通信②资源管理③网络服务④网络管理⑤互操作能力。
9.处理分布的实质是资源、功能、任务和控制都是分布的。
10.在分布式系统中,如果每个处理单元都是计算机,则可称为分布式计算机系统;如果处理单元只是处理机和局部存储器,则只能称为分布式(处理)系统。
11.操作系统的主要功能针对以下4类资源进行有效的管理:①处理机管理②存储器管理③文件管理④I/O设备管理。
12.把操作系统看作由若干个可以同时独立运行的程序和一个对这些程序进行协调的核心所组成,这些同时运行的程序称为进程。
13.操作系统是一个系统软件,因而这种接口是软件接口。
14.用户可以通过命令方式,系统调用方式(对程序员提供唯一接口)来使用计算机。
15.用户接口:①命令接口②程序接口③图形接口( Windows)。
16.微内核结构的操作系统具有以下特点:①足够小的内核②基于客户机/服务器模式③应用机制和策略分离的技术④采用面向对象技术。
17.一个微内核思想的略微变体是将进程划分为两类:①服务器,每个服务器提供某种服务;②客户机,使用这些服务。这个模式就是所谓的客户机/服务器模式。
18.操作系统作为一个程序要在处理机上执行。如果一个计算机系统只有一个处理机,则称为单机系统;如果有多个系统,则称为多处理系统。
19.用户可见寄存器一般包括数据寄存器、地址寄存器以及条件码寄存器。
数据寄存器有时又称通用寄存器,主要用于各种算数逻辑指令和访存指令。
地址寄存器用于存储数据及指令的物理地址、线性地址或者有效地址,以及某种特定方式的寻址。
条件码寄存器报错处理机操作结果的各种标记位,条件码可以被隐式访问,但不能通过显示的方式修改。
20.最常见的控制和状态寄存器包括:程序计数器(PC),记录了将要取出的指令的地址;指令寄存器(IR),包含了最近取出的指令;程序状态字(PSW),记录了处理机地运行模式信息等,有的处理机还包含条件码。
21.指令大致分5类:访问存储指令,I/O指令,算数逻辑指令,控制转移指令,处理机控制指令。
22.为了提高设备利用率,通常使用多个缓冲区。
23.多缓冲区(Cache)技术:一级Cache的性能对系统的性能提升作用很大。
24.从比较通用的观点来看,中断依据被激发的手段可以分成强迫性中断和自愿性中断。
强迫性中断事件是正在运行的程序所不期望发生的,它们出现的随机性比较强。
强迫性中断包括:时钟中断、I/O中断、控制台中断、硬件故障以及程序性中断。
自愿性中断是正在运行的程序故意安排执行的,通常由访管指令引起,目的是要求操作系统提供系统服务。这一类中断发生地时间以及位置具有确定性。
25.中断依据中断事件发生和处理是否时异步的可以分为异步中断和同步中断,异步中断简称中断,而同步中断一般称为异常。异步中断的发生一般是由对当前程序而言的外部事件激发的,属于外部性质。
26.依据中断源的类型将中断分为硬件中断和软件中断。
27.资源分配和独立运行的基本单位是进程。
28.在采用多道程序设计的计算机系统中,允许多个程序同时进入一个计算机系统的内存并运行,这种让多个程序同时进入计算机计算的方法称为多道程序设计。
29.进程:是具有独立功能的可并发执行的程序在一个数据集合上的运行过程,是系统进行资源分配和调度的独立单位,或者说,“进程”是进程实体的运行过程。
30.进程5个特征:①动态性②并发性③独立性④异步性⑤结构特征。
31.三态:
(1)就绪—>执行:分配处理机。
(2)执行—>阻塞:因出现某种事情而无法执行。
(3)执行—>就绪:①时间片用完。②优先级高的进程抢占了优先级低的进程的处理机。
(4)阻塞—>就绪:等待的时间已
经发生。
32.五态:
33.进程控制块PCB:作用:是使一个在多道程序环境下不能独立运行的程序成为一个能独立运行的基本单位,一个能与其他进程并发执行的进程,也就是说,操作系统是根据PCB来对并发执行的进程进行控制和管理的。在进程的整个生命期中,系统总是通过其PCB对进程进行控制。亦即,系统是根据进程的PCB而感知到该进程的存在,进程控制块PCB是进程存在的唯一标志。
PCB应常驻内存。
34.进程管理:①进程的建立和撤销②进程状态的转换③进程调度④控制进程的并发执行。
35.资源管理中的基本操作:一般来说,这些操作与硬件的关系比较密切。例如,设备驱动程序、磁盘读写程序、时钟处理程序等,也都属于内核。
内核在执行上述操作时,往往是通过执行各种原语操作来实现的,它是机器指令的延伸,是由若干条机器指令构成用以完成特定功能的一段程序。
36.原子操作:一个操作中的所有动作,要么全做,要么全不做。换言之,原子操作是一个不可分割的操作。
37.进程的创建过程:①申请空白进程控制块,索取一空白PCB。②为新进程分配资源③初始化进程控制块④为新进程插入就绪队列。
38.一个程序从提交开始直到完成,往往要经历下述三级调度:
(1)高级调度,又称作业调度,它决定将哪些在外存上处于后备状态的作业调入主机内存,准备执行。有时把它称为接纳调度。
(2)低级调度,又称进程调度,它决定就绪队列中哪个进程将获得处理机,并实际执行将处理机分配给该进程的操作。执行分配处理器的程序称为分派程序。
(3)中级调度。
39.(1)先进先出算法(FIFO);(P67)
(2)最短处理机运行期优先调度算法;
(3)最高响应比优先调度算法;(P68)
(4)优先级调度算法;
(5)时间片轮转调度算法(RR):通常用在分时系统,它按照先进先出原则轮流地调度就绪队列中的进程。在实现时,它利用一个定时时钟,使之定时的地发出中断。时钟中断处理程序在设置新的时钟常量后,即转入进程调度程序,选择一个新的进程占用处理机。
时间片长短的确定遵循的原则:既要保证系统各个用户进程及时地得到响应,又不要由于时间片太短而增加调度的开销,降低系统的效率。
(6)前后台调度算法:用在批处理和分时相结合的系统中,。将分时用户程序放在前台,把批处理程序放在后台,系统对前台程序按照时间片轮转法进行调度,仅当前台无程序时,才把处理机分配给后台程序的进程。后台进程通常按先来先服务方式运行。
(7)多级反馈队列轮转算法。
40.线程是进程的一个实体,是被系统独立调度和分派的基本单位,线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器、一组寄存器和栈),但它可与同属一个进程的其它线程共享进程所拥有的全部资源。所以线程又叫清亮进程。
41.信号量机制(P91)。
42.生产者-消费者问题
(1)利用记录型信号量解决
semaphore mutex=1, empty=n,full=0;
item buffer[n];
int in=out=0;
void producer (int i)
{
while (1)
{
…
produce an item in nextp;
…
wait(empty)
wait(mutex);
buffer[in]=nextp;
in=(in+1) mod n;
signal(mutex);
signal(full);
}
}
void consumer(int j)
{
while (1)
{
…
wait (full);
wait (mutex);
nextc=buffer[out];
out=(out+1) mod n;
signal(mutex);
signal(empty);
…
consume the item in nextc;
…
}
}
main()
{
cobegin{
producer (1);
…
producer(n);
consumer (1);
…
consumer(m);
}
}
(2)利用AND信号量解决
semphore mutex1=1,mutex2=1,empty=n,full=0;
item buffer[n];
int in=out=0;
void producer(int i)
{
while (1)
{
…
produce an item in nextp;
…
Swait(empty,mutex1);
buffer[in]=nextp;
in=(in+1) mod n;
Ssignal(mutex1,full);
}
}
void consumer(int j)
{
while(1)
{
…
Swait(full,mutex2);
nextc=buffer[out];
out=(out+1) mod n;
Ssignal(mutex2,empty);
…
consume the item in nextc;
…
}
}
main()
{
cobegin{
producer (1);
…
producer (n);
consumer (1);
…
consumer (m) ;
}
}
43.读者-写者问题
(1)利用记录型信号量解决
semaphore rmutex=mutex=1;
int readcount=0;
void reader(int i)
{
while(1)
{
wait(rmutex);
lf (readcount
0)
wait(mutex);
readcount++;
signal(rmutex);
perform read operation;
wait(rmutex);
readcount–;
if (readcount
0)
signal(mutex);
signal (rmutex);
}
}
void writer(int j)
{
while(1)
{ …
wait(mutex);
perform write operation;
signal(mutex);
}…
}
main()
{
cobegin{
reader(1);
…
reader(n);
writer(1);
…
writer(m);
}
}
(2)利用信号量机制解决
#define RN…
Semaphore L=RN,mutex=1;
void reader(int i)
{
While(1)
{
Swait(L,1,1);
Swait(mutex,1,0);
perform read operation;
signal(L,1);
…
}
}
void writer(int j)
{
while (1)
{…
Swait (mutex,1,1,L,RN,0);
perform write operation;
Signal(mytex,1);
}
}
main()
{
cobegin {
reader(1);
…
reader(n);
writer(1);
…
writer(m)
}
}
44.管程:一个管程定义了一个数据结构和能为并发进程所执行的一组操作,这组操作能同步进程和改变管程中的数据。
管程组成:(1)局部于管程的共享变量说明(2)对该数据结构进行操作的一组过程(3)对局部于管程的数据设置初值的语句
45.信箱分3类:(1)私有信箱(2)公用信箱(3)共享信箱
46.死锁的发生与否取决于动态执行和应用程序的细节。
死锁是指在多道程序系统中,一组进程中的每一个进程均无限期地等待被该组进程中的另一个进程所占用有且永远不会释放的资源。出现这种现象则称系统处于死锁状态,简称死锁。
产生死锁原因:一是竞争资源;二是进程推进顺序不当;
47.永久性资源:可顺序重复使用的资源。
临时性资源:是指由一个进程产生,被另一个进程使用一短暂时间后便无用的资源,故也称之为消耗性资源。
48.解决死锁的办法:(1)预防死锁(2)避免死锁(3)检测死锁(4)解除死锁
49.银行家算法(P124)(P142 16题)
50.计算机系统中存储器一般分为主(内)存储器和辅(外)存储器两级。
51.存储管理要实现的目的是为用户提供方便、安全和充分大的存储空间。
52.地址转换:(1)逻辑地址(2)物理地址
53.内存的地址保护功能一般由硬件和软件配合实现。
对于不同结构的存储器,所采用的保护方法各不相同。
54.存储管理方式可以分为连续分配方式和离散分配方式两大类。
55.紧凑(开销大):为了解决内存碎片问题,可采用的一种方法是将内存中的所有进程进行移动,使它们相邻接。原来分散的多个小分区便拼接成一个大分区,从而就可以把程序装入运行。这种通过移动,把多个分散的小分区拼接成大分区的方法称为“紧凑”或“拼接”。
56.覆盖与交换是解决大程序与小内存矛盾的两种存储管理技术,它们实际上是对内存进行了逻辑扩充。(节省内存的空间)
57.覆盖是指同一内存区可以被不同的程序段重复使用。
把可以相互覆盖的程序段称为覆盖,而把可共享的内存区称为覆盖区 。把程序执行时并不要求同时装入内存的覆盖组成一组,称为覆盖段,并分配同一个内存区。覆盖段与覆盖区一一对应。
通常覆盖技术主要用于系统程序的内存管理。
58.交换技术被广泛地运用于早期的小型分时系统的存储管理中。其目的是:一方面解决内存容量不够大的矛盾,另一方面使各分时用户能保证合理的响应时间。
交换是系统根据需要把内存中暂时不运行的某个(或某些)进程部分或全部移到外存,以便腾出足够的内存空间,再把外存中的某个(或某些)已具备运行条件的程序移到相应的内存区,创建进程,并使其投入运行。
59.动态地址变换(P157)
60.块号=i×位示图中的字长+j i=块号/位示图中的字长 j=块号%位示图中的字长(P161)
61.尽管运行中的进程会因I/O而长期等待,或有的程序运行一次后,就不再需要运行了,然而它们都将继续占据宝贵的内存资源,此即所谓的驻留性。
62.程序在执行过程中,呈现局部性原理,表现在时间局部性和空间局部性。
63.虚拟存储器是指仅把程序的一部分装入内存便可运行程序的存储器系统。虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统。
64.页面置换算法(P169)(“抖动”)
65.操作系统为用户提供的使用计算机的接口通常分为命令接口和程序接口两个主要类型。(3种,图形)
66.操作系统编制了许多不同功能的子程序,这些子程序通常包含特权指令,用户程序可以调用这些子程序从而得到特权指令提供的功能,并且没有使用特权指令。由操作系统提供的这些子程序称为“系统功能调用”程序,或简称“系统调用”。
系统调用分类:(1)文件操作类(2)进程控制类(3)资源申请类(4)进程通信类(5)信息维护类
67.文件的3个基本特征:
(1)文件的内容为一组相关信息,可以是源程序、可执行的二进制代码程序、待处理的数据、表格、声音、图像等。
(2)文件具有保存性。
(3)文件可按名存取。
68.文件的分类:
(1)按文件的性质和用途分为:①系统文件②库文件③用户文件
(2)按文件的组织形式分为:①普通文件②目录文件③特殊文件
(3)根据使用和管理情况分为:①临时文件②永久文件 ③档案文件
(4)按文件系统提出的保护级别分为:①只读文件②读写文件③不保护文件
(5)按文件的数据流向分为:①输入型文件②输出型文件③输入/输出文件
69.流式文件指文件内的数据不在组成记录,只是依次的一串信息集合,字符是构成文件的基本单位。这种文件常按长度来读取所需信息,也可以用插入的特殊字符作为分界。
对于字符流的无结构文件来说,查找文件中的基本信息单位是比较困难的。反过来,字符流的无结构文件管理简单,用户可以方便地对其进行操作。所以有些文件比较适于采用字符流的无结构方式。
70.在多级目录结构中,主文件目录演变为根目录。
多级目录解决了重名问题,同一目录中的各文件不能同名,但在不同目录中的文件名可以相同。
多级目录有利于文件分类,便于制定保护文件的存取权限,有利于文件的保密。
71.目录的查找是文件目录管理的重要工作,“按名存取”文件实质上就是系统根据用户提供的文件名来查找各级文件目录,直至找到该文件。
对目录进行查找的方式有两种:线性检索法和哈希法。
72.设备的分类:
(1)按所属关系分类:系统设备,用户设备
(2)从资源分配角度分类:独占设备,共享设备,虚拟设备
(3)从外围设备分类:存储设备,I/O设备
(4)按信息交换方式分类:块设备,字符设备
73.通道主要目的是建立独立的I/O操作,不仅使数据的传送能独立于CPU,而且希望对I/O操作的组织、管理及结束也尽量独立,以保证CPU有更多的时间进行数据处理,也就是说,其目的是使一些原来由CPU处理的I/O任务转由通道来承担,从而把CPU从繁忙的I/O操作中解放出来。
I/O通道是一种特殊的处理机,用于I/O操作有关的指令。
通道和CPU共享内存。
74.缓冲的类型:
(1)按照缓冲区存在的位置,可分为硬件缓冲和软件缓冲。
(2)按照缓冲区的个数以及缓冲区的组织形式,可分为单缓冲、双缓冲、循环缓冲和缓冲池4种类型。