81、实现计算机间文件传输程序应使用哪种套接字类型?用于定期测试网络中另一台计算机是否在线的程序应使用哪种套接字类型?请解释你的答案。
-
实现计算机间文件传输程序应使用面向连接的 TCP 套接字。
因为文件传输需要保证数据的完整性和顺序性,TCP 提供可靠的、面向连接的通信,能确保数据准确无误地传输,避免数据丢失或乱序。 -
用于定期测试网络中另一台计算机是否在线的程序应使用无连接的 UDP 套接字。
因为这类程序只需简单地发送少量数据来测试连接,UDP 开销小、速度快,不需要建立和维护连接,能更高效地完成测试任务。
82、你会将 Linux 线程归类为用户级线程还是内核级线程?请用适当的论据支持你的答案。
Linux 线程属于内核级线程。 多数现代操作系统都为线程提供内核支持,Linux 是其中之一,且在支持线程的操作系统里,由操作系统调度的是内核级线程,所以 Linux 线程是内核级线程。
此外,像 Linux 这类采用一对一模型的系统,使用系统竞争范围(SCS)来调度线程,这也是内核级线程调度的方式,进一步证明 Linux 线程是内核级线程。
83、在 Linux 中,共享库执行许多对操作系统至关重要的操作。将这些功能置于内核之外有什么优势?是否有任何缺点?请解释你的答案。
-
优势 :
1. 模块化 :共享库可在运行时动态加载和卸载,内核无需提前知晓要加载的模块,提高了系统的灵活性和可扩展性。
2. 降低复杂度 :避免内核过于庞大和复杂,减少内核出错的可能性,提高系统稳定性。
3. 便于维护和更新 :共享库的修改和更新不影响内核,可独立进行。 -
缺点 :
1. 性能开销 :调用共享库可能涉及用户态和内核态的切换,增加了系统开销。
2. 兼容性问题 :不同版本的共享库可能存在兼容性问题,影响应用程序的正常运行。
84、Linux操作系统的目录结构可能包含对应几种不同文件系统的文件,包括Linux的/proc文件系统。支持不同文件系统类型的需求会如何影响Linux内核的结构?
- Linux使用可加载内核模块 ,主要用于支持设备驱动程序和文件系统。
- 支持不同文件系统类型的需求会促使内核采用模块化设计。
- 通过 可加载内核模块 ,可以灵活地添加对新文件系统的支持。
- 无需修改内核的核心部分,这样既保证了内核的稳定性,又能满足对不同文件系统的支持需求。
85、Windows 属于哪种类型的操作系统?请描述它的两个主要特性。
- Windows 属于个人计算机(PC)操作系统。
- 其两个主要特性为:
- 一是支持复杂游戏、商业应用等多种类型的软件,能满足用户多样化的使用需求;
- 二是具有方便的图形用户界面,用户可以轻松地与计算机进行交互来执行程序。
86、描述Windows系统的启动过程。
Windows PC 启动流程
Windows PC 的启动始于硬件通电,固件从 ROM 开始执行。旧机器使用 BIOS,现代系统使用 UEFI,它更快、更通用且能更好利用当代处理器功能。
固件阶段
固件运行加电自检(POST)诊断,识别并初始化系统连接的许多设备,构建高级配置和电源接口(ACPI)描述,然后找到系统磁盘,加载 Windows bootmgr 程序并执行。
- 休眠状态 :若机器处于休眠状态,接下来加载
winresume程序,从磁盘恢复运行系统,继续执行到休眠前的状态。 - 关机状态 :若机器已关机,
bootmgr进一步初始化系统,然后加载winload。
系统加载阶段
winload 加载以下核心组件:
-
hal.dll(硬件抽象层) - 内核(
ntoskrnl.e

最低0.47元/天 解锁文章

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



