[面试] 操作系统面试题汇总(一)

这篇博客总结了操作系统面试中常见的问题,包括进程和线程的关系、线程的优缺点、进程调度算法、内存管理和通信方式等。讨论了上下文切换、死锁的概念及其解决方案,还涉及到了进程与线程的创建、回收和通信,以及内存地址空间和并发并行的区别。
摘要由CSDN通过智能技术生成

修正时间:10-04
总结一下最近遇到操作系统相关面试题

在这里插入图片描述

1 进程和线程的关系

  • 参考(更完整)

  • 线程是轻量级进程,也有PCB,创建线程使用的底层函数和进程一样,都是clone(克隆)

  • 线程共享本进程的地址空间,而进程之间是独立的地址空间。(如下图)在这里插入图片描述

  • 从内核中看进程和线程都一样,都有不同的PCB(如上图)

  • 进程可以蜕变成线程

  • 线程是最小的执行单位;进程是最小的资源分配单位

  • 在这里插入图片描述

  • 多进程要比多线程健壮,一个进程崩溃后,在保护模式下不会对其他进程产生影响,但是一个线程崩溃整个进程都死掉。

  • 进程切换时,消耗的资源大,效率不高。所以涉及到频繁的切换时,使用线程要好于进程。同样如果要求同时进行并且又要共享某些变量的并发操作,只能用线程不能用进程。

  • 同一线程共享的有堆、全局变量、静态变量、指针,引用、文件等,而独自占有栈

  • 线程就是寄存器和栈

2 线程的优缺点

优点:

  • (1)提高程序的并发性,响应速度更快
  • (2)开销小,不用重现分配内存
  • (3)通信和共享数据方便

缺点:

  • (1)线程不稳定(第三方库函数实现)
  • (2)线程调试困难
  • (3)等待使用共享资源时造成程序运行速度变慢,主要是一些独占性的资源
  • (4)线程的死锁,较长时间的等待或者资源竞争造成死锁

3 为什么会有线程

  • 每个进程都有自己的地址空间,即进程空间,在网络或多用户换机下,一个服务器通常需要接收大量不确定数量用户的并发请求,为每一个请求都创建一个进程显然行不通(系统开销大响应用户请求效率低),因此操作系统中线程概念被引进。

4 外中断和异常的区别

  • 外中断是指由 CPU 执行指令以外的事件引起,如 I/O 完成中断,表示设备输入/输出处理已经完成,处理器能够发送下一个输入/输出请求。此外还有时钟中断、控制台中断等。
  • 而异常时由 CPU 执行指令的内部事件引起,如非法操作码、地址越界、算术溢出等。

5 常见的i+1操作

三个指令完成

  • 从内存读到寄存器 →寄存器的值加1 →将寄存器的值写会内存
  • 非原子操作

6 父子进程

  • 实际上在父进程创建子进程之后,父、子进程除了pid外,几乎所有的部分几乎一样。
  • 父、子进程共享全部数据,但并不是说他们就是对同一块数据进行操作,子进程在读写数据时会通过写时复制机制将公共的数据重新拷贝一份,之后在拷贝出的数据上进行操作。(简单的说就是:读时共享 写时复制
  • 如果子进程想要运行自己的代码段,还可以通过调用execv()函数重新加载新的代码段,之后就和父进程独立开了。

7 线程中return exit pthread_exit 区别

8 虚拟地址空间和虚拟内存及其目的

  • 之前写过了

在这里插入图片描述

  • 作用

在这里插入图片描述

  • 简单的说:逻辑上扩充地址 相互独立 地址有序

9 上下文切换

  • 内核管理所有进程控制块,而进程控制块记录了进程全部状态信息。每一次进程调度就是一次上下文切换,所谓的上下文本质上就是当前运行状态,主要包括通用寄存器、浮点寄存器、状态寄存器、程序计数器、用户栈和内核数据结构(页表、进程表、文件表)等。

  • 进程执行时刻,内核可以决定抢占当前进程并开始新的进程,这个过程由内核调度器完成,当调度器选择了某个进程时称为该进程被调度,该过程通过上下文切换来改变当前状态。

    </
  • 8
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Windalove

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值