大家好,又见面了,我是你们的朋友全栈君。
SDU考试特别提醒:
整无语了,遇到hmb老师出题就躺平了吧。八个论述两个计算(死锁检测、硬盘访问),论述题感觉像考研题,基本是结合xx谈谈xx这样。
分数直接爆炸,心累了,呜呜。
操作系统(概念)
操作系统也叫作内核kernel,是一直运行在计算机上,控制和管理整个计算机系统的软硬件资源,合理地组织、调度计算机的工作与资源分配,为用户和其他软件提供方便接口与环境的程序集合。操作系统是最基本的系统软件。
多处理器系统的主要优点:增加吞吐量、规模经济、增加可靠性
人工操作→批处理系统→多道批处理系统→分时系统→实时系统→网络与分布式系统
操作系统提供的接口(用户能使用的接口):
- 命令接口,又分为联机命令接口(适用于分时或实时操作系统)、脱机命令接口(适用于批处理系统)
- 程序接口,由一组系统调用(也叫广义指令)组成,用户使用系统调用请求操作系统为其提供服务
进程是执行的程序。操作系统负责:在CPU上调度进程和线程、创建和删除用户进程和系统进程、挂起和重启进程、提供进程同步机制、提供进程通信机制
-
多道分时环境下,多用户同时使用一个系统可能导致哪些安全问题?
问题①:两个用户同时访问并修改同一个文件,会导致先提交的用户的修改内容被覆盖。
问题②:如果有用户恶意修改操作系统,可能导致整个系统出错,所有用户都无法正常使用。
-
中断有何作用?陷阱与中断有何区别?
现代操作系统是中断驱动的,操作系统通过中断接管CPU,协调不同设备和进程的并发运行,处理出错的程序,响应请求等等。陷阱是指令执行过程中在处理机内部发生的事件,中断是来自处理机外部的请求事件。
-
用户能否故意制造中断?这样做有什么目的?
能。用户通过中断(如访管指令)请求操作系统提供服务,使操作系统转换为核心态,实现输入/输出等操作。
-
若计算机不支持硬件操作特权模式,能否为其构建安全的操作系统?为什么?
不能。不支持硬件操作特权模式,意味着操作系统与普通程序的权利没有区别,计算机上运行的所有程序都能执行特权指令,甚至篡改与操作系统运行有关的文件,给系统安全带来极大的隐患。
-
操作系统提供的服务和功能可以分为哪两大类,有什么区别?
一类服务是为了满足用户使用的需要,如用户界面、I/O操作等,这些服务方便了程序员和用户的使用;另一类服务是为了确保操作系统的安全和效率,如资源分配、保护与安全等。
-
微内核设计有哪些优缺点?
优点:降低了内核的复杂度,有效地分离了内核与服务、服务与服务,各部分可以独立优化;容易移植,可靠性高;如果运行的一个服务出错,操作系统的其他部分不受影响。
缺点:需要在用户态和内核态之间频繁切换,影响性能。
进程
-
长期、中期、短期调度之间的区别是什么
长期调度:从磁盘的缓冲池中选择进程装入内存,等待执行
短期调度:从内存中的就绪队列中选择进程,为其分配处理机
中期调度:将内存中的进程换出到磁盘中,该进程稍后可以再被换入内存,从中断处继续执行
-
描述内核在两个进程之间进行上下文切换的过程
内核先将处理机上下文(程序计数器和其他寄存器的值)保存到旧进程的PCB中,并更新PCB的状态信息,将PCB移入响应的队列;然后更新新进程的PCB信息,借助新进程的PCB恢复处理机上下文,继续执行。
-
下面设计的优缺点是什么?系统层次和用户层次都要考虑
-
同步和异步通信
同步通信:系统层次,同步通信由于阻塞等待而占用了系统资源,效率较低。用户层次,同步通信保证了用户间通信的实时同步性,提高了用户体验。
异步通信:系统层次,系统能够通过异步通信高效率地与多个对象进行通信。用户层次,从发送消息到收到回复之间有一段等待时间,且难以预知进程收到消息的时刻,可能导致错误。
-
自动和显式缓冲
自动缓冲:系统层次,自动缓冲占用了大量系统资源。用户层次,自动缓冲使用方便,发送进程发消息时基本可以顺利即时发出,很少或不会被阻塞。
显式缓冲:系统层次,占用资源较少。用户层次,发出消息时会被阻塞一段时间。
-
复制传送和引用传送
复制传送:系统层次,传送时不允许修改参数,保证了安全性和通信传递的一致性。用户层次,使用起来不够灵活,功能不够强大。
引用传送:系统层次,传送时允许修改参数,增加了程序的不确定性。用户层次,使用方便,允许程序员实现一个集中式应用程序的分布式版本。
-
固定大小和可变大小消息
固定大小:系统层次,系统实现起来比较简单,处理方便。用户层次,编写代码的难度提高,不够灵活。
可变大小:系统层次,系统实现变得复杂和困难。用户层次,编写代码简单灵活,空间能够充分利用。
-
-
描述线程库进行用户级线程上下文切换时采取的措施
用户级线程运行在内核提供的虚拟处理器LWP上。发生上下文切换时,内核会再分配一个LWP给线程用于执行upcall指令,运行切换程序,保存线程的状态(寄存器、栈空间等)。执行完毕后,释放线程原有的LWP,再将新的LWP用于运行下一个线程。
进程调度
调度程序区分I/O密集型进程和CPU密集型进程的意义是什么?
CPU密集型程序的运行时间长,等待时间短;I/O密集型程序的运行时间短,等待时间长。如果调度程序的安排不合理,可能导致CPU密集型程序运行时有大量I/O密集型程序就绪堵塞,或导致大量I/O密集型程序等待使用设备,CPU空闲。合理调度两种进程就能提高CPU利用率,降低等待时间。
同步
死锁
后面的没太多时间记了。虚拟内存和文件I/O总共应该是考了2-3个大题,面向题目看一看就可。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/154537.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...