Unix/Linux操作系统内核重点内容

作者: 无问o | 来源:发表于2019-11-25 21:19 被阅读0次

    1、UNIX操作系统最根本的功能特征是什么?包括哪些最基本的概念?

    最根本的功能特征:分时多用户和开放性。
    分时多用户包括多个用户多个进程同时在一个系统中运行而且系统资源高度共享、有效协调 —— 并发;
    开放性包括标准化(结构上的一致性),可移植性(应用软件的编码及系统应用接口),可互操作性(保持用户原有的使用习惯和异种机之间的互操作)。

    2、操作系统核心是什么?核心通过什么方式和什么原则向上层应用程序提供了哪些服务?

    操作系统核心:内核(系统调用和实现系统调用的内部算法);
    以函数的形式提供给核外的命令和上层应用系统使用的一组程序,涵盖操作系统的所有功能。是应用程序请求操作系统服务的唯一通道。

    3、 数据缓冲区高速缓冲是建立的基础和原则是什么?要解决的根本问题是什么?他有什么优缺点?

    基础和原则:

    1. 存放有刚使用过的数据尽量长时间地保留在内存中,以便马上还要使用时能在内存中找到;
    2. 需要腾出内存空间时,把很久都未使用过(即最近最少使用)的数据交换到磁盘上去。这些数据马上还要使用的可能性最小。

    解决的根本问题:
    1.磁盘机械运行速度远远大于处理机的运行速度;(缓冲效果)
    2.多进程并发运行,少量的磁盘通道I/O;
    3.数据访问的随机性,磁盘忙闲不均。

    优点:
    1.提供了对磁盘块的统一的存取方法;
    2.消除了用户对用户缓冲区中数据的特殊对齐需要;
    3.减少了磁盘访问的次数,提高了系统的整体I/O 效率;

    缺点:
    1.数据未及时写盘而带来的风险;
    2.额外的数据拷贝过程,大量数据传输时影响性能

    4、中断与例外分别是哪里产生的?他们的根本区别是什么?中断级别是根据什么来划分的?为什么要在系统中设置不同的处理机执行级别?

    中断:来自进程外的时间如外设时钟引起的,发生在两个指令之间,中断服务完毕后从下一条指令开始继续执行。中断服务是由核心中的特殊函数执行不是特殊进程。

    例外:来自进程内部的非期望事件如地址越界,除数为0,发生在一条指令执行过程中,例外时间处理完后重新执行该指令;

    根本区别:中断要保存上下文而例外不保存上下文;

    中断级别是根据什么来划分:中断级别通常是根据中断源的重要性或事件的紧迫程度来划分的。

    为什么要在系统中设置不同的处理机执行级别:用一组特权指令给处理机设置一个执行级,以屏蔽同级和更低级的中断,最大限度的减少其他事件的干扰,使当前任务顺利执行并尽快完成;开放更高级的中断以相应更紧迫的请求。

    5、操作系统中包括了哪些构建原语?他们是如何构建更大的功能模块的?

    构建原语:I/O重定向和管道;

    如何构建更大的功能模块:通过程序内部简单功能划分,程序外部使用原语进行功能重叠和组装。

    6、UNIX的文件系统包括了哪些大的功能模块?什么是本地文件系统?什么是虚拟文件系统?设置虚拟文件系统的优缺点是什么?

    大的功能模块:
    包括本地文件系统ufs,网络文件系统nfs,虚拟文件系统vfs。

    本地文件系统:
    是unix传统的基本文件系统,它通常固定存放在本地机器的存储设备上,任何一种结构形式的文件都必然直接间接和某个本地文件系统相联系。

    虚拟文件系统:
    是整个操作系统的用户界面,他给用户提供了一个统一的文件系统使用接口,避免用户涉及各个子文件系统的特征部分。

    虚拟文件系统优点:
    是用户感觉使用的是一个整体的,比本地机器上实际硬盘空间大得多的文件系统。

    虚拟文件系统缺点:
    是安装文件系统文件系统注册后便在设备上按一定格式建立文件系统,但是此时设备上的文件和节点都还不是可访问的,还不能按照一定的路径名访问其中特定的节点或文件

    7、划分数据块和数据片的目的是什么?

    文件系统的数据块大小:DEV_BSIZE * 2n 即1k、2k、4k、8k、16k ...
    目的:提高传输速度,减少overhead 。

    数据片大小:DEV_BSIZE * 2n 即1k、2k、4k、8k、16k ...
    目的:减少文件尾的碎片浪费。

    8、 资源保护系统以什么方式保护了哪些类型的资源?

    对静态硬资源:包括存贮空间和索引节点,对这类资源的保护主要是通过 quota系统提供的限量机制实现的。

    对动态资源:主要是指临界区资源或独享资源,对这类资源的保护主要是通过上锁机制来实现的。

    9、 逻辑地址和物理地址的区别是什么?他们是怎么转换的?

    逻辑地址(Logical Address):是指由程序产生的与段相关的偏移地址部分。
    物理地址(Physical Address):是指出现在CPU外部地址总线上的寻址物理内存的地址信号,是地址变换的最终结果地址。

    怎么转换:逻辑地址是由页号和页内地址组成的,物理地址是与物理块号和页内地址构成的,逻辑地址向物理地址的转换也就是页号向块号的转换。

    10、文件的i节点有什么样的特点和功能?

    索引节点简称 inode的特征:文件的内部名称(或代号),方便机器操作;每个文件都有一个且只有一个inode与之对应;inode存放文件的静态参数:存放地点、所有者、文件类型、存取权限、文件大小等;每个文件都可以有多个名字,但都映射到同一个inode上;各inode之间以inode号相区别。

    11、进程的三个最基本的进程状态?进程的生命周期中可能要经过哪些过程?

    最基本进程状态:运行态,就绪态,睡眠态。

    运行态到睡眠态,运行态抢占中断,睡眠态到就绪态,就绪态被调度到运行态,运行态调度到就绪态。

    进一步细分,又可分为九种状态:

    ①、 进程在用户态下执行;
    ②、 进程在核心态下执行;
    ③、 进程已经准备好运行,在内存中就绪;
    ④、 进程等待资源,在内存中睡眠;
    ⑤、 进程处于就绪状态,因内存不足,被放在交换区上等待;
    ⑥ 、 进程睡眠等待资源,因内存不足,被换到交换区上等待;
    ⑦、 进程正从核心态返回用户态,但核心抢先于它做了上下文切换,以调度另外一个进程;
    ⑧、 进程处于刚被创建的状态,此时进程既没有处于就绪状态,也没有进入睡眠状态;
    ⑨、 进程执行了系统调用 exit ,处于僵死状态。此时进程刚消亡,并向父进程发送退出状态信息和计时统计信息。

    进程在其生命周期中必然处在这九种状态之一,并且根据运行时间和条件的变化,在这九种状态之间进行转换。

    12:进程状态的划分、状态转换的时机和条件是什么?**

    完整的状态集合:

    (1):进程在用户态下正在执行。
    (2):进程在核心态下正在执行。
    (3):进程未被执行,但处于就绪状态,只要内核调度到它,即可执行。
    (4):进程正在睡眠并驻留在主存中。
    (5):进程处于就绪状态,但对换进程必须把它换入主存,内核才能调度它去执行。
    (6):进程正在睡眠,而且对换进程已把它换到二级存储器,从而为其他进程腾出空间。
    (7):进程正从核心态返回用户态。但内核抢先于它,并做了上下文切换,以调度另一个进程。
    (8):进程刚被创建,处于变迁状态。该进程存在,但还没有就绪,也不在睡眠。这个状态是除进程0以外的所有进程的初始状态。
    (9):进程执行了系统调用exit,处于僵死状态。该进程不再存在,但它留下一个记录,该记录可由其父进程收集,其中含有出口码及一些计时统计信息。僵死状态是进程的最后状态。

    状态转换时机和条件:

    首先利用fork()可创建进程,在内存足够的情况下,将进程放入内存就绪状态等待调度,当有系统程序需要调用该进程时将该进程转入核心态运行。

    当进程完成系统调用时,它可能进入“用户态运行”状态。一段时间后,系统可能中断处理机,进程则再次进入“核心态运行”状态。同时还有可能被抢先,但任何一个进程不能抢先另一个在核心态中运行的进程。

    当等待输入/输出完成时,会进入睡眠状态,知道被唤醒并且换出进入就绪状态。

    假定核心正在执行多个进程,但它们不能同时装入主存,,则需要就绪且换出状态实现对换机制。

    9种进程状态转换图

    13:文件系统中的目录结构是什么,这种结构对文件系统有什么影响和限制?

    目录是使文件系统具有树形结构的那些文件,目录在文件名到索引节点号的转换中扮演了重要角色。

    目录也被当作文件进行处理,一个目录文件的结构为表状结构,其中通常包含有若干表项,称为目录项,这些目录项既可以是普通文件的入口,也可以是子目录的入口。

    每一个目录项中通常包含两部分内容: 文件的 i 节点号、文件名。其又分为定长与变长。定长目录项在算法实现方面比较简单,在使用灵活方面都有所不便,并且可能因许多目录项名字长度不足14字符面有空间浪费。变长目录结构增加了算法复杂性和工作量,通常用在硬件 性能较高的大型系统中。

    14:进程调度的基本原则和方式是什么?时间片的设定对系统效率的影响是什么?

    进程调度的基本原则是改善CPU利用率,提高系统运行与进程执行效率。

    进程调度的基本方式:

    把每一次硬件时钟中断称为一个时钟“滴答”,由若干个时钟滴答构成一个时间片。 核心给每一个用户进程分配一个时间片,当该进程的时间片用完后,核心抢先该进程并调度另外一个进程运行。一段时间以后,核心又会重新调度该进程继续运行下去。以此方式,核心让各个进程轮流运行。 核心进程的运行:或者运行在不可被抢先的状态下、或者睡眠在某个中断级别上。

    时间片如果设定的太小,系统会频繁切换进程进行运行,切换花费的时间较多,对于大作业任务不友好。时间片如果设定的太大,进程等待时间就越多,对小作业任务不友好。所以选择合适的时间片大小能够大大提升系统效率。

    参考书籍:《UNIX操作系统设计》,人民邮电出版社
    欢迎纠正与修改。

    相关文章

      网友评论

        本文标题:Unix/Linux操作系统内核重点内容

        本文链接:https://www.haomeiwen.com/subject/mfxswctx.html