1.什么是操作系统?
①控制和管理整个计算机系统的硬件和软件,合理组织调度计算机的工作资源分配
②进而为用户和其它软件提供方便接口的程序集合。
2.操作系统的特征?
并发、共享、虚拟、异步
并发:两个或以上进程在同一时间间隔内发生,并发性是通过分时实现的。
共享:操作系统的资源科供内存中多个并发执行的进程共同使用。分为互斥共享方式、同时访问方式。
虚拟:把一个物理上的实体变成若干逻辑上对应物。
异步:多道程序环境中允许多个程序并发执行,但资源能有限,进程的执行并不是一贯到底,而是走走停停,以不可预知的速度前进。这可能会导致出现与时间相关的错误。
3.并发和共享之间的关系?
并发和共享是操作系统两个最基本的特性,两者互为存在条件。资源共享是以程序的并发为条件的,没有并发就没有共享;如果系统不能对共享资源进行有效的管理,会影响并发的效率。
4.操作系统的功能和目标?
管理计算机硬件和软件资源;为用户和程序提供方便的接口;作为扩充机器。
处理机管理、存储器管理、设备管理、文件管理。
5.批处理操作系统的特点
(只讨论多道批处理系统)。优点:系统资源利用率高,多道程序共享计算机资源,使各个资源能充分利用。系统吞吐量大。缺点:用户响应时间长,不提供人机交互能力,用户不了解自己程序的运行情况,又不能控制计算机。
分时操作系统的特点
处理机时间被分成等长的时间片,分配各各个进程。当进程用完时间片以后,就要让出处理机。实现了人机交互。
实时操作系统的特点
有一些任务比较娇贵,必须要在规定的时间内完成。即使有其它程序在运行,也可以抢占处理机。特点是及时性、可靠性。
网络操作系统和分布式操作系统的特点
网络操作系统是操作系统在互联网上不在本地。分布式操作系统是若干计算机互相协同完成一个任务。
6.操作系统内核的内容
时钟管理、中断机制、原语、系统控制的数据结构和处理。
7.原语的特点
1、都处于操作系统的底层,最接近硬件的地方。
2、有原子性,操作一气呵成;
3、运行时间短,调度频繁。
8.中断和异常的概念
中断也叫外中断,来自CPU指令以外的时间的发生,例如设备发出的IO结束中断,表示设备输入输出处理已经完成。中断的发生与当前指令无关。
异常,也叫内中断。中断来源于CPU的内部,如非法操作等。对异常的处理一般依赖于当前进程的运行现场,异常不能被屏蔽,一旦出现就要立刻处理。
9.什么是系统调用?
是指用户在程序中调用操作系统所提供的一些子功能,系统调用可视为特殊的公共子程序。用户程序可使用陷入程序发起系统调用,这样是为了不让用户程序直接执行对系统影响很大的操作。
10.大内核和微内核?
大内核将操作系统的主要功能都作为一个紧密联系的整体运行在核心态。
微内核是将操作系统主要功能留在核心态(如进程管理)。
大内核性能高但不利于维护,微内核有利于维护性能低一点。
1.进程的定义是什么?
进程是进程实体运行的过程,是系统资源分配和调度的独立单位。进程实体是由PCB块、相关的数据段、程序段三部分组成。
2.进程的状态与状态之间的转换
进程有 新建、就绪、运行、阻塞、终止五个状态。
新建可以到就绪状态,就绪可以到运行状态,运行可以到阻塞状态也可以就绪状态
阻塞可以到就绪状态但不能直接到运行状态。
当进程等待某一资源到来是就由就绪状态变成了阻塞状态,这是后剥夺了处理机的使用权,但等待的资源得到满足之后,就由阻塞状态变成了就绪状态。
3.进程间的三种通讯方式
共享存储、消息传递、管道通信
共享存储:通信进程之间存在一块可以直接访问的共享空间,通过对这块空间进行读写操作实现进程之间的信息交换。操作系统会为进程提供可共享使用的存储空间和同步互斥工具。
消息传递:进程间的数据交换以格式化的消息为单位,操作系统提供发送消息和接受消息的两个原语进行数据交换。有分为直接通信方式和间接通信方式。
管道通信:管道是指用于连接一个读进程和一个写进程以实现他们之间的通信的一个共享文件。写进程向管道写入数据,读进程向管道读取数据,所以管道机制必须提供:互斥、共享、确定对方存在的功能。
4.管道通信的特点
1、管道大小有限制,一般为4kb。
2、读进程可能比写进程快。发生这种情况,读进程被默认阻塞。
3、半双工通信,某一时刻是能单向传输,如果要实现两个进程双向通信,只能申请两个管道。
5.线程的定义是什么?
线程可以理解为轻量级的进程,它是基本的CPU执行单元。由线程id、程序计数器、寄存器集合、和堆栈组成。线程不独立拥有资源。
6.线程与进程的区别
1、调度。线程是CPU调度的基本单位。
2、资源。进程是资源分配的基本单位,线程不独立拥有资源,但可以访问隶属进程的资源。
3、并发性。引入线程就是为了获得更好的并发性。
4、开销。进程的创建、撤销和切换都要有资源的分配和回收,开销远大于线程的切换。
5、地址空间和其它资源。进程的地址空间都是独立的,而线程可以共享隶属进程的地址空间和资源。
6、通信方面。进程之间通信需要用进程通信手段实现,而线程间通信可以直接读写数据段。
7.进程和程序的区别
- 程序是永存的;进程是暂时的,是程序在数据集上的一次执行,有创建有撤销,存在是暂时的;
- 程序是静态的观念,进程是动态的观念;
- 进程具有并发性,而程序没有;
- 进程是竞争计算机资源的基本单位,程序不是。
- 进程和程序不是一一对应的: 一个程序可对应多个进程即多个进程可执行同一程序; 一个进程可以执行一个或几个程序
8.处理机的三级调度
作业调度(高级调度)、内存调度(中级调度)、进程调度(低级调度)。
9.经典的进程调度算法的特点
1、先来先服务。有利于CPU繁忙作业,不利于IO繁忙作业。有利于长作业,不利于短作业。
2、短作业优先。不利于长作业,未考虑作业的紧迫程度;平均等待时间和平均周转时间最少。
3、优先级调度算法。可以设置紧迫程度、参照以下原则设计:系统进程大于用户进程、交互进程大于非交互进程、IO进程大于计算进程。
4、高响应比优先算法。克服饥饿,兼顾了场作业。
5、时间片轮转。用于分时系统,需要选择合适大小的时间片。
6、多级反馈队列调度算法。优点如下:终端型作业,短作业优先;短批处理作业,周转时间短;长批处理作业,经过前几个队列得到部分执行,不会长期不执行。
10.概念:临界资源、临界区、互斥、同步
临界资源:每次只允许一个进程访问的资源称为临界资源。
临界区:访问临界资源的那段代码称为临界区
同步:直接制约关系,两个进程在时间上有先后关系。
互斥:简介制约关系,当一个进程进入临界区,另一个必须等待。
11.同步机制遵循的原则
空闲让进、忙则等待、有限等待、让权等待。
12.实现临界区互斥的基本方法
单标志法、双标志先检查、双标志后检查、皮特森算法。硬件方法。信号量法。
13.死锁的定义和形成的原因
死锁是多个进程因竞争资源而造成的一种僵局,没有外力作用,都无法继续执行。
原因:对不可剥夺的资源你的竞争;进程的非法顺序推进;满足死锁产生的必要条件。
死锁产生的必要条件:请求保持、不可剥夺、循环等待、互斥条件
描述三种死锁处理策略
死锁预防、避免死锁、死锁的检测和解除
如何预防死锁
破坏死锁形成的四个必要条件之一就可以。
死锁的解除方法
先用资源换分配图判定死锁。通过撤销某死锁进行、回退进程、剥夺进程资源法可以解除死锁。
14.什么是饥饿?与死锁有什么差别?
等待时间给进程推进和响应带来明显影响时成为进程饥饿。饥饿并不代表系统已经死锁,但至少有一个程序的执行被无限期地推迟。差别:① 进入饥饿的进程可以只有一个,但是死锁必须大于等于两个;② 出于饥饿状态的进程可以是一个就绪进程,但是死锁状态的进程必定是阻塞进程。
15.描述银行家算法
主要思想是避免系统进入不安全状态,在每次进行资源分配时,它首先检查系统是否有足够的资源满足要求,如果有,则先试行分配,并对分配后的新状态进行安全性检查。如果新状态安全,则正式分配上述资源,否则拒绝分配上述资源。这样就保证系统始终处于安全状态,从而避免死锁现象的发生。
1.内存管理的功能?
内存回收和分配功能,使程序员摆脱手动分配回收的麻烦,提高效率。
地址转换功能,如逻辑地址和物理地址的转换。
内存空间扩充,利用虚拟存储技术和覆盖技术扩充内存。
存储保护,使多道程序运行时不发生越界。
2.将用户程序变为可在内存中执行的程序的步骤?
编译、链接、装入
编译:编译程序将源码编译成目标模块;
链接:链接程序将目标模块和函数库链接,形成装入模块;
装入:装入程序将装入模块装入内存运行。
3.程序的链接方式有哪些?
链接又分为:静态链接、装入时动态连接、运行时动态连接。
静态链接:装入前一次性链接完成。
装入时动态链接:边装入边链接。
运行时动态链接:在程序要执行到目标模块时才进行链接,优点是易于更新和修改,便于实现目标模块的共享。
4.程序的装入方式有哪些?
装入又分为:绝对装入、可重定位装入、动态运行时装入。
绝对装入:知道程序在内存中驻留的位置,编译程序产生绝对地址。
可重定位装入:多道环境中,多个模块的起始地址都从0开始,程序中的其它地址都是相对起始地址的。特点是:作业装入内存必须给它一次性分配所需空间,运行期间不可移动,不可再次申请内存空间。
动态运行时装入:程序装入内存后,并不立刻转化成绝对地址,而是到真正要运行这段程序时在转换。特点是:可以将程序分配到不连续的内存;可以只装入部分代码就能运行;可动态申请内存;需要重定位寄存器支持。
5.逻辑地址和物理地址
逻辑地址:编译后每个目标模块都从0开始编制,叫做相对地址或逻辑地址。
物理地址:是地址转换后的最终地址。装入程序将代码装入内存,必须将逻辑地址变成物理地址,称为地址重定位。
6.内存连续分配方式有哪些?
单一连续分配、固定分区分配、动态分区分配的比较?
单一连续分配:将内存分成系统区和用户区。优点:简单、无外部碎片;缺点:适用于单道程序,有内部碎片,内存利用率非常低。
固定分区分配:将内存空间划分成大小固定的分区,每个分区只装入一个作业。分区大小可以相等也可以不等。优点:可以多道程序;缺点是:分区固定不变,程序不能太大,否则放不进去,有内部碎片;内存利用率低。
动态分区分配:不预先划分分区,而是等程序装入内存时再划分。优点是:可以使分区大小刚好合适。缺点是:会产生较小的外部碎片分配不出去。
7.动态分区有哪些策略?
首次适应算法、最佳适应、最坏适应、邻近适应算法。
8.覆盖与交换的概念?
覆盖是在同一程序或进程中进行的。交换是在不同进程之间进行的。
9.多级页表解决了什么问题,带来了什么问题?
解决了当逻辑地址空间大时,页表的长度会大大增加的问题。带来了采用多级页表时,一次访盘需要多次访问内存甚至磁盘,会增加一次访问的时间。
10.描述页式存储管理。
思想:把主存空间划分成大小相等且固定的块,块相对较小,作为主存的基本单位。每个进程也以块为单位划分。不会产生外部碎片,平均只会产生半个块大小内部碎片。
进程中的页称为页,内存中的页称为页框。外存中也进行划分称为块。
页式存储管理由:页及相关概念、地址结构、页表、地址变换机构组成。
地址结构包括:页号、页内偏移。
页表的组成包括:页号、块号。
地址变换是硬件自动完成的;分页机制是对用户完全透明的。
11.描述段式存储管理
这种管理方式考虑到了程序员的感受,以满足方便变成、信息保护和共享、动态增长及动态链接等要求。它按用户进程中的自然段划分逻辑空间,每个段从0开始编址,并分配连续的地址空间。段内连续,段之间可以不连续。
段式存储管理由:分段、段表、地址结构、地址变换机构组成。
段表结构包括:段号,段长,段的起始地址
段地址的组成:段号、段内的偏移。
12.虚拟存储器的定义和特性
定义:基于局部性原理,只需要把程序的一部分装入内存就可运行起来。在执行过程中,程序要访问的信息不在内存,由操作系统将所需的部分调入内存执行。操作系统将暂时不用的内容换出到外存上,空闲空间存放从外存换入的信息。这样操作系统就好像为用户提供了一个比实际内存大得多的存储器。
特性:多次性、对换性、虚拟性
虚拟内存技术的实现需要的硬件支持
1、一定容量的内存和外存 ;2、页表机制;3、中断机构,产生中断;4、地址变换机构
13.页面置换算法
最佳置换算法:最优,但由于无法预测未来,只能是理想中的算法,可以用来作为参考评估其他算法的性能。
先进先出算法:最公平,但会出现belady现象。
最近最久未用算法(LRU):算法原理是,如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小。算法性能好,需要寄存器和堆栈的支持。
时钟置换算法clock算法(又称为NRU最近未用算法):时钟轮转法将所有的页组成一个圆,圆心的指针指向下一个要被置换的页面,置换前检查使用位,如果使用位为1,同样将其使用位置为0,随后将顺指针旋转,检查下一个页面,直到发现某页的使用位为0,将此页置换出内存。
14.什么是页表和快表,有什么作用?
页表指出逻辑地址中的页号与所占主存块号的对应关系。作用:页式存储管理在用动态重定位方式装入作业时,要利用页表做地址转换工作。快表就是存放在高速缓冲存储器的部分页表。它起页表相同的作用。由于采用页表做地址转换,读写内存数据时CPU要访问两次主存。有了快表,有时只要访问一次高速缓冲存储器,一次主存,这样可加速查找并提高指令执行速度。
15.地址翻译的过程?
TLB->页表(TLB不命中)->Cache->主存(Cache不命中)->外存
1.什么是文件,什么是文件系统
文件是以计算机硬盘为存储载体存储在计算机上的信息的集合。用户进行输入输出是以文件为基本单位的,保存在文件中以便长期存储以及将来的访问。
文件系统:操作系统中负责管理和存储文件信息的软件机构称为文件管理系统。三个部分组成:与文件有关的软件、被管理文件、实施文件管理所需要的数据结构。
描述文件的组成
数据项、记录、文件
2.文件共享的方式?
硬链接和软链接方式
3.文件保护方式有哪些?
文件保护通过:口令保护、加密保护、访问控制等方式来实现。
4.文件分配方式
连续分配、链接分配、索引分配。
5.文件存储空间管理
空闲表法、空闲链表法、位示图法、组成链接法;
6.描述磁盘调度算法并比较
先来先服务算法,最简单最公平,少量请求性能好,大量请求接近随机调度。
最短寻找时间优先:比先来先服务性能好,但会饥饿
扫描算法:性能好,避免了饥饿,但对远离磁头的一端不公平
循环扫描:消除了两段请求的不公平。
7.在磁盘上读写操作需要哪几部分时间
寻道时间、延迟时间、传输时间。寻道时间占用的时间是最长的。
8.存储一个文件时、当一个磁道存储不下,剩下部分是存在同一个盘面的不同磁道好,还是存在同一个柱面的不同盘面好。
后者更好,因为寻道耗时间。
1.四种IO控制方式
1、直接控制方式。CPU每读取一个字,就要对外设状态进行检查,知道确定这个字已经在IO控制器的数据寄存器里。这是由于CPU的高速性和IO设备的低速性,致使CPU大部分时间都处于等到IO设备的循环,造成CPU资源的极大浪费。更深层的原因是CPU没有采用中断机构,导致IO设备无法向CPU报告它已经完成了一个字符的输入。
2、中断驱动方式。CPU在向IO设备发出读命令后,可以转去做其它的事情,等到IO设备数据就绪,由IO设备主动发出中断请求打断CPU。这样是CPU和设备都可以尽量忙起来。
3、DMA方式。DMA方式基本思想是,在主存和IO设备之间直接开辟数据通路,彻底解放CPU。其特点是基本单位是数据块,所传送的数据是从设备直接送入内存的,或者相反。仅仅在一个或多个数据块传输开始或结束时才需要CPU的干预,这个数据块的传输是在DMA控制器的控制下完成的。
4、通道控制方式。IO通道是指专门负责输入输出的处理机。它可以进一步减少CPU的干预。IO通道与一般处理机的区别是通道指令类型单一,没有自己的内存,通道所执行的通道程序是放在主机的内存中的,也就是说通道与CPU内存共享。IO通道与DMA方式的区别是,DMA方式需要CPU来控制传输的数据块的大小、位置、而通道可自己控制。DMA方式对应一台设备的数据传递,而通道可以控制多台设备与内存交换。
2.IO子系统的层析结构
层次结构由:用户IO层软件、设备独立性软件、设备驱动程序、中断处理程序组成。
3.描述spooling技术和特点
为了缓和CPU的高速性和IO设备的低速性矛盾,引入了脱机输入输出技术。该技术利用专门的外围控制机,将低速IO设备的数据传送到高速磁盘上或者相反。
特点:提高了IO的速度,将独占设备改造成共享设备,实现了虚拟设备的功能
spooling的结构
输入井和输出井、输入缓冲区和输出缓冲区、输入进程和输出进程。