操作系统模糊知识点
目录
2.12.
UNIX操作系统,是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统 8
计算机系统概述
系统调用与库函数的区别?什么时候用到系统调用?
答:系统调用是操作系统的一部分,是内核为用户提供的程序接口,运行在内核空间,许多库函数需要使用系统调用来实现功能。库函数是语言或应用程序的一部分,可以运行在用户空间。未使用系统调用的库函数,其执行效率通常比系统调用的要高,因为使用系统调用需要由用户态转向核心态。
系统调用又称广义指令。由一组系统调用组成叫做程序接口。
GUI和命令接口是给用户用的。GUI是通过调用程序接口(一组系统调用)实现的
用户使用计算机的两种方式?
答:命令接口和程序接口
命令接口直接面向用户直接使用,分为联机命令接口和脱机命令接口。程序接口面向软件,为软件提供系统调用。
什么时候会发生CPU状态由用户态换为核心态,中断相关知识点?
答:发生中断时;系统调用时(异常-陷入)、时钟中断(外中断)、I/O中断(外中断)、整数除0(异常-终止)、缺页故障(异常-故障)。
中断分为内中断和外中断,但是在考试时内中断被称为异常,外中断称为中断。内中断出现在CPU内部,外中断出现在CPU外部。异常(内中断)的具体情况有:试图在用户态下执行特权指令、执行除法指令时发现除数为0、程序请求操作系统内核程序,执行陷入指令(系统调用就是通过陷入指令来完成的,陷入指令不是特权指令);中断(外中断)的具体情况有:时钟中断、I/O中断(打印)。
异常(内中断)分为trap(陷阱,陷入)、fault(故障)、abort(终止)。陷入是程序故意引发来请求内核服务。故障是由错误条件引起的,可能被内核程序修复,内核程序把故障修复后会把CPU使用权还给应用程序,比如缺页故障。终止是由致命错误引起的,CPU无法修复该错误,不再将CPU权限交给应用程序,而是直接终止该应用程序,比如整数除0、非法使用特权指令。
发生中断需要调用中断向量表,查询不同的中断处理程序。中断操作是需要在核心态下运行,注意陷入指令是在用户态下运行。
命令解释程序属于命令接口,面向用户,用户态执行。
**注意:**以上引起CPU状态的改变的事件全部在用户态下发生,但是中断操作是在核心态下进行。用户态到核心态的转换是由硬件中断机制完成。
访管指令与访管中断的区别
答:访管指令引起引起访管中断
CPU状态改变流程
发生中断,数据是如何保存的?
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B6H8MfQI-1627488021406)(media/4b3a2d38504ab2dc5998d6add62e76e7.png)]
用户态和核心态下可以运行的事件
在用户态下运行的事件:取数指令,寄存器置零,读时钟指令,命令解释程序
在核心态下运行的事件:程序状态寄存器(PSW)清零,系统调用的执行,既可以执行特权指令又可以执行非特权指令,除了访管指令的全部指令
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UWkZeZEX-1627488021416)(media/3c7bb457126a96d0d483c1314f1d6e2f.png)]
核心态,用户态,陷入指令的不同叫法
核心态:管态
用户态:目态
陷入指令:trap指令,访管指令,
什么情况下需要向操作系统预定运行时间?
答:通用操作系统使用时间片轮转调度算法,用户运行程序并不需要预先预定运行时间。实时比较强,专用操作系统,比如火箭上的操作系统。
为进程提供系统调用是否是操作系统必须提供的功能?
答:不是。系统调用的目的是为了使系统更安全稳定,防止小白用户错误操作,恶意用户进行非法越权操作。这样导致系统调用过程需要用户态和核心态的切换,降低效率。在专业性比较强、实时性比较高的操作系统中,可不提供系统调用,以换取效率,比如火箭卫星上的系统。
进程管理
一个进程状态发生变化,什么情况下不会影响到另一个进程的变化?
答:阻塞态到就绪态
并发进程失去其封闭性是指?
答:进程有五大特性动态性,并发性,异步性,独立性,结构性。程序封闭性是指进程执行的结果只取决于进程本身,不受外界影响。也就是说,进程在执行的过程中无论是不停地执行,还是走走停停,进程地执行速度都不会改变它的执行结果。失去封闭性后,不同速度下的执行结果不同。
进程是多线程环境中的完整程序?
答:错。进程不等于程序,程序是静态的,进程是动态的,不能混为一谈。进程包含了程序。
C语言程序中的内容及相关数据结构各位于那一段中?正文段、堆段、栈段
答:C语言编写的程序使用内存时一般分为三个段,正文段;堆段;栈段。二进制代码和常量存放在正文段,动态分配的存储区在数据堆段,临时使用的变量在数据栈段。
全局赋值变量 正文段
未赋值的局部变量 栈段
函数调用实参传递值 栈段 有点疑问
用malloc()要求动态分配的存储区 堆段
常数值(如1995,“String”) 正文段
进程的优先级 PCB
PCB与进程的关系?PCB包含有哪些内容?
答:进程是由代码、数据和PCB组成。PCB主要包括进程描述信息、进程控制信息、资源分配清单和处理机相关信息四种。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QQWz6TP6-1627488021426)(media/6db6a41577c47a00643ee9a2288b7199.png)]
资源分配清单和处理机相关信息内容有些不知道是干嘛的
进程三种状态的转变,哪一个是由进程自身决定的?
答:运行态到阻塞态。进程主动调用资源,但资源不足导致阻塞。
降低进程的优先级的合理时机是?进程刚完成I/O操作降低?
答:进程时间片用完,降低其优先级让其他进程被调入进入执行状态。在进程从就绪态转换为运行态时,此时不能降低其优先级,应该等时间片结束再减低。若进程刚完成I/O操作进入就绪队列等待,应该提高优先级让其尽快处理I/O结果。
父进程与子进程的关系?
父进程与子进程可以并发执行?
可以。
父进程与子进程不能共享虚拟地址空间?
不能。父进程可与子进程共享一部分资源,但不能共享虚拟地址空间,在创建子进程时,会为子进程分配资源,如虚拟地址空间。
父进程与子进程有相同的进程控制块?
进程控制块不同。进程控制块(PCB)是进程存在的唯一标识,每个进程都有自己的PCB
父进程与子进程不能同时使用统一临界资源?
不能。
什么调度算法有利于CPU繁忙型作业,而不利于I/O繁忙型的作业。
答:CPU繁忙型作业是指该类作业需要大量的CPU时间进行计算,很少请求I/O操作,因此更符合长作业,对长作业友好地调度算法是FCFS(先来先服务)。I/O繁忙型作业是指CPU处理时,需要频繁地请求I/O操作。
响应时间与响应比
答:
-
响应时间指用户提交请求到系统首次产生响应所用的时间。
-
响应比Rp=;由响应比公式看出要求服务时间越短响应比越高,有利于短作业。
-
周转时间:作业的完成时间 - 作业的提交时间
-
带权周转时间:
-
平均周转时间:(作业1的周转时间+作业2的周转时间+…+作业n的周转时间)/n
-
平均带权周转时间:(作业1的带权周转时间+作业2的带权周转时间+…+作业n的带权周转时间)/n
分时系统的时间片固定,因此用户数越多,响应时间越长
分时操作系统的响应时间与时间片和用户数成正比
UNIX操作系统,是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统
在进程处于临界区时不能进行处理机调度吗?
答:可以。当进程处于临界区时,说明进程正在占用处理机,只要不破坏使用临界资源的规则,就不会影响处理机的调度。比如,通常访问的临界资源可能是慢速的外设(打印机),若在进程访问打印机时,不能进行处理机的调度,则系统的性能将非常差。
再看几个说法:
在进程结束时能进行处理机的调度。 对
创建新进程后能进行处理机调度。 对;
可以是抢占式的操作系统。该说法没说一定,说的是“能”
在系统调用完成并返回用户态时能进行处理机的调度。 对
需要信号量才能是实现的功能有?
答:进程同步,进程互斥,执行的前驱关系
在操作系统中要对并发进程进行同步的原因是?
答:并发进程是异步的。
进程是并发异步执行的,但是有可能需要共同完成一项任务,所以需要同步来对进程进行限制。
进程A和进程B通过共享缓冲区协作完成数据处理,进程A负责产生数据并放入缓冲区,进程B从缓冲区读数据并读出。进程A和进程B之间的制约关系是同步还是互斥?
答:同步和互斥关系。缓冲区是互斥资源。但是进程AB又存在着制约关系,所以是两种关系。
用P,V操作实现进程同步,信号量的初始值为?
答:由用户确定。若期望的消息尚未产生则信号量应该为0,若期望的消息已经存在则信号量的初始值应该设置为一个非0的正整数。
一个进程映像由程序、数据及PCB组成,其中PCB、数据、PCB、和共享程序段哪个必须用可重入编码编写?
答:共享程序段
一个进程因存在互斥信号量mutex上执行V(mutex)操作而导致唤醒另一个进程时,执行V操作后mutex的值为?
答:小于等于0。如果大于0那说明,临界资源还有,不会存在等待的进程,也就不会存在唤醒操作。
若一个系统中共有5个并发进程设计某个相同的变量A,则变量A的相关临界区是由几个临界区构成的?
答:5
管程是什么?
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EHZ2PZy5-1627488021431)(media/a99de7b88d8a36c32b08344c2fd25962.png)]
为了解决信号量机制编程麻烦、易出错的问题引入
管程中signal操作的作用和信号量机制中的V操作相同吗?
答:不同。信号量机制中的V操作一定会改变信号量的值S=S+1,而管程中的signal操作是针对某个条件变量的,若不存在因该条件而阻塞的进程,则signal不会产生任何影响(不会加1)。
若系统有n个进程,则就绪队列中进程的个数最多有①个?阻塞队列中进程的个数最多有②个?
答:①:n-1;②:n
阻塞队列有n个进程是因为发生了死锁。
为禁止两个进程同时进入临界区,同步机制应遵循以下哪几个原则?
答:空闲让进,忙则等待,有限等待,让权等待。
实现临界区互斥的软件实现方法
答:算法一:单标志法;违背空闲让进;
算法二:双标志先检查;违背忙则等待;
算法三:双标志后检查;违背空闲让进,导致“饥饿”现象;
算法四:Peterson算法;遵守其它三个原则,但不能实现让权等待;分三步:①主动争取(双标志),②主动谦让(单标志),③检查对方意愿(两种标志都检测)
最优的是Peterson算法
Peterson方法、swap指令、TestAndSet指令它们的作用分别是什么?
答:Peterson方法:一种实现临界区互斥的软件实现方法。
swap指令:交换两个字的内容;硬件逻辑直接实现,不会被中断。
TestAndSet指令:这条指令是原子操作,即执行该代码时不允许被中断。功能是读出指定标志后把该标志设置为真。硬件逻辑直接实现,不会被中断。
专业名词英文缩写
PC:程序计数器
PSW:程序状态寄存器
PCB:进程控制块
TCB:线程控制块
TLB:块表
DLL:
FCFS:先来先服务
SJF/SPF:短作业优先
SRTN:最短剩余时间优先
HRRN:高响应比优先(Highest Response Ratio Next)
TS/TSL:TestAndSet指令
XCHG:Swap指令