赞
踩
1、操作系统的特点
共享:资源可被多个并发执行的进程使用
并发:可以在同一时间间隔处理多个进程,需要硬件支持
异步:进程走走停停,每次执行的速度不一样,但是要保证进程每次执行结果相同
虚拟:将物理实体映射成为多个虚拟设备
操作系统的组成:驱动程序、内核、接口库、外围
2、操作系统的主要功能:
处理机管理:进程控制、进程同步、进程通信、进程调度
存储器管理:内存分配和回收、内存包含、地址映射(逻辑地址->物理地址)、内存扩充、存储保护
文件管理:文件存储空间管理、目录管理、文件读写保护
设备管理:缓冲管理、设备分配、设备处理(中断设备)
3、操作系统发展过程
单道批处理:内存中只保留一道作业,效率较慢
多道批处理操作系统:运行多个程序同时存在主存中,效率较快
分时操作系统:时间片轮转执行,及时接受和处理,具有交互性
实时操作系统:实时控制、实时信息处理,比如导弹发射,设置截止时间
4、进程和线程的区别
线程是轻量级的进程,进程包含线程。进程有独立的内存空间,不同进程之间不能直接共享其他进程的资源,同一个进程内的线程可以共享进程内存空间;
从开销上,进程切换的开销大于线程切换的开销;进程是资源分配的最小单位,线程是程序执行的最小单位。
5、进程的组成部分:程序段、数据段、PCB
6、进程切换的过程:
▶ ①保持处理机上下文
▶ ②更新PCB
▶ ③把PCB移入相应队列(就绪、阻塞)
▶ ④选择另一个进程并更新其PCB
▶ ⑤更新内存管理的数据结构
▶ ⑥恢复处理机上下文
7、进程通信的方式
▶低级通信方式 PV操作 :P--wait(S)原语 ,申请S资源 ; V--signal(S)原语,释放S资源
▶高级通信方式:以较高效率传输大量数据的通信方式
--共享存储:使用同步互斥工具操作共享空间
--消息传递:进程间以格式化的消息进行数据交换,有中间实体,分为直接和间接两种,底层通过发送消息和 接收消息两个原语实现
--管道通信:两个进程中间存在一个特殊的管道文件,进程的输入输出都通过管道,半双工通信。
8、管程是什么?
它是由一组数据及对这组数据操作的定义组成的模块(类似数据结构?)同一时间只能有一个进程使用管程。管程是互斥使用的,进程释放管程后,需要唤醒申请管程资源的等待队列上的进程。进程只有通过进入管程并使用管程内部的操作才能访问其中数据。
9、进程的五种状态是什么?
创建、就绪、阻塞、执行、终止
10、线程间的同步与通信类型有哪些?
▶互斥锁
▶条件变量
▶信号量机制
11、线程的实现方式有哪几种?
▶内核支持线程(核内切换快、开销小、模式间切换慢)
▶用户级线程(节省模式间切换的开销)
▶混合
12、产生死锁的原因有哪些?
▶对互斥资源的分配不当
▶进程推进的顺序不当
13、解决死锁的办法有哪些?
▶死锁避免:破坏死锁产生的必要条件
▶避免死锁
▶检测死锁
▶解除死锁
14、死锁的产生和避免?
死锁的四个必要条件:
▶互斥条件:资源不能被共享,只能由一个进程使用
▶请求和保持条件:已经得到资源的进程可以再次申请新的资源
▶非剥夺条件:已经分配的资源不能被强制剥夺
▶循环等待条件:系统中多个进程组成环路, 互相等待相邻资源正占用的资源
死锁避免是在系统运行过程中避免死锁的发生。这就要求每当申请一个资源时,系统都会根据一定的算法判断 是否认可这次申请,使得今后一段时间内不会发生死锁。比如银行家算法。
15、死锁与饥饿的区别?
▶都是资源分配问题
▶死锁是等待永远不会释放的资源,而饥饿申请的资源会被释放,只是永远不会分配给自己
▶一旦产生死锁,则陷入死锁的进程一定是多个,陷入互相等待,而饥饿可以只有一个
16、文件控制块包含的内容?
文件指针(上次读写的位置)、文件打开数、文件磁盘位置、文件的访问权限。
17、页面置换算法有?
最近最久未使用、先进先出、最佳置换、时钟,改进时钟
18、批处理作业调度算法有?
先来先服务、最短作业优先、最高响应比优先、多级队列调度
19、进程调度算法?
先进先出、最高优先级、时间片轮转、多级队列反馈
20、磁盘调度算法?
先来先服务、最短寻道时间优先、扫描(电梯算法)、循环扫描算法
21、什么是中断?
中断的目的是为了支持cpu与设备之间的并行操作,指与当前执行的指令无关的事件(外中断)
异常的目的是表示cpu执行指令本身时出现的问题,与当前执行的指令有关的时间(内中断)
22、中断和系统调用的区别?
▶中断是由外设产生,无意的被动的,
▶系统调用是由应用程序请求操作系统提供服务产生,有意的,主动的
▶中断的过程:中断请求--中断响应--断点保护--执行中断服务程序--断电恢复--中断返回
▶系统调用过程:应用程序在用户态执行时请求系统调用,中断是从用户态进入内核态,在内核态执行响应的内核代码
简述操作系统中系统调用过程
系统调用提供了用户程序和操作系统之间的接口,应用程序通过系统调用实现其余 OS 的通信,并取得它
的服务。系统调用不仅可供所有的应用程序使用,而且也可供 OS 本身的其它部分,如命令处理程序。
系统调用的处理步骤(三步):
①首先,将处理机状态由用户态转为系统态;然后由硬件和内核程序进行系统调用的一般性处理,即首先保
护被中断进程的 CPU 环境,将处理机状态字 PSW、程序计数器 PC、系统调用号、用户栈指针以及通用寄
存器内容等压入堆栈;再然后将用户定义的参数传送到指定的地址保存起来。
②其次,分析系统调用类型,转入相应的系统调用处理子程序。(通过查找系统调用入口表,找到相应处理子
程序的入口地址转而去执行它。)
③最后,在系统调用处理子程序执行完后,应恢复被中断的货设置新进程的 CPU 现场,然后返回被中断进程
或新进程,继续往下执行。
23、软中断和硬中断分别是什么?两者的区别是?
▶软中断是指编程异常,程序运行时其他程序对它的中断;由执行中断指令产生,无外部施加中断请求信息,不是随机而是由程序安排好的;不可屏蔽;无需使用中断控制器。
▶硬中断是硬件实现的中断,是程序运行时设备对它的中断。外部事件引起,具有随机性和突发性;可屏蔽;中断号是由中断控制器提供的;
24、TLB是什么?转译后备缓冲器/页表缓存
Translation Lookaside Buffer
作用是在处理器访问内存数据的时候做地址转换,是一个具有并行查询能力的特殊高速缓存寄存器,里面存放了一些记录虚拟地址和物理地址映射关系的文件。当应用程序访问一个虚拟地址时,会从TLB中查询出对应的物理地址,然后访问物理地址。
25、程序转入的方式有哪些?
▶绝对装入:在编译时就知道程序要驻留在内存的物理地址,编译程序产生含有物理地址的目标代码,不适合多道程序设计
▶可重定位装入:根据内存当前情况,将装入模块装入到内存的适当位置,地址变换通常在装入时一次完成,之后不再改变,也称为静态重定位。
▶动态运行装入:允许程序在运行时在内存中移动位置,把装入模块转入到内存后的所有的地址都是相对地址,在程序执行过程中每当访问到相应指令或数据时,才将要访问的程序和数据的相对地址转换为物理地址。依靠硬件地址变换机构。
26、程序的链接方式有哪些?
▶静态链接:在程序运行之前,先把各个目标模块及所需库链接为一个完整的可执行程序,以后不拆开。
▶转入时动态链接:将应用程序编译后所得到的一组目标模块在装入内存时采用边装入边链接的链接方式。
▶运行时动态链接:知道程序运行过程中需要的一个模块,才对这些模块进行链接。
27、交换技术、覆盖技术、以及两者的区别?
▶覆盖技术:把一个大的程序划分为一系列覆盖,每个覆盖是一个相对独立的程序单位,把程序执行时并不要求同时装入内存的覆盖组成一组,成为覆盖段,这个覆盖段分配到同一个存储区域,这个存储区域成为一个覆盖区,它与覆盖段一一对应。覆盖段的大小由覆盖段中的最大覆盖来确定。
▶交换技术:把暂时不用的某个程序及数据部分从内存移动到外存中去,以便腾出必要的内存空间;或者把指定的程序和数据从外存读到相应的内存中,并将控制权交给他,让其在系统上运行的一种内存扩充技术。处理器的中级调度是采用交换技术。
▶区别:与覆盖技术相比,交换技术不要求程序员给出程序段之间的覆盖结构;
交换技术主要在进程和作业之间进行,覆盖技术主要在同一个进程或作业中进行;
覆盖技术只能覆盖于覆盖程序段无关的程序段,交换进程由换出和换入两个过程完成;
28、拼接技术?
▶分区管理下,系统运行一段时间后,内存会出现相当一部分的碎片,拼接技术就是解决碎片问题的方法;
即将存储器中所有已分配分区移动到主存的一端,使本来分散的多个空闲区连成一个大的空闲区=将多分散的小分区拼接成一个大分区的方法
29、内部碎片和外部碎片
▶内部碎片:分配给作业的存储空间中未被利用的部分。
▶外部碎片:系统中无法利用的小存储块,比如通过动态内存分配技术从空闲内存区上分配内存后剩下的那部分内存块。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。