1、掌握操作系统的概念和操作系统结构。
操作系统(Operating System, OS)是计算机系统中的核心系统软件,负责管理和控制计算机系统中的硬件和软件资源,合理地组织计算机工作流程和有效地利用资源,在计算机与用户之间起接口的作用。操作系统为用户提供的接口表现形式一般为:命令、菜单、窗口之类的,而操作系统为应用程序提供的接口为API。
2、掌握操作系统的进程管理,包括进程概念、进程调度、同步及死锁处理。
进程概念
处理机是计算机系统的核心资源。操作系统的功能之一就是处理机管理。随着计算机的迅速发展,处理机管理显得更为重要,这主要由于计算机的速度越来越快,处理机的充分利用有利于系统效率的大大提高;处理机管理是整个操作系统的重心所在,其管理的好坏直接影响到整个系统的运行效率;而且操作系统中并发活动的管理和控制是在处理机管理下实现的,处理机管理集中了操作系统中最复杂的部分,它设计的好坏关系到整个系统的成败。
进程是处理机管理中最基本的、最重要的概念。进程是系统并发执行的体现。由于在多道程序系统中,众多的计算机用户都以各种各样的任务,随时随地争夺使用处理机。为了动态地看待操作系统,则以进程作为独立运行的基本单位,以进程作为分配资源的基本单位,从进程的角度来究操作系统。因此,处理机管理也被称为进程管理。处理机管理的功能就是组织和协调用户对处理机的争夺使用,把处理机分配给进程,对进程进行管理和控制,最大限度也发挥处理机的作用。
由进程运行的间断性,决定了进程至少具有以下三种状态:
(1) 就绪状态。当进程分配了除 CPU 以外的所有必要的资源后,只要能再获得处理机,便能立即执行,把这时的进程状态称为就绪状态。在一个系统中,可以有多个进程同时处于就绪状态,通常把它们排成一个队列,称为就绪队列。
(2) 执行状态指进程已获得处理机,其程序正在执行。在单处理机系统中,只能有个进程处于执行状态。
(3) 阻塞状态指进程因发生某事件(如请求、I/O、申请缓冲空间等)而暂停执行时的状态,亦即进程的执行受到阻塞,故称这种暂停状态为阻塞状态,有时也称为“等待”状态,或“睡眠”状态。通常将处于阻塞状态的进程排成一个队列,称为阻塞队列。
具有挂起操作的进程状态的演变情况如下。
同步
进程同步定义为:把异步环境下的一组并发进程因直接制约而互相发送消息而进行互相合作、互相等待,使得各进程按一定的速度执行的过程称为进程同步。也就是说进程之间是异步执行的,同步即是使各进程按一定的制约顺序和速度执行。
进程调度
进程调度即处理器调度(又称上下文转换),它的主要功能是确定在什么时候分配处理器,并确定分给哪一个进程,即让正在执行的进程改变状态并转入就绪队列的队尾,再由调度原语将就绪队列的队首进程取出,投入执行。
引起进程调度的原因有以下几类:
(1) 正在执行的进程执行完毕。
(2) 执行中的进程自己调用阻塞原语将自己阻塞起来进入睡眠状态。
(3) 执行中的进程调用了 P 原语操作,从而因资源不足而阻塞;或调用 V 原语操作激活了等待资源的进程队列。
(4) 在分时系统中,当一进程用完一个时间片。
(5) 就绪队列中某进程的优先级变得高于当前执行进程的优先级,也将引起进程调度。
进程调度的方式有两类:剥夺方式与非剥夺方式。所谓非剥夺方式是指,一旦某个作业或进程占用了处理器,别的进程就不能把处理器从这个进程手中夺走,直到该进程自己因调用原语操作而进入阻塞状态,或时间片用完而让出处理机;剥夺方式是指,当就绪队列中有进程的优先级高于当前执行进程的优先级时,便立即发生进程调度,转让处理机。
进程调度的算法是服务于系统目标的策略,对于不同的系统与系统目标,常采用不同的调度算法:
(1) 先来先服务(First Come and First Serverd, FCFS)调度算法,又称先进先出(First In and First Out, FIFO)。就绪队列按先来后到原则排队。
(2) 优先数调度。优先数反映了进程优先级,就绪队列按优先数排队。有两种确定优先级的方法,即静态优先级和动态优先级。静态优先级是指进程的优先级在进程开始执行前确定,执行过程中不变,而动态优先级则可以在进程执行过程中改变。
(3) 轮转法(Round Robin)。就绪队列按 FCFS 方式排队。每个进程执行一次占有处理器时间都不超过规定的时间单位(时间片)若超过,则自行释放自己所占有的 CPU 而排到就绪队列的末尾,等待下一次调度。同时,进程调度程序又去调度当前就绪队列中的第个进程。
死锁
进程管理是操作系统的核心,在进程管理的实现中,如果设计不当,会出现一种尴尬的局面一一死锁。
当若干个进程互相竟争对方已占有的资源,无限期地等待,不能向前推进时会造成“死锁”。例如,P1 进程占有资源 R1, P2 进程占有资源 R2, 这时,P1 又需要资源 R2, P2 也需要资源 R1, 它们在等待对方占有的资源时,又不会释放自己占有的资源,因而使双方都进入了无限等待状态。
死锁是系统的一种出错状态,它不仅会浪费大量的系统资源,甚至还会导致整个系统的崩溃,所以死锁是应该尽量预防和避免的。
(1) 死锁条件。产生死锁的主要原因是供共享的系统资源不足,资源分配策略和进程的推进顺序不当。系统资源既可能是可重复使用的永久性资源,也可能是消耗性的临时资源。产生死锁的必要条件是:互斥条件、保持和等待条件、不剥夺条件和环路等待条件。
(2) 解决死锁的策略。处于死锁状态的进程不能继续执行但又占用了系统资源,从而阻碍其他作业的执行。
解决死锁有两种策略:一种是在死锁发生前采用的预防和避免策略;另一种是在死锁发生后采用的检测与恢复策略。
死锁的预防主要是通过打破死锁产生的 4 个必要条件之一来保证不会产生死锁。采用的死锁预防策略通常有资源的静态分配法或有序分配法,它们分别打破了资源动态分配条件和循环等待条件,因此不会发生死锁。但这样做会大大降低系统资源的利用率和进程之间的并行程度。
死锁避免策略,则是在系统进行资源分配时,先执行一个死锁避免算法(典型的如银行家算法),以保证本次分配不会导致死锁发生。由于资源分配很频繁,因此死锁避免策略要耗费大量的 CPU 和时间。
3、掌握内存管理,包括内存管理策略和虚拟内存管理。
存储管理主要是指对内存储器的管理,负责对内存的分配和回收、内存的保护和内存的扩充。存储管理的目的是尽量提高内存的使用效率。存储管理的机制经历了多次变迁,由以前的单一连续区管理到分区存储管理再发展为段页式管理。目前前两种技术已逐步被淘汰,下面我们将详细解读段页式存储管理。
段页式存储管理
1.页式存储管理
分页的基本思想是把程序的逻辑空间和内存的物理空间按照同样的大小划分成若干页面,并以页面为单位进行分配。在页式存储管理中,系统中虚地址是一个有序对(页号,位移)。系统为每一个进程建立一个页表,其内容包括进程的逻辑页号与物理页号的对应关系、状态等。
为此,在装入作业时,就应在该作业的页表中指出哪些页已在内存储器中,哪些页还没有装入内存。可用一个标志位指示对应页是否在内存储器,可假设标志位为 1 表示该页在内存,而标志位为 0 表示该页尚未装入内存。为了能方便地从磁盘上找到作业信息的副本,故在页表中还可指出每一页副本在磁盘上的位置。
当要装入一个当前需要的页面时,如果内存储器中无空闲块,则可选择一个已在内存储器中的页面,把它暂时调出内存。若在执行中该页面被修改过,则把该页信息重新写回到磁盘上,否则不必重新写回磁盘。当一页被暂时调出内存后,让出的内存空间用来存放当前需要使用的页面。以后再使用被调出的页面时,可用同样的方法调出另一个页面而将其再装入内存。页面被调出或装入之后都要对页表中的相应表目做修改。
当内存中无空闲块时,为了装入一个页面而必须按某种算法从已在内存的页中选择一页,将它暂时调出内存,让出内存空间以存放所需装入的页面,这个工作称为“页面调度”。如何选择调出的页面是很重要的,如果采用了一个不合适的算法,就会出现这样的现象:刚被调出的页面又立即要用,因而又要把它装入,而装入不久又被选中调出,调出不久又被装入,如此反复,使调度非常频繁。这种现象称为“抖动”。一个好的调度算法应减少或避免抖动现象。常用的页面调度算法有:
(1) 最优(OPT)算法。选择不再使用或最远的将来才被使用的页,这是理想的算法,但是难以实现,常用于淘汰算法的比较。
(2) 随机(RAND)算法。随机地选择被淘的页,开销小,但是可能选中立即就要访问的页。
(3) 先进先出算法。选择在内存驻留时间最长的页似乎合理,但可能淘汰掉频繁使用的页。另外,使用 FIFO 算法时,在未给予进程分配足够的页面数时,有时会出现给予进程的页面数增多,缺页次数反而增加的异常现象。FIFO 算法简单,易实现。可以把装入内存储器的那些页的页号按进入的先后顺序排成队列,每次总是调出队首的页,当装入一个新页后,把新页的页号排到队尾。
(4) 最近最少使用(Least Recently Used, LRU)算法。选择离当前时间最近的一段时间内使用得最少的页。这个算法的主要出发点是,如果某个页被访问了,则它可能马上就要被访问;反之,如果某个页长时间未被访问,则它在最近一段时间也不会被访问。
2.段式存储管理
段式存储管理与页式存储管理相似。分段的基本思想是把用户作业按逻辑意义上有完整意义的段来划分,并以段为单位作为内外存交换的空间尺度。
个作业是由若干个具有逻辑意义的段(如主程序、子程序、数据段等)组成。分段系统中,容许程序(作业)占据内存中许多分离的分区。每个分区存储一个程序分段。这样,每个作业需要几对界限地址寄存器,判定访问地址是否越界也就更困难了。在分段存储系统中常常利用存储保护键实现存储保护。分段系统中虚地址是一个有序对(段号,位移)。系统为每个作业建立一个段表,其内容包括段号、段长、内存起始地址和状态等。状态指出这个段是否已调入内存,即内存起始地址指出这个段,状态指出这个段的访问权限。
分段系统的动态地址转换是这样进行的:进程执行时,其段表的首地址已在基本地址寄存器中,执行的指令访问虚存(s, d)(取指令或取操作数)时,首先根据段号 s 査段表,若段已经调入内存,则得到该段的内存起始地址,然后与段内相对地址(段内偏移量 d 相加,得到实地址。如果该段尚未调入内存,则产生缺段中断,以装入所需要的段。
段式虚拟存储管理仍然以段式存储管理为基础,为用户提供比内存实际容量大的虚拟空间。段式虚拟存储管理把作业中的各个分段信息都保留在磁盘上,当作业可以投入执行时,做如下操作:
(1) 首先把当前需要的一段或几段装入内存。
(2) 作业执行时,如果要访问的段已经在内存,则按照“段式存储管理”中的方式进行地址转换;如果要访问的段不在内存中,则产生一“缺段中断”,由操作系统把当前需要的段装入内存。
因此,在段表中应增设段是否在内存的标志以及各段在磁盘上的位置,已在内存中的段仍要指出该段在内存中的起始地址和占用内存区长度。
作业执行要访问的段时,由硬件的地址转换机构査段表。若该段在内存中,则立即把逻辑地址转换成绝对地址;若该段不在内存中,则形成“缺段中断”,由操作系统处理这个中断。
处理的办法是,査内存分配表,找出一个足够大的连续区以容纳该分段,如果找不到足够大的连续区则检査空闲区的总和,若空闲区总和能满足该段要求,那么进行适当移动将分散的空闲区集中;若空闲区总和不能满足该段要求,可把内存中的一段或几段调出,然后把当前要访问的段装入内存中。段被移动、调出和装入后都要对段表中的相应表目做修改。新的段被装入后应让作业重新执行被中断的指令,这时就能找到要访问的段,也可以继续执行下去。
3.段页式存储管理
段页式管理是段式和页式两种管理方法结合的产物,综合了段式组织与页式组织的特点,根据程序模块分段,段内再分页,内存被分划成定长的页。段页式系统中虚地址形式是(段号、页号、页内偏移)。系统为每个进程建立一个段表,为每个段建立一个页表。段页式管理采用段式分配、页式使用的方法,便于动态连接和存储的动态分配。这种存储管理能提高内存空间的利用率。
段式虚拟管理还是以段为单位分配内存空间,整段的调出、装入,有时还要移动,这些都增加了系统的开销。如果按段页式存储管理的方式,把每一段再分成若干页面,那么,每段不必占用连续的存储空间;甚至当内存块不够时,可只将一段中的部分页面装入内存这种管理方式称为“段页式虚拟存储管理”。
段页式虚拟存储管理为每一个装入内存的作业建立一张段表,还要为每一段建立页表。段表中指出该段的页表存放位置及长度,页表中应指出该段的各页在磁盘上的位置以及页是否在内存中,若在内存中则填上占用的内存块号。作业执行时按段号查段表,找到相应的页表再根据页号查页表,由标志位判定该页是否已在内存,若是,则进行地址转换;否则进行页面调度。
段页式虚拟存储管理结合了段式和页式的优点,但增加了设置表格(段表、页表)和査表等开销,段页式虚拟存储器一般只在大型计算机系统中使用。
4、了解存储管理,包括文件系统、文件系统实现、大容量存储结构和 I/O 系统。
文件系统
文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。
文件系统实现
文件系统由三部分组成:文件系统的接口,对对象操纵和管理的软件集合,对象及属性。
从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。
大容量存储结构
I/O 系统
概念I/O系统,英文全称为“Input output system”,中文全称为“输入输出系统”,由输入输出控制系统和外围设备两部分组成,是计算机系统的重要组成部分。在计算机系统中,通常把处理器和主存储器之外的部分称为输入输出系统。
作用:对指定外设进行I/O操作,同时完成许多其他的控制。包括外设编址,数据通路的建立,向主机提供外设的状态信息等。
结构输入输出控制系统:在计算机中对外围设备实施控制的系统。主要功能是:向外围设备发送动作命令、控制输入输出数据的传送、检测外围设备的状态。输入输出设备必须通过该系统同中央处理器和主存储器交换数据。
输入输出控制系统按控制方式分为中央处理器程序控制、直接存储器存取控制、输入输出处理机控制三种。输入输出处理机控制又由通道控制方式和外围处理机控制方式组成。
应用:现代计算机系统中配置了大量的外围设备,即I/O设备。依据它们的工作方式的不同,通常进行如下分类。
(1)字符设备(character device),又叫做人机交互设备。用户通过这些设备实现与计算机系统的通信。它们大多是以字符为单位发送和接受数据的,数据通信的速度比较慢。例如,键盘和显示器为一体的字符终端、打印机、扫描仪、包括鼠标等,还有早期的卡片和纸带输入和输出机。含有显卡的图形显示器的速度相对较快,可以用来进行图像处理中的复杂图形的显示。
(2)块设备(block device),又叫外部存储器,用户通过这些设备实现程序和数据的长期保存。与字符设备相比,它们是以块为单位进行传输的,如磁盘、磁带和光盘等。块的常见尺寸为512~32768B之间。
(3)网络通信设备。这类设备主要有网卡、调制解调器等,主要用于与远程设备的通信。这类设备的传输速度比字符设备高,但比外部存储器低。这种分类的方法并不完备,有些设备并没有包括。例如,时钟既不是按块访问,也不是按字符访问,它所做的是按照预先规定好的时间间隔产生中断。但是这种分类足以使操作系统构造出处理I/O设备的软件,使它们独立于具体的设备。
5、了解系统保护与安全。
保护和安全性要求保护计算机资源,例如CPU,软件,内存等。这扩展到操作系统以及系统中的数据。这可以通过确保操作系统中的完整性,机密性和可用性来完成。该系统必须防止未经授权的访问,病毒,蠕虫等。
保护与安全威胁
威胁是一种本质上是恶意的程序,会对系统造成有害影响。系统中发生的一些常见威胁是-
病毒
病毒通常是嵌入在系统中的一小段代码。它们非常危险,会损坏文件,破坏数据,崩溃系统等。它们还可以通过根据需要进行自我复制而进一步传播。
特洛伊木马
特洛伊木马可以秘密访问系统的登录详细信息。然后,恶意用户可以使用它们以无害的方式进入系统并造成严重破坏。
活板门
活板门是一种安全漏洞,可能会在用户不知情的情况下出现在系统中。恶意人员可以利用它来损坏系统中的数据或文件。
蠕虫
蠕虫可以通过极端利用其资源来破坏系统。它可以生成多个副本,这些副本要求所有资源,并且不允许任何其他进程访问它们。蠕虫可以通过这种方式关闭整个网络。
拒绝服务
这些类型的攻击不允许合法用户访问系统。它使请求不堪重负,使系统不堪重负,无法为其他用户正常使用。
保护和安全方法
可以为不同的计算机系统提供保护和安全性的不同方法是-
认证方式
这涉及识别系统中的每个用户并确保他们是他们声称的身份。操作系统确保所有用户在访问系统之前均已通过身份验证。确保用户真实性的不同方法是:
用户名密码
每个用户都有不同的用户名和密码组合,他们需要正确输入用户名才能访问系统。用户键/用户卡
用户需要将卡打孔到卡槽中,或者使用键盘上的单个键来访问系统。用户属性识别
可以使用的不同用户属性标识包括指纹,视网膜眼等。这些属性标识对于每个用户都是唯一的,并与数据库中的现有样本进行比较。如果存在匹配项,则用户只能访问系统。
一次性密码
这些密码为身份验证提供了很大的安全性。每次用户想要进入系统时,都可以专门为登录生成一次密码。不能多次使用。一次性密码的实现方式有以下几种:
随机数
系统可以要求与预先排列的字母相对应的数字。每次需要登录时,都可以更改此组合。键
硬件设备可以创建与用于登录的用户ID相关的键。该键可以每次更改。