操作系统面试整理

2.5 说说软链接和硬链接的区别。

参考回答

  1. 定义不同

    软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。

    硬链接就是一个文件的一个或多个文件名。把文件名和计算机文件系统使用的节点号链接起来。因此我们可以用多个文件名与同一个文件进行链接,这些文件名可以在同一目录或不同目录。

  2. 限制不同

    硬链接只能对已存在的文件进行创建,不能交叉文件系统进行硬链接的创建;

    软链接可对不存在的文件或目录创建软链接;可交叉文件系统;

  3. 创建方式不同

    硬链接不能对目录进行创建,只可对文件创建;

    软链接可对文件或目录创建;

  4. 影响不同

    删除一个硬链接文件并不影响其他有相同 inode 号的文件。

    删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)。

2.6 说说静态库和动态库怎么制作及如何使用,区别是什么。

参考回答

静态库的制作:

gcc hello.c  -c //这样就生成hello.o目标文件 ar rcs libhello.a  hello.o//生成libhello.a静态库

静态库的使用:

gcc main.c -lhello -o staticLibrary//main.c和hello静态库链接,生成staticLibrary执行文件 /*     main.c:是指main主函数     -lhello:是我们生成的.a 文件砍头去尾(lib不要 .a也不要)前面加-l     -L:是指告诉gcc编译器先从-L指定的路径去找静态库,默认是从/usr/lib/ 或者  /usr/local/lib/ 去找。     ./:是指当前路径的意思     staticLibrary:是最后想生成的文件名(这里可随意起名字) */

动态库的制作:

gcc -shared -fpic hello.c -o libhello.so -shared 指定生成动态库 -fpic :fPIC选项作用于编译阶段,在生成目标文件时就得使用该选项,以生成位置无关的代码。

动态库的使用:

gcc main.c -lhello -L ./ -o dynamicDepot /*     main.c:是指main主函数     -lhello:是我们生成的.so 文件砍头去尾(lib不要 .so也不要)前面加-l     -L:是指告诉gcc编译器先从-L指定的路径去找静态库,默认是从/usr/lib/ 或者 /usr/local/lib/ 去找。     ./:是指当前路径的意思     dynamicDepot:是最后想生成的文件名(这里可随意起名字) */

区别:

  1. 静态库代码装载的速度快,执行速度略比动态库快。

  2. 动态库更加节省内存,可执行文件体积比静态库小很多。

  3. 静态库是在编译时加载,动态库是在运行时加载。

  4. 生成的静态链接库,Windows下以.lib为后缀,Linux下以.a为后缀。生成的动态链接库,Windows下以.dll为后缀,Linux下以.so为后缀。

2.8 说说什么是大端小端,如何判断大端小端?

参考回答

小端模式的有效字节存储在低的存储器地址。小端一般为主机字节序;常用的X86结构是小端模式。很多的ARM,DSP都为小端模式。

大端模式的有效字节存储在低的存储器地址。大端为网络字节序;KEIL C51则为大端模式。

有些ARM处理器还可以由硬件来选择是大端模式还是小端模式。

如何判断:我们可以根据联合体来判断系统是大端还是小端。因为联合体变量总是从低地址存储。

int fun1(){  
    union test{   
        char c;   
        int i; 
    };  
    test t; t.i = 1;  
    //如果是大端,则t.c为0x00,则t.c != 1,反之是小端  
    return (t.c == 1);  
}  

2.9 说说进程调度算法有哪些?

参考回答

  1. 先来先服务调度算法

  2. 短作业(进程)优先调度算法

  3. 高优先级优先调度算法

  4. 时间片轮转法

  5. 多级反馈队列调度算法

答案解析

  1. 先来先服务调度算法:每次调度都是从后备作业(进程)队列中选择一个或多个最先进入该队列的作业(进程),将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。

  2. 短作业(进程)优先调度算法:短作业优先(SJF)的调度算法是从后备队列中选择一个或若干个估计运行时间最短的作业(进程),将它们调入内存运行。

  3. 高优先级优先调度算法:当把该算法用于作业调度时,系统将从后备队列中选择若干个优先权最高的作业装入内存。当用于进程调度时,该算法是把处理机分配给就绪队列中优先权最高的进程

  4. 时间片轮转法:每次调度时,把CPU 分配给队首进程,并令其执行一个时间片。时间片的大小从几ms 到几百ms。当执行的时间片用完时,由一个计时器发出时钟中断请求,调度程序便据此信号来停止该进程的执行,并将它送往就绪队列的末尾;然后,再把处理机分配给就绪队列中新的队首进程,同时也让它执行一个时间片。

  5. 多级反馈队列调度算法:综合前面多种调度算法。

在这些调度算法中,有抢占式和非抢占式的区别。

  1. 非抢占式优先权算法 在这种方式下,系统一旦把处理机分配给就绪队列中优先权最高的进程后,该进程便一直执行下去,直至完成;或因发生某事件使该进程放弃处理机时,系统方可再将处理机重新分配给另一优先权最高的进程。这种调度算法主要用于批处理系统中;也可用于某些对实时性要求不严的实时系统中。

  2. 抢占式优先权调度算法 在这种方式下,系统同样是把处理机分配给优先权最高的进程,使之执行。但在其执行期间,只要又出现了另一个其优先权更高的进程,进程调度程序就立即停止当前进程(原优先权最高的进程)的执行,重新将处理机分配给新到的优先权最高的进程。因此,在采用这种调度算法时,是每当系统中出现一个新的就绪进程i 时,就将其优先权Pi与正在执行的进程j 的优先权Pj进行比较。如果Pi≤Pj,原进程Pj便继续执行;但如果是Pi>Pj,则立即停止Pj的执行,做进程切换,使i 进程投入执行。显然,这种抢占式的优先权调度算法能更好地满足紧迫作业的要求,故而常用于要求比较严格的实时系统中,以及对性能要求较高的批处理和分时系统中。

区别:

非抢占式(Nonpreemptive):让进程运行直到结束或阻塞的调度方式,容易实现,适合专用系统,不适合通用系统。 抢占式(Preemptive):允许将逻辑上可继续运行的在运行过程暂停的调度方式可防止单一进程长时间独占,CPU系统开销大(降低途径:硬件实现进程切换,或扩充主存以贮存大部分程序)

2.10 简述操作系统如何申请以及管理内存的?

参考回答

操作系统如何管理内存:

  1. 物理内存:物理内存有四个层次,分别是寄存器、高速缓存、主存、磁盘。

    寄存器:速度最快、量少、价格贵。

    高速缓存:次之。

    主存:再次之。

    磁盘:速度最慢、量多、价格便宜。

    操作系统会对物理内存进行管理,有一个部分称为内存管理器(memory manager),它的主要工作是有效的管理内存,记录哪些内存是正在使用的,在进程需要时分配内存以及在进程完成时回收内存。

  2. 虚拟内存:操作系统为每一个进程分配一个独立的地址空间,但是虚拟内存。虚拟内存与物理内存存在映射关系,通过页表寻址完成虚拟地址和物理地址的转换。

2.11 简述Linux系统态与用户态,什么时候会进入系统态?

参考回答

  1. 内核态与用户态内核态(系统态)与用户态是操作系统的两种运行级别。内核态拥有最高权限,可以访问所有系统指令;用户态则只能访问一部分指令。

  2. 什么时候进入内核态:共有三种方式:a、系统调用。b、异常。c、设备中断。其中,系统调用是主动的,另外两种是被动的。

  3. 为什么区分内核态与用户态:在CPU的所有指令中,有一些指令是非常危险的,如果错用,将导致整个系统崩溃。比如:清内存、设置时钟等。所以区分内核态与用户态主要是出于安全的考虑。

2.14 什么是页表,为什么要有?

参考回答

页表是虚拟内存的概念。操作系统虚拟内存到物理内存的映射表,就被称为页表。

原因:不可能每一个虚拟内存的 Byte 都对应到物理内存的地址。这张表将大得真正的物理地址也放不下,于是操作系统引入了页(Page)的概念。进行分页,这样可以减小虚拟内存页对应物理内存页的映射表大小。

答案解析

如果将每一个虚拟内存的 Byte 都对应到物理内存的地址,每个条目最少需要 8字节(32位虚拟地址->32位物理地址),在 4G 内存的情况下,就需要 32GB 的空间来存放对照表,那么这张表就大得真正的物理地址也放不下了,于是操作系统引入了页(Page)的概念。

在系统启动时,操作系统将整个物理内存以 4K 为单位,划分为各个页。之后进行内存分配时,都以页为单位,那么虚拟内存页对应物理内存页的映射表就大大减小了,4G 内存,只需要 8M 的映射表即可,一些进程没有使用到的虚拟内存,也并不需要保存映射关系,而且Linux 还为大内存设计了多级页表,可以进一页减少了内存消耗。

2.21 说说进程空间从高位到低位都有些什么?

如上图,从高地址到低地址,一个程序由命令行参数和环境变量、栈、文件映射区、堆、BSS段、数据段、代码段组成。

  1. 命令行参数和环境变量

  2. 栈区:存储局部变量、函数参数值。栈从高地址向低地址增长。是一块连续的空间。

  3. 文件映射区,位于堆和栈之间。

  4. 堆区:动态申请内存用。堆从低地址向高地址增长。

  5. BSS 段:存放程序中未初始化的全局变量和静态变量的一块内存区域。

  6. 数据段:存放程序中已初始化的全局变量和静态变量的一块内存区域。

  7. 代码段:存放程序执行代码的一块内存区域。只读,代码段的头部还会包含一些只读的常数变量。

2.23 请你说说并发和并行

参考回答

  1. 并发:对于单个CPU,在一个时刻只有一个进程在运行,但是线程的切换时间则减少到纳秒数量级,多个任务不停来回快速切换。

  2. 并行:对于多个CPU,多个进程同时运行。

  3. 区别。通俗来讲,它们虽然都说是"多个进程同时运行",但是它们的"同时"不是一个概念。并行的"同时"是同一时刻可以多个任务在运行(处于running),并发的"同时"是经过不同线程快速切换,使得看上去多个任务同时都在运行的现象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 计算机网络和操作系统是计算机科学中非常重要的两个领域,对于计算机网络和操作系统的知识掌握程度也是面试中常被问及的内容。在准备面试时,可以通过阅读和整理计算机网络和操作系统相关的面试资料来提高自己的面试准备水平。以下是关于计算机网络和操作系统面试整理PDF的回答。 计算机网络和操作系统面试整理PDF可以是一份包含计算机网络和操作系统面试经典问题、解析和答案的PDF文档。这份整理可以包括对常见的计算机网络和操作系统概念、原理、算法、协议和技术的介绍和解析,以及对这些概念的实际应用和相关的面试问题的答案。 在整理这份PDF时,可以根据自己的理解和经验,总结出常见的面试问题,并给出简洁明了、易于理解的答案。可以通过查阅相关文献、参考书籍、互联网资源和自己的学习笔记来整理这些问题和答案。同时,在整理过程中,可以对这些问题进行分类和归纳,以便于面试前快速地回顾和复习。 这份PDF的目标是帮助面试者快速了解和掌握计算机网络和操作系统相关的知识,以提高在面试中的表现和竞争力。通过学习这份整理面试者可以更好地理解计算机网络和操作系统的原理和应用,更加深入地思考和回答与这些领域相关的问题。 总之,计算机网络和操作系统面试整理PDF是一份帮助面试者准备计算机网络和操作系统面试的资料,其中包含了面试常见问题和答案,以及对计算机网络和操作系统相关知识的解析和讨论。这份整理能够帮助面试者提高面试准备水平,更好地应对计算机网络和操作系统面试问题。 ### 回答2: 计算机网络和操作系统面试整理PDF是一份综合了计算机网络和操作系统相关知识点的面试资料。这份PDF的目的是帮助求职者更好地准备计算机网络和操作系统面试。 在这份PDF中,可以查看到一些常见的面试问题和答案,这些问题涵盖了计算机网络和操作系统领域的重要知识点。通过研究这些问题和答案,求职者可以更好地了解计算机网络和操作系统的原理和应用。 PDF中还会提供一些常见的面试题型和解题思路。求职者可以通过思考和解答这些问题,来提高他们的问题解决能力和技巧。 此外,这份PDF还可能包括一些实例题和代码。通过研究这些实例和代码,求职者可以更深入地理解计算机网络和操作系统的实际应用,并能够更好地回答与实际工作相关的问题。 总之,计算机网络和操作系统面试整理PDF是一份旨在帮助求职者准备相关面试的资料。如果求职者认真学习和应用这份PDF中的知识和思路,相信他们将对计算机网络和操作系统面试有更好的准备和应对能力。 ### 回答3: 计算机网络和操作系统是计算机科学中非常重要的两个领域,对于工程师的面试准备来说,掌握这两个领域的知识非常重要。在准备面试过程中,一份整理有关计算机网络和操作系统面试题的PDF是很有帮助的。 这份PDF可以包含一些常见的计算机网络和操作系统面试题,如网络协议、网络拓扑、路由算法、数据链路层、TCP/IP协议、资源管理、进程调度、内存管理等。针对每个领域,可以列出一些重要的概念和算法,并配备相关的例子和解答。 这份PDF的好处是有组织地整理面试中常见的问题,可以帮助面试者系统地学习和复习。通过阅读这份整理面试者可以了解到常见的面试考点和重要的知识点,可以帮助面试者更加全面和深入地掌握这些知识。 此外,这份PDF还可以配备一些面试技巧和建议,在面试过程中帮助面试者更好地回答问题。例如,一些常见的面试技巧包括准备充分、自信积极、清晰简洁地表达观点等。这些技巧可以帮助面试者在面试过程中更加出色地表现自己。 总的来说,一份整理有关计算机网络和操作系统面试题的PDF对于面试者来说是非常有帮助的。它可以帮助面试者系统地学习和复习相关知识,并配备面试技巧和建议,帮助面试者在面试中取得更好的成绩。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值