操作系统基础知识练习题详解与.pdfVIP

  • 0
  • 0
  • 约2.09千字
  • 约 3页
  • 2026-01-15 发布于北京
  • 举报

本文由简悦SimpRead转码,原文地址

今天我会带你把《模块三:操作系统基础知识》中涉及的课后练习题,逐一讲解,并给出每个练习

题的解题思路和。

练习题详解

13|操作系统内核:Linux内核和Windows内核有什么区别?

【问题】Unix和MacOS内核属于哪种类型?

【解析】Unix和Linux非常类似,也是宏内核。MacOS用的是XNU内核,XNU是一种混合型内

核。为了帮助你理解,我找了一张MacOS的内核架构图。如下图所示,可以看到是一个叫作

XNU的宏内核。XNU是XisnotUnix的意思,是一个受Unix影响很大的内核。

MacOS内核架构图

14|用户态和内核态:用户态线程和内核态线程有什么区别?

【问题】JVM的线程是用户态线程还是内核态线程?

【解析】JVM自己本身有一个线程模型。在JDK1.1的时候,JVM自己管理用户级线程。这样做缺点非

常明显,操作系统只调度内核级线程,用户级线程相当于基于操作系统分配到进程主线程的时间片,再

次拆分,因此无法利用多核特性。

为了解决这个问题,后来Java改用线程映射模型,因此,需要操作系统支持。在Windows上是1对1

的模型,在Linux上是n对m的模型。顺便说一句,Linux的PThreadAPI创建的是用户级线程,如

果Linux要创建内核级线程有KThreadAPI。映射关系是操作系统自动完成的,用户不需要管。

15|中断和中断向量:Java/JS等语言为什么可以捕获到键盘输入?

【问题】操作系统可以处理键盘按键,这很好理解,但是在开机的时候系统还没有载入内存,为什么可

以使用键盘呢?这个怎么解释?

【解析】主板的一块ROM上往往还有一个简化版的操作系统,叫BIOS(BasicInput/Ouput

System)。在OS还没有接管计算机前,先由BIOS管理机器,并协助加载OS到内存。早期的OS还

会利用BIOS的能力,现代的OS接管后,就会替换掉BIOS的中断向量。

16|Win/Mac/Unix/Linux的区别和联系:为什么Debian第一还这么

多人用?

【问题】林纳斯21岁写出Linux,那么开发一个操作系统的难度到底大不大?

【解析】能在21岁就写出Linux的人定是天赋异禀,林纳斯是参照一个Minix系统写的

Linux内核。如果你对此感,可以参考这个1991年的源代码。

写一个操作系统本身并不是非常。需要了解一些基础的数据结构与算法,硬件设备工作原理。关键

是要有参照,比如部分可以参人的内核。

但是随着硬件、软件技术发展了这么多年,如果想再写一个大家能够接受的内核,是一件非常的事

情。内核的能力在上升,硬件的种类在上升,所以Android和很多后来的操作系统都是拿Linux改装。

总结

操作系统中的程序,除去内核部分,剩下绝大多数都可以称为应用。应用是千变万化的,内核是统一而

稳定的。操作系统分成3层:应用层、内核层、硬件层。因此,内核是连接应用和硬件的桥梁。

内核需要公平的对待每个CPU,于是有了用户态和内核态的切换;为了实现切换,需要中断;为了保护

内存资源,需要划分用户态和内核态;为了更好地使用计算资源,需要划分线程——而线程需要操作系

统内核调度。本模块所讲的内容,还只是对内核理解的冰山一角,后面我们还会从多线程、内存管理、

文件系统、虚拟化的角度,重新审视内核的设计。

最后,我再跟你一下的一点小得:在给你讲解操作系统的过程中,我仿佛也回到了20

世纪70年代那个的时代。在整理操作系统、编程语言、个人电脑领域的大、发明家、企

业家们的故事时,我发现这些程序员,强大的不仅仅是技术和创造力,的还是对时机的把握。我觉

得从这个角度来看,除了要提升自身的技术能力,你也要重视人文知识的学习,这可以帮助你在以后的

工作中做得

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档