1、考虑到操作系统的各种定义,思考操作系统是否应该包含诸如网页浏览器和邮件程序之类的应用程序。分别论证应该和不应该,并给出支持理由。
应该包含的理由:
- 从简单观点来看,操作系统可包含供应商随“操作系统”订单提供的一切内容。
- 若供应商将网页浏览器和邮件程序作为操作系统一部分提供,那么它们就可属于操作系统。
- 在移动操作系统中,功能不断增加,包含了为应用开发者提供额外服务的中间件等。
- 所以包含网页浏览器和邮件程序等应用也符合操作系统功能扩展的趋势。
不应该包含的理由:
- 更常见的定义是操作系统是计算机上一直运行的程序,即内核。
- 网页浏览器和邮件程序属于应用程序,是用于解决用户特定计算问题的。
- 它们并非操作系统内核的一部分,与操作系统的运行操作并无直接关联。
2、内核模式和用户模式的区别如何作为一种基本的保护(安全)形式发挥作用?
- 内核模式和用户模式的区别通过指定一些可能造成危害的机器指令为特权指令来实现基本保护。
- 硬件只允许在内核模式下执行特权指令,若在用户模式下尝试执行特权指令,硬件不会执行该指令,而是将其视为非法并陷入操作系统。
- 例如,切换到内核模式的指令、I/O控制、定时器管理和中断管理等都是特权指令。
- 这种机制保护了操作系统免受错误用户的影响,也防止了错误用户之间的相互干扰。
3、以下哪些指令应该是特权指令?a. 设置定时器的值。b. 读取时钟。c. 清除内存。d. 发出陷阱指令。e. 关闭中断。f. 修改设备状态表中的条目。g. 从用户模式切换到内核模式。h. 访问I/O设备。
a、c、e、f、g、h
4、一些早期计算机通过将操作系统置于一个既不能被用户作业也不能被操作系统本身修改的内存分区中来保护操作系统。请描述你认为这种方案可能产生的两个问题。
-
系统更新困难:由于操作系统所在内存分区不能被修改,当需要更新操作系统时,无法直接在该分区进行修改和升级,需要复杂的操作来替换整个分区内容或采用其他特殊方法,这会增加系统更新的难度和成本。
-
故障处理不便:如果操作系统在运行过程中出现故障,需要修改某些关键数据或代码来修复问题,但由于该分区不可修改,无法及时对故障进行处理,可能导致系统长时间无法正常运行。
5、区分分布式系统的客户端 - 服务器模型和对等(P2P)模型。
在客户端 - 服务器模型中,一个站点的一个节点(服务器)拥有另一个节点(客户端或用户)想要使用的资源,服务器是瓶颈。而在对等模型中,客户端和服务器没有区别,系统内所有节点都是对等的,每个节点可根据是否请求或提供服务,充当客户端或服务器,服务可由网络中多个分布式节点提供。
6、集群系统与多处理器系统有何不同?属于集群的两台机器要合作提供高可用服务需要什么条件?
- 集群系统与多处理器系统的不同在于,集群系统由两个或多个独立系统(节点)连接在一起组成,每个节点通常是多核系统,属于松耦合;而多处理器系统并非如此。
- 两台属于集群的机器要合作提供高可用服务,需要共享存储,并通过局域网(LAN)或更快的互连方式(如 InfiniBand)紧密连接。
- 同时运行一层集群软件,每个节点能够通过网络监控其他节点。
- 当被监控机器发生故障时,监控机器能接管其存储并重启在故障机器上运行的应用程序。
7、解释如何使用 Linux 内核变量 HZ 和 jiffies 来确定系统自启动以来运行的秒数。
HZ 表示定时器中断的频率,即每秒产生的中断次数; jiffies 表示系统自启动以来发生的定时器中断次数。用 jiffies 的值除以 HZ 的值,即可得到系统自启动以来运行的秒数。
8、直接内存访问(DMA)用于高速I/O设备,以避免增加CPU的执行负载。a. CPU如何与设备接口以协调数据传输?b. CPU如何知道内存操作何时完成?c. 当DMA控制器传输数据时,CPU可以执行其他程序。这个过程会干扰用户程序的执行吗?如果会,请描述会造成哪些形式的干扰。
a. CPU通过设置I/O设备的缓冲区、指针和计数器,将数据传输工作交给设备控制器,由设备控制器直接在设备和主内存之间传输数据。
b. 每个数据块传输完成后,DMA控制器会向CPU发送一个中断信号,告知操作已完成。
c. 当DMA控制器占用内存总线时,CPU会暂时无法访问主内存,但仍可访问其缓存中的数据。这种周期窃取会减慢CPU的计算速度,但总体上卸载数据传输工作到DMA控制器通常会提高系统的整体性能。一般情况下,这种干扰不会对用户程序的执行造成严重影响,只是可能会使程序的执行速度稍有减慢。
9、将以下存储系统按从最慢到最快的顺序排列:a. 硬盘驱动器 b. 寄存器 c. 光盘 d. 主存 e. 非易失性存储器 f. 磁带 g. 高速缓存
f - c - a - e - d - g - b
10、考虑一个对称多处理(SMP)系统。举例说明内存中的数据实际上如何在每个本地缓存中具有不同的值。
- 假设整数A存于硬盘文件B中,在SMP系统里,多个CPU各有本地缓存。
- 当进程1通过CPU1对A进行加1操作时:
- CPU1先把A从硬盘复制到主存。
- 再将A从主存复制到其本地缓存和内部寄存器。
- 在内部寄存器完成加1操作。
- 此时:
- A在CPU1本地缓存中的值为新值。
- 其他CPU本地缓存中A的值仍为旧值。
- 原因:各CPU并行执行,其他CPU尚未更新A的值。
- 结果:数据A在不同本地缓存中出现了不一致的值。

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



