当前位置: 首页 > news >正文

Linux操作系统常见面试题

前言

作者:小蜗牛向前冲

名言:我可以接受失败,但我不能接受放弃

  如果觉的博主的文章还不错的话,还请点赞,收藏,关注👀支持博主。如果发现有问题的地方欢迎❀大家在评论区指正

分享常见的操作系统面试题

 1、进程和线程用知道吗?二者有什么区别

答:

  • 进程是操作系统分配资源的基本单位:进程拥有独立的内存空间和其他系统资源,如文件句柄、网络连接等。操作系统为每个进程分配资源,并且进程之间的资源是相互独立的。

  • 线程是CPU调度的基本单位:线程是进程内的一个执行单元,一个进程可以包含多个线程,线程之间共享进程的地址空间和资源。CPU调度通常是以线程为单位进行的。

  • 进程间相互独立,一个进程崩溃不会影响其他的进程;而一个线程崩溃,可能会导致整个进程崩溃:进程的独立性意味着一个进程的异常终止通常不会影响其他进程。但是,由于线程共享同一进程的资源,如果一个线程出错,可能会影响进程内的其他线程,甚至导致整个进程崩溃。

  • 进程切换开销非常大,线程切换开销较小:进程切换涉及到上下文切换,包括切换内存空间、CPU寄存器等,因此开销较大。线程之间的切换,由于共享了进程的内存空间,通常只需要切换线程上下文(如寄存器、程序计数器等),因此开销相对较小。

2、进程间是如何进行通信的

答:

  •  管道:用于可以在具有亲缘关系的进程间通信,分为匿名管道和命名管道,匿名管道只能在父子进程间使用,而命名管道可以在没有亲缘关系的进程间使用。
  • 消息队列:通过消息的方法进行通信,消息可以在进程间异步传递。
  • 共享内存:允许多个进程共享一块内存区域,进程间可以读写共享内存从而传递信息。
  • 信号:用于通知进程发生了某种事件。
  • 信号量:用于进程间同步,控制共享资源的访问,PV操作。
  • 套接字:通过套接字进行通信,可进行网络通信也可以进行本地通信。
  • 文件:进程间也可以读写文件内容进行通信。

3、僵尸进程知道吗?如何去解决。那孤儿进程呢?

答 

僵尸进程指的是,子进程退出了,但是父进程没有调用wait或者waitpid函数来读取子进程回收的状态,导致子进程的资源一直没有被释放。

解决方法: 

  • 父进程及时回收子进程资源:及时调用 wait()waitpid() 函数来获取子进程的退出状态,从而清理掉僵尸进程
  • 设置SIGCHLD的信号处理器:父进程捕抓到SIGHLD(子进程退出时,给父进程的发生的信号)这样,父进程不必阻塞在 wait() 调用中,能以异步方式处理子进程的退出

孤儿进程:指的是父进程在子进程之前退出, 子进程会被1号的进程给领养。

 4、进程有哪些状态知道吗?

答:进程有6种状态 

  • 新建状态: 一个进程被创建时,操作系统为其分配必备的资源。
  • 就绪状态:一个进程创建完毕,等待 CPU分配时间片来执行任务。
  • 运行状态:进程在执行任务。
  • 阻塞状态:进程在执行过程中等待某些事件发生,它会进入阻塞状态。等待事件的到来。
  • 挂起状态:时系统可能会将一个进程挂起,即将其移到内存之外并保存其状态。
  • 终止状态:进程执行完毕或被强制终止后,会进入终止状态。

 5、进程是如何切换的?

 答:当操作系统要将一个进程切换到另外一个进程,通常要执行以下操作

保存当前进程的上下文:如一些寄存器,当前进程的堆栈指针,其实这些信息都保存着进程控制快(PCB)中。

更新进程的状态: 把当前进程的状态更改为就绪或者阻塞状态。

选择新的进程:根据调度算法(如先来先服务,优先级调度等),从就绪队列选择一个进程交给CPU去调度。

恢复进程的上下文:操作系统需要重新加载新进程的上下文信息,如寄存器,堆栈指针。

 

 


http://www.mrgr.cn/news/12490.html

相关文章:

  • Java MR Map Reduce 模型
  • 加速打开gtihub的工具dev-sidecar
  • vs 项目.gitignore设置过滤某个文件夹无效
  • 鸿蒙(API 12 Beta3版)【使用智能PhotoPicker】Media Library Kit媒体文件管理服务
  • 《机器学习》 SVM支持向量机 推导、参数解析、可视化实现
  • 期权交易误区分享:喜欢重仓!
  • 《深入剖析 Spring Boot 中的循环依赖问题及解决方案》
  • 智能计算方法与实现1|禁忌搜索算法|Rastrigin函数|压力容器设计问题
  • zookeeper客户端命令行操作、节点类型及监听器
  • SQL血缘解析
  • 美国洛杉矶服务器地址在哪里?
  • 成功解决:删除WSL2 Ubuntu中的文件后C磁盘空间不释放的问题
  • 畅玩游戏:2024四大远程控制软件推荐!
  • 大模型实战-FinGLM解析金融财报做RAG经验参考篇
  • 深度学习100问10-什么是CBOW模型
  • CAS5和CAS6自定义异常提示消息
  • Mysql的查询指令
  • WiFi标签注册(电脑版)
  • 【人工智能】Transformers之Pipeline(十三):填充蒙版(fill-mask)
  • mac在终端中使用vscode打开文件或者文件夹