第一章 操作系统引论
- 系统的目标:有效性(提高资源利用率和系统吞吐量)、方便性、可扩充性、开放性。
- 有效性和方便性是操作系统最重要两个目标。
- 操作系统的作用:
(1) OS作为用户与计算机硬件系统之间的接口
(2) OS作为计算机系统资源的管理者(处理器、存储器、I/O设备、数据程序)
(3) OS实现了对计算机资源的抽象(在硬件上覆盖I/O设备、文件和窗口管理软件,即虚拟机)
- OS的发展过程:无操作系统的计算机系统→单道批处理系统→多道批处理系统→分时系统→实时系统→微机操作系统
- 操作系统的基本特征:
(1) 并发性(两个或多个事件在同一时间间隔内发生;进入进程和线程)
(2) 共享性(系统中资源可供内存中多个并发执行的进程(线程)共同使用,方式为互斥共享方式和同时访问方式)
(3) 虚拟性(通过某种技术把一个物理实体变为若干个逻辑上的对应物。方式:时分复用技术和空分复用技术)
(4) 异步性(进程以不可预知的速度向前推进,多道程序设计固有的特点)
- OS的主要功能:
(1) 处理机管理(进程管理)功能;(主要包括创建和撤销进程、协调诸进程的运行、实现进程间信息交换、把处理机分配给进程。进程同步机制功能是协调多个进程的运行,分为竞争和协作两种方式,实现进程同步常用的及时是信号量机制。调度包括作业调度和进程调度两步。)
(2) 存储器管理功能;(内存分配、内存保护、地址映射和内存扩充等功能。内存分配有动态和静态两方式。内容扩充的功能是请求调入和置换)
(3) 设备管理功能(缓冲管理、设备分配、设备处理和虚拟设备。缓冲管理包括单、双、公用缓冲机制。设备处理的人物是实现CPU和设备控制器之间的通信)
(4) 文件管理功能;(文件存储空间管理、目录管理、文件读写管理、共享保护功能)
(5) 操作系统与用户之间的接口;(用户接口和程序接口)
第二章 进程管理
- 进程与线程的基本概念
1) 进程是为了使多个程序能并发执行,以提高资源利用率和系统吞吐量。
2) 线程是为了减少程序在并发执行时所付出的空间开销,是OS具有更好的并发性。
- 进程和线程的区别
1) 调度:线程作为调度和分派的基本单位;进程作为资源拥有的基本单位。
2) 并发性:进程之间可以并发执行,进程中的诸线程之间也可并发执行。
3) 拥有资源:进程拥有资源,线程无资源,但可以访问所属进程的资源
4) 系统开销:创建可撤销进程的代价比创建和撤销线程的代价大的多。
- 前趋图是描述进程之间执行的前后关系的。
- 进程的特征:
1) 结构特征;由程序段、相关的数据项和PCB三部分构成了进程实体。
2) 动态性;指从创建、调度执行到撤销的过程是动态的。
3) 并发性;
4) 独立性;因为有PCB,可以独立运行、独立分配资源、独立接受调度等功能
5) 异步性;各进程按各自独立、不可预知的速度向前推进。
- 进程的三种基本状态:
1) 就绪状态;处CPU外,已占有其他必要的资源的进程
2) 执行状态;
3) 阻塞状态;因事故是正在执行的进程停止,并让出CPU。
- 信号量机制是一种卓有成效的进程同步工具。包括整形信号量、记录型信号量、AND型信号量、信号量集。
第三章 处理机调度与死锁
- 批量型作业通常需要经历作业调度(高级调度或长程调度)和进程调度(低级调度和短程调度)两个过程后方能获得处理机。
- 处理机调度层次
1) 高级调度:把外存上处于后备队列中的那些作业调入内存。
2) 低级调度:它决定就绪队列中的哪个进程将获得处理机,然后由分派程序执行把处理机分配给该进程的操作。对象是进程。功能是:保存处理机现场信息(PCB);按某种算法选取进程;把处理器分配给进程。方式分为非抢占方式和抢占方式。
3) 中级调度:内存中不能有太多的进程,把进程从内存移到外存,当内存有足够空间时,再将合适的进程换入内存,等待进程调度。目的是提高内存利用率和系统吞吐量。
- 死锁:多个进程在运行过程中因争夺资源而造成的一种僵局。
活锁:多个进程在运行工程中因相互谦让而造成的一种僵局。
- 产生死锁的原因
1) 竞争资源
2) 进程间推进顺序非法
- 产生死锁的必要条件
1) 互斥条件:临界资源的互斥访问
2) 请求和保持条件:占着自己的资源不放,又去请求别人的
3) 不剥夺条件:进程没有完成则不是放占有的资源
4) 环路等待条件:发生死锁指必然存在一个资源环形链。
- 处理死锁的基本方法
1) 预防死锁
2) 避免死锁
3) 检测和解除死锁
- 安全序列:是指系统能够找到一个进程顺序(P1、P2……Pn),来为每个进程Pi分配所需资源,知道满足每个进程的最大需求,是每个进程能够顺利完成,则P1、P2……Pn即为安全状态。
- 用资源分配图对死锁进行检测,消去途中的所有边,若节点为孤立节点,则为可完全简化。
- 死锁的解除
1) 剥夺资源:从其他进程剥夺足够数量的资源给死锁进程,以解除死锁状态
2) 撤销进程:一种方法是夭折全部进程;另一种方法是按某个顺序逐个撤销进程,知道死锁状态被解除。
第四章 存储器管理
- 连续分配方式:一个用户程序分配一个连续的内存空间
1) 单一连续分配:一个程序装入其他程序就不允许被装入。只是用于单用户单任务的OS中。
2) 固定分区分配:把内存分为若干个固定大小的区域,每个分区装入一个作业,允许并发执行。
3) 动态分区分配:根据实际需要,动态地为之分配内存空间。
4) 动态重定位分区分配:通过重定位寄存器把相对地址转化成物理地址,此转化过程是在程序执行期间,随着每条指令或数据的访问自动进行的,故称为动态重定位。
- 分区分配算法
1) 首次适应算法(以地址递增次序访问)
2) 循环首次适应算法(从上一次分配处开始查找)
3) 最佳适应算法(小内存到大内存依次查找)
4) 最坏适应算法(每次分配从大内存开始割让)
5) 快速适应算法(对空闲分区进行分类,并建立索引表,选最适合的控件分配给请求的进程)
- 对换:把暂时不运行的程序调到外存,需要时再调到内存。
- 地址变换机制:将用户地址空间中的逻辑地址变换为内存空间中的物理地址。
- 引入分段存储管理方式的目的,则主要是为了满足用户在编程和使用上多方面的要求。
- 段表是用于实现从逻辑段到物理内存区的映射。
- 分页和分段的主要区别
1) 两者都采用离散分配方式,且都要通过地址应设机构来实现地址变换。
2) 页是信息的物理单位,分页是为了有效的管理内存;段是逻辑单位,分段是为了维护信息完整性和独立性。
3) 页的大小固定且由系统决定,段的长度不固定,决定于用户编写的程序。
4) 分页的作业地址空间是一维的,而分段的作业地址空间是二维的。
- 段页式存储管理方式的原理:分段和分页相结合,先将用户程序分成若干个段,再把每个段分成若干个页,并为每个段赋予一个段名。其地质结构由段号、段内页号和页内地址组成。
- 页面置换算法有:最佳置换算法、先进先出置换算法、最近最久未使用置换算法、Clock置换算法。
第五章 设备管理
- I/O系统是用于实现数据输入、输出及数据存储的系统。
- I/O设备类型:
1) 特性:存储设备;输入/输出设备。
2) 传输速率:低速设备;中速设备;高速设备。
3) 信息交换的单位分类:块设备;字符设备。
4) 共享属性:独占设备;共享设备;虚拟设备。
- 设备与控制器之间的接口:
1) 数据信号线:设备和设备控制器之间传送数据信号
2) 控制信号线:设备控制器向I/O设备发送控制信号的通路
3) 状态信号线:传送指示设备当前状态的信号。
- 设备控制器
主要职责是控制一个或多个I/O设备,以实现I/O设备和计算机之间的数据交换。是CPU和I/O设备的接口,他接受CPU指令去控制I/O设备工作,使减轻处理机的工作量。
设备控制器包括控制字符设备控制器和控制块设备的控制器。
- 设备控制器的基本功能
1) 接受和识别命令
2) 数据交换
3) 标识和报告设备的状态
4) 地址识别(CPU通过地质控制设备)
5) 数据缓冲
6) 差错控制
- I/O通道是一种特殊的处理机,它具有执行I/O指令的能力,可以控制I/O操作。类型分为:字节多路通道、数组选择通道、数组多路通道。
- 解决“瓶颈”问题的最有效的方法是增加设备到主机间的通路而不增加通道。
- I/O控制方式
1) 程序I/O方式
2) 中断驱动I/O控制方式
3) 直接存储器访问(DMA)I/O控制方式
4) I/O通道控制方式
- SPOOLing技术
通过SPOOLing技术便可将一台物理I/O设备虚拟为多台逻辑I/O设备,同样允许多个用户共享一台物理I/O设备。
- Spooling系统的组成
输入井和输入井;输入缓冲区和输出缓冲区;输入进程和输出进程。
- SPOOLing系统的特点
1) 提高了I/O的速度
2) 将独占设备改造为共享设备
3) 实现了虚拟设备功能
- 磁盘调度
磁盘调度的主要目标是使磁盘的平均寻道时间最少。
- 常用的磁盘调度算法
1) 先来先服务(适合进程较少的场合)
2) 最短寻道时间优先(要访问的磁道与当前磁头所在磁道距离最近。会导致进程“饥饿”现象)
3) 扫描算法(考虑访问的磁道与当前磁头所在磁道距离最近和磁头当前移动的方向)
4) 循环扫描算法(规定磁头单向移动)
5) NSPetpSCAN和FSCAN调度算法
第六章 文件管理
- 文件逻辑结构的类型
1) 有结构文件(由一个以上的记录构成的文件,又称记录式文件)
2) 无结构文件(由字符流构成的文件,又称流式文件)
- 记录式文件的长度分为定长记录和变长记录。
- 记录文件又分为顺序文件、索引文件、索引顺序文件。
- 大量的数据结构而后数据库是采用有结构的文件形式
而大量的源代码、可执行文件、库函数等采用无结构文件。
- 顺序文件的优缺点
1) 适合进行批量存取
2) 存取效率是所有逻辑文件中最高的
3) 也只有顺序文件才能存储在磁带上,并能有效的工作
4) 不适合查找或修改单个记录
5) 增加或删除一个记录时比较困难
- 索引文件的缺点:除了有主文件外,还须配置一张索引表,而且每个记录都要有一个索引表,因此提高了存储费用。
- 对已直接文件,检索时可以根据记录键值直接获得指定记录的物理地址。
- 哈希文件是键值通过Hash函数指向目录表,该表目的内容指向记录所在的物理块。
- 外存分配方式:连续分配、连接分配和索引分配三种。
- 连续分配的优缺点
1) 顺序访问容易
2) 顺序访问速度快
缺点:
1) 要求有连续的存储空间
2) 必须实现知道文件的长度
- 链接分配中的链接方式分为隐式链接和显式链接。
- 为新建文件分配存储空间的方式分为连续和离散的分配方式。前置具有较高的文件访问速度,但可能产生较多的外存零头。后者能有效的利用外存空间,但访问速度较慢。无论哪种方式,存储空间的基本分配单位都是磁盘块而非字节。
- 文件存储空间管理的方法
1) 空闲表法和空闲链表法
2) 位示图法
3) 成组链接法
- 空闲表法和空闲链表法都不适用于大型文件系统可使用成组链接法。
常见面试题:
1、进程是并发过程中程序的执行过程
2、进程的特征:结构特征动态性并发性独立性异步性
3、临界区指在每个进程中访问临界资源的那段代码
4,现在操作系统中申请资源的基本单位是进程,在CPU得到执行的基本单位是线程,进程是由程序段、数据段、PCB组成的
5,对临界资源应采取互斥访问方式来实现共享
6,P.V操作是一种低级进程通信原语
7,对于记录性信号量,在执行一次P操作时,信号量的值应当减1,当其值为小于0时进程应阻塞;在执行V操作时,信号量的值应当加1;当其值小于等于0时,应唤醒阻塞队列中的进程。
8,N个进程共享某一临界资源,(n-1)~1
9,短作业优先算法,T1<T2<T3平均周转时间为:T1+2XT2/3+T3/3
10,响应比Rp=(等待时间+要求服务时间)/要求服务器时间=响应时间/要求服务时间
11死锁是指多个进程在运行过程中因争夺资源,而造成的一种僵局,当进程处于这种僵局状态时,若无外力作用,他们都将无法再向前推进。
死锁的避免是根据防止系统进入不安全状态。
产生死锁的根本原因是资源分配不当和资源数量不足,发生死锁的四个必要条件是:互斥条件,请求和保持条件,不剥夺条件和环路等待条件,银行家算法用于避免死锁
12,如果系统中有N个进程,最多为(N-1)个
13,若系统采用轮转法调度进程系统采用的是剥夺式调度
14,既考虑作业等待时间,又考虑作业执行时间,的调度算法是响应比优先调度算法
15,资源的有序分配策略可以破坏死锁的“循环等待”
16,并非所有的不安全状态都必然会转为死锁状态,但当系统进图不安全按状态后变有可能进入死锁状态,
17,重定位:在作业地址空间中使用的逻辑地址变为内存物理地址
18,支持程序放在不连续内存中储存管理方法有分取式分配,分段式分配,段页式分配页式存储主要特点是不要将作业同时全部装入到主存的的连续区域
19,适合多道程序运行的存储管理中,存储保护是为了防止各道作业的相互干扰
20,采用页式存储管理时,重定位的工作由地址转换机
21,段页式存储管理中的地址映像表是每个作业或进程一张段表,每个段一张页表
22,在虚拟页式存储管理方案中,完成将页面调入内存的工作的是缺页中断处理
23,分段管理和分页管理的主要区别是分页管理有存储保护,分段管理没有
24,在股低估分区分配中,可以不同但预先固定的
25,不使用中断机构的I/O控制方式是程序I/O方式
26,spooling技术能独占设备改造成可以共享的虚拟设备
27,磁盘防伪中把数据从磁盘读出,叫做传输时间
28,共享设备指同一时间内运行多个进程同时访问的设备
29,通过软件的功能扩充,把原来独占的设备爱造成若干个可共享的设备,虚拟设备
30,DMA方式如果I/O设备不通过CPU来完成
31,设备独立性用户程序独立于具体物理设备的一种特性
32,虚拟设备一个物理设备变换成多个对应的逻辑设备
33,通道是一种特殊的处理机,通道按传递数据的方式分为:字节多路通道,数组选择通道,数组多路通道
通道涉及的数据结构是设备控制器,控制器控制块,通道控制块,系统设备表
34,磁盘高速缓冲设在内存中,目的是提高I/O磁盘速度
35,磁盘空间的地址有盘面号,柱面号,扇区号组成。访问磁盘的时间有 寻道时间,旋转等待时间,读写时间
36,将系统段用参数翻译成设备操作命令的工作由设备无关的操作系统完成
37,向设备寄存器写入控制命令由设备驱动程序完成
38,寻找设备驱动程序由设备无关的操作系统软件完成
39,设备管理的功能是设备分配,缓冲区管理和实现物理I/O设备的操作
40,根据设备的固有属性特点,设备可分为独占设备,共享设备和虚拟设备
41,引入缓冲区技术可提高处理器执行程序和设备的输入输出操作的并行程序文件管理
42,物理文件的组织方式是由操作系统确定的,文件的顺序存取是按文件的逻辑号逐一存取
43,系统通过树形目录结构来解决重名问题
44,在UNIX操作系统中,把输入输出设备看做特殊文件
45,打开文件操作的主要工作是把指定的目录复制到内存指定区域
46,文件路径名是指从根目录到该文件所经历的路径中各符号名的集合
47,按逻辑结构划分,文件主要有两类:记录是文件,流式文件,文件系统的主要目的是实现对文件的按名存取
48连续结构文件必须采用连续分配方式,而链接结构文件和索引结构文件都可采取离散分配方式
49,文件系统中,若文件的物理结构采用连续结构有关文件的物理位置的信息包括首块地址和文件长度
50,位示图可用于磁盘空间管理,在文件系统中,为实现文件保护,一般采用口令,密码和访问控制
1、进程是具有独立功能程序在某个数据集合上的一次执行过程。线程是进程内的一个执行实体或执行单元。
进程和线程的区别:
(a)不同进程的地址空间是独立的,而同一进程内的线程共享同一地址空间。一个进程的线程在另一个进程内是不可见的。
(b) 在引入线程的操作系统中,进程是资源分配和调度的单位,线程是处理机调度和分配的单位,资源是分配给进程的,线程只拥有很少资源,因而切换代价比进程切换低。
2、死锁在多道程序系统中,当一组进程中的每个进程均无限期地等待被改组进程中的另一进程所占有且永远不会释放的资源,此时的系统处于死锁状态。
死锁产生的原因:
(a)系统提供的资源有限;
(b)进程推进顺序不当。
产生死锁的必要条件:互斥条件、不可剥夺条件、请求和保持条件、循环等待条件
3、执行如下访问页号序列: 1,2,3,4,1,2,5,1,2,3,4,5 试说明采用先进(1)FIFO: 9次(2)LRU:10次 (3)OPT:7次
4、什么是操作系统的基本功能?
1.处理机管理。在多道程序或多用户的情况下,要组织多个作业同时运行,就要解决对处理机分配调度策略、分配实施和资源回收等问题。
2.存储管理。存储管理的主要工作是对内部存储器进行分配、保护和扩充和管理。
3.设备管理。涉及到通道、控制器、输入输出设备的分配和管理以及设备独立性。
4.信息管理(文件系统管理) 是对系统的软件资源的管理。
5.用户接口。操作系统还为用户提供一个友好的用户接口。一般来说,操作系统提供两种方式的接口来为用户服务。
5、分级调度分为4级:
(1) 作业调度
(2) 交换调度
(3) 进程调度
(4) 线程调度。
6、试写出程序与进程的区别
(1)进程是一个动态概念,而程序是一个静态概念。
(2)进程具有并行特征,而程序不反映执行所以没有并行特征
(3)进程是竞争计算机系统资源的基本单位,而程序不反映执行也就不会竞争计算机系统资源
(4)不同的进程可以包含同一程序,只要该程序所对应的数据集不同。
7、页式管理的基本原理是什么?
(1)进程的虚拟空间被划分成长度相等的页。
(2)内存空间也按页的大小划分成长度相等的页面。
(3)采用请求调页或预调技术实现内外存储器的统一管理。
8、进程调度有哪些功能?
(1)记录系统中所有进程的执行情况。
(2)选择占有处理机的进程
(3)进行进程上下文切换
9、批处理操作系统、分时操作系统和实时操作系统的特点各是什么?
(1) 批处理操作系统的特点:成批处理,系统吞吐量高,资源利用率高,用户不能直接干预作业的执行。
(2)分时操作系统的特点:多路性、独立性、及时性、交互性。
(3)实时操作系统的特点:及时响应、快速处理;高可靠性和安全性;不要求系统资源利用率。
10、Windows下的内存是如何管理的?
Windows提供了3种方法来进行内存管理:虚拟内存,最适合用来管理大型对象或者结构数组;内存映射文件,最适合用来管理大型数据流(通常来自文件)以及在单个计算机上运行多个进程之间共享数据;内存堆栈,最适合用来管理大量的小对象。
Windows操纵内存可以分两个层面:物理内存和虚拟内存。
其中物理内存由系统管理,不允许应用程序直接访问,应用程序可见的只有一个2G地址空间,而内存分配是通过堆进行的。对于每个进程都有自己的默认堆,当一个堆创建后,就通过虚拟内存操作保留了相应大小的地址块(不占有实际的内存,系统消耗很小)。当在堆上分配一块内存时,系统在堆的地址表里找到一个空闲块(如果找不到,且堆创建属性是可扩充的,则扩充堆大小),为这个空闲块所包含的所有内存页提交物理对象(在物理内存上或硬盘的交换文件上),这时就可以访问这部分地址。提交时,系统将对所有进程的内存统一调配,如果物理内存不够,系统试图把一部分进程暂时不访问的页放入交换文件,以腾出部分物理内存。释放内存时,只在堆中将所在的页解除提交(相应的物理对象被解除),继续保留地址空间。
如果要知道某个地址是否被占用/可不可以访问,只要查询此地址的虚拟内存状态即可。如果是提交,则可以访问。如果仅仅保留,或没保留,则产生一个软件异常。此外,有些内存页可以设置各种属性。如果是只读,向内存写也会产生软件异常。
11、Windows消息调度机制是(C)
A)指令队列;B)指令堆栈;C)消息队列;D)消息堆栈
解析:
处理消息队列的顺序。首先Windows绝对不是按队列先进先出的次序来处理的,而是有一定优先级的。优先级通过消息队列的状态标志来实现的。首先,最高优先级的是别的线程发过来的消息(通过sendmessage);其次,处理登记消息队列消息;再次处理QS_QUIT标志,处理虚拟输入队列,处理wm_paint;最后是wm_timer。
12、描述实时系统的基本特性
在特定时间内完成特定的任务,实时性与可靠性。
所谓“实时操作系统”,实际上是指操作系统工作时,其各种资源可以根据需要随时进行动态分配。由于各种资源可以进行动态分配,因此,其处理事务的能力较强、速度较快。
13、中断和轮询的特点
对I/O设备的程序轮询的方式,是早期的计算机系统对I/O设备的一种管理方式。它定时对各种设备轮流询问一遍有无处理要求。轮流询问之后,有要求的,则加以处理。在处理I/O设备的要求之后,处理机返回继续工作。尽管轮询需要时间,但轮询要比I/O设备的速度要快得多,所以一般不会发生不能及时处理的问题。当然,再快的处理机,能处理的输入输出设备的数量也是有一定限度的。而且,程序轮询毕竟占据了CPU相当一部分处理时间,因此,程序轮询是一种效率较低的方式,在现代计算机系统中已很少应用。
程序中断通常简称中断,是指CPU在正常运行程序的过程中,由于预先安排或发生了各种随机的内部或外部事件,使CPU中断正在运行的程序,而转到为响应的服务程序去处理。
轮询——效率低,等待时间很长,CPU利用率不高。
中断——容易遗漏一些问题,CPU利用率高。
14、什么是临界区?如何解决冲突?
每个进程中访问临界资源的那段程序称为临界区,每次只准许一个进程进入临界区,进入后不允许其他进程进入。
(1)如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入;
(2)任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所有试图进入临界区的进程必须等待;
(3)进入临界区的进程要在有限时间内退出,以便其它进程能及时进入自己的临界区;
(4)如果进程不能进入自己的临界区,则应让出CPU,避免进程出现“忙等”现象。
15、说说分段和分页
页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存的利用率