标签:操作系统
1.操作系统的特性:并发性、共享性、异步性和虚拟性。
2.特权指令与非特权指令:
(1)特权指令。只能在管态才能执行的指令为特权指令。这些指令一般只有操作系统才能执行,而一般用户程序不能执行。
(2)非特权指令。在管态和目态均可执行的指令为非特权指令。
3.处理器的状态:管态和目态,程序状态字中的一位标识。
(1)管态:也称为系统态、核心态,是操作系统运行时所处的状态。
(2)目态:也称为用户态,是一般用户程序运行时所处的状态。
(3)状态转换:由目态转换为管态的唯一途径是中断,中断发生时PSW应处于管态。由管态到目态转换可以通过修改PSW实现。
4.多道程序相对于单道程序的优点:设备、内存、处理器资源利用率提高。
5.进程是具有一定独立功能的程序关于一个数据集合的一次运行活动。进程的动态特性。
6.进程的状态:运行态、就绪态、等待态(挂起态、睡眠态,在等待某事件发生)。
7.进程控制块是标志进程存在的数据结构,其中包含系统对进程进行管理所需要的全部信息:进程标识(进程号)、用户标识、进程状态、调度参数、现场信息、家族联系、程序地址、当前打开文件、消息队列指针、资源使用情况、进程队列指针。
8.进程由两部分组成,即进程控制块和程序,其中程序包括代码和数据等。进程控制块处于操作系统空间,程序属于用户空间。
9.进程的程序(代码和数据)被称为进程映像。
10.系统开销一般是指运行操作系统程序、对系统进行管理所花费的时间和空间。
11.从操作系统角度将进程分为系统进程和用户进程。系统进程属于OS,也称为守护(daemon)进程,优先级一般高于用户进程。。运行的应用程序为用户进程。
12.线程又称为轻进程,是进程内的一个相对独立的执行流。一个进程可以包含多个线程,这些线程执行同一程序中的相同代码段或不同代码段,共享数据区和堆。一般认为,进程是资源的分配单位,线程是CPU的调度单位。
13.与进程相比,线程有如下优点:
(1)上下文切换速度快:由同一进程中的一个线程切换到另一个线程只需改变寄存器和栈,包括程序和数据在内的地址空间不变。
(2)系统开销小:创建线程比创建进程所需完成的工作少,因而对于客户请求,服务器动态创建线程比动态创建进程具有更高的响应速度。
(3)通信容易:由于同一进程中的多个线程的地址空间共享,一个线程写到数据空间的信息可以直接被该进程中的另一线程读取,方便快捷。
14.线程控制块是标志线程存在的数据结构,其中包含系统对线程进行管理所需要的全部信息:线程标识、线程状态、调度参数、现场(通用寄存器、指令寄存器、用户栈指针)、链接指针。线程控制块可能属于操作系统空间,也可能属于用户进程空间。
15.线程有两种实现方式:在目态实现的用户级别线程,在管态实现的核心级别线程
16.引入多线程程序设计的原因
(1)某些应用具有内在的多个控制流结构,这些控制流具有合作性质,需要共享内存。采用多线程易于对问题建模,从而得到最自然的解决算法。
(2)在需要多控制流的应用中,多线程比多进程在速度上具有更大优势。统计测试结果表明,线程的建立速度比进程的建立速度快100倍,进程内线程间切换速度与进程间的切换速度也有数量级之差。
(3)采用多线程可以提高处理器与设备之间的并行性。在单控制流的情形下,启动设备的进程进入核心后将被阻塞,此时该进程的其他代码也不能执行。
(4)在有多个处理器的硬件环境中,多线程可以并行执行,既可提高资源利用率,又可提高进程推进速度。
当然应该记住,采用多线程也是有条件的:同一进程中的多个线程具有相同的代码和数据,这些线程之间或者是合作的(执行代码的不同部分),或者是同构的(执行相同的代码)。
17.在Linux中,进程与线程在系统内部具有统一的表示:线程是与其父进程具有相同地址空间的进程。fork用于为子进程创建一个具有全新上下文的独立的地址空间。而clone并不产生新的地址空间,子进程共享父进程的地址空间。clone为应用程序提供细粒度的共享成分控制。
18.在windows 2000/XP中,线程也被作为对象管理,每个进程中至少包含一个线程,线程是核心调度的基本单位。每个线程包括两个栈:系统栈和用户栈。当进程中所有线程终止时,进程终止。
19.中断可以分为两大类:强迫性中断和自愿性中断。
20.操作系统可见的线程是系统级线程,如果线程是在用户级实现的,操作系统实际调度的实体仍然是进程。
21.处理器调度(进程调度)算法:先到先服务算法(FCFS)、最短作业优先算法(SJF)、最短剩余时间优先算法(SRTN)、最高响应比优先算法(HRN)、最高优先数优先算法(HPF)、循环轮转算法)(Round Robin,RR)、分类排队算法(MLQ)、反馈排队算法(FB)
22.实时调度算法:最早截止期优先调度(EDF)、速率单调调度(RMS)。
23.两个进程同时对一个变量进行操作产生的错误与进程的推进速度有关,称为与时间有关的错误。
24.共享变量:两个或以上进程均需访问的变量,又称为公共变量。
25.访问共享变量的程序段称为临界区,也称为临界段。
26.一次只允许一个进程使用的资源称为临界资源。
27.两个或两个以上的进程不能同时进入关于同一组共享变量的临界区,否则可能发生与时间有关的错误,这种现象称为进程互斥。
28.临界区管理应满足3个正确性原则:互斥性、进展性、有限等待性。
29.不进入等待状态的等待称为忙式等待。忙式等待空耗处理器资源,因而是低效的。
30.进程互斥的实现:
(1)软件方法:Dekker算法、Peterson算法、Lamport面包店算法、Eisenberg-Mcguire算法
(2)硬件方法:测试并设置指令(test and set)、交换指令(swap)、开关中断
31.一组进程,为了协调推进速度,在某些点处需要相互等待或者唤醒,进程间这种相互制约的关系称为进程同步,简称同步。显然进程同步现象仅发生在相互有逻辑关系的进程之间,而进程互斥可能发生在任意两个进程之间。
32.一组进程,如果他们单独不能正常执行,但是并发却可以正常执行,这种现象称为进程合作。
33.用于实现进程间同步的工具称为同步机制,又称为同步设施。
34.同步机制:信号量与PV操作、条件临界区、管程。适用于单处理器系统及具有公共内存的多处理器系统。
35.一段不可间断执行的程序称为原语。P操作和V操作被定义为原语。因为P操作和V操作代码长度和执行时间都很短,实现时通常采用开关中断的方法。
36.适用于分布式系统的同步机制有:通信顺序进程、会合、分布式进程、远程过程调用。
37.进程之间的互斥、同步及信息交换统称为进程通信(IPC)。
38.进程通信主要有两种模式:共享内存模式和消息传递模式。消息传递模式分为直接方式和间接方式。直接方式有对称形式和非对称形式,有缓冲途径和无缓冲途径。间接方式又称信箱方式。
39.Linux进程通信:(1)共享内存:共享存储区建立、共享存储区的附接、共享存储区的分离;(2)signal、pipe、socket。
40.Windows 2000/XP的并发控制机制都针对线程,而不是进程:信号量、互斥锁、事件、临界区。对于信号量、互斥锁、时间三种同步对象,提供了WaitForSingleObject和WaitForMultipleObject。
41.一组进程中每个进程均等待此组进程中其他进程所占有的、因而永远无法得到的资源,这种现象称为进程死锁,简称死锁。
42.死锁的类型:竞争资源、进程通信、其他原因。
43.死锁的条件:资源独占、不可剥夺、保持申请、循环等待。当且仅当四个条件同时满足,死锁才会发生,只要破坏一个条件即可。
44.死锁定理:S为死锁状态的充分必要条件是S的资源分配图不可完全约简。
45.更一般的死锁:一组进程中的每个进程,均无限期地等待这组进程中的其他进程才能引发的事件,称为死锁。通信死锁不能采用前面介绍的预防策略(静态)或避免策略(动态),可以采用超时技术。
46.当等待时间给进程的推进和响应带来明显的影响时,就称发生进程饥饿。当饥饿到一定程度的进程所赋予的任务即使完成也不再具有实际意义,称该进程被饿死。在忙式等待条件下发生的饥饿称为活锁。
47.死锁在绝大多数系统中都采用视而不见的“鸵鸟算法”,只在Dijkstra设计并实现的THE系统中采用了避免死锁的银行家算法。
48.虚拟存储管理之所以能够工作,是基于局部性原理,包括时间上(循环)和空间上(程序顺序执行)的局部性。
49.页面置换算法,又称淘汰算法:最佳算法(OPT)、先进先出算法(FIFO),最近最少使用算法(LRU)、最近不用的先淘汰(NUR)、最不经常使用算法(LFU)、最频繁使用算法(MFU)、二次机会算法、时钟算法、改进时钟算法
50.磁盘引臂调度算法:先到先服务算法(FCFS)、最短查找时间优先算法(SSTF,存在磁道歧视)、扫描算法、LOOK算法(电梯算法)、循环扫描算法、循环LOOK算法、N步扫描和冻结扫描算法
51.处理数据到达速度和离去速度不一致而采用的技术称为缓冲。
52.网络OS各台计算机可以运行不同的OS,而分布式OS的各计算机运行同一OS。网络OS以共享文件方式进行通信,分布式OS以消息方式通信。网络OS主要提供通信和信息资源共享服务,分布式OS以计算加速和系统可靠性作为主要目标。
53.忙式等待锁称为自旋锁。
54.数据存储速度难以满足微处理器的峰值计算速度,这就是所谓的内存墙(memory wall)性能瓶颈问题。
标签:操作系统
原文地址:http://blog.csdn.net/libinjlu/article/details/45501295