操作系统面试题-4

常考面试题

  1. 说说进程通信的方式有哪些?⭐⭐⭐⭐⭐

    进程间通信主要包括管道系统IPC(包括消息队列、信号量、信号、共享内存)、套接字socket

    1. 管道:包括无名管道和命名管道,无名管道半双工,只能用于具有亲缘关系的进程直接的通信(父子进程或者兄弟进程),可以看作一种特殊的文件;命名管道可以允许无亲缘关系进程间的通信。

    2. 系统IPC

      • 消息队列:消息的链接表,放在内核中。消息队列独立于发送与接收进程,进程终止时,消息队列及其内容并不会被删除;消息队列可以实现消息的随机查询,可以按照消息的类型读取。

      • 信号量semaphore:是一个计数器,可以用来控制多个进程对共享资源的访问。信号量用于实现进程间的互斥与同步。

      • 信号:用于通知接收进程某个事件的发生。

      • 内存共享:使多个进程访问同一块内存空间。

    3. 套接字socket:用于不同主机直接的通信。

  2. 说说进程同步的方式?⭐⭐⭐⭐⭐

    1. 信号量semaphore:是一个计数器,可以用来控制多个进程对共享资源的访问。信号量用于实现进程间的互斥与同步。P操作(递减操作)可以用于阻塞一个进程,V操作(增加操作)可以用于解除阻塞一个进程。
    2. 管程:一个进程通过调用管程的一个过程进入管程。在任何时候,只能有一个进程在管程中执行,调用管程的任何其他进程都被阻塞,以等待管程可用。
    3. 消息队列:消息的链接表,放在内核中。消息队列独立于发送与接收进程,进程终止时,消息队列及其内容并不会被删除;消息队列可以实现消息的随机查询,可以按照消息的类型读取。
    4. 互斥锁
  3. 进程通信中的管道实现原理是什么?⭐⭐⭐⭐⭐

    操作系统在内核中开辟一块缓冲区(称为管道)用于通信。管道是一种两个进程间同一时刻进行单向通信的机制。因为这种特性,管道又称为半双工管道,所以其使用是有一定的局限性的。半双工是指同一时刻数据只能由一个进程流向另一个进程(一端负责读,一端负责写);如果是全双工通信,需要建立两个管道。

    管道分为无名管

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

<p> - 本专刊适合于C/C++已经入门的学生或人士,有一定的编程基础。 - 本专刊适合于互联网C++软件开发、嵌入式软件求职的学生或人士。 - 本专刊囊括了C语言、C++、操作系统、计算机网络、嵌入式、算法与数据结构等一系列知识点的讲解,并且最后总结出了高频面试考点(附有答案)共近400道,知识点讲解全面。不仅如此,教程还讲解了简历制作、笔试面试准备、面试技巧等内容。 </p> <p> <br /> </p>

全部评论
插个眼,半双工的例子是对讲机,单向流动的例子是信号塔和接收器😉
点赞 回复 分享
发布于 2023-05-12 09:24 韩国
3.进程通信中的管道实现原理是什么?关于管道又称为半双工管道,这边是有问题的吧! 半双工是指不能同时双向流动,并不是指单向流动!
点赞 回复 分享
发布于 2021-08-08 23:49
2.说说进程同步的方式?里面的管道应该改成管程吧
点赞 回复 分享
发布于 2021-07-31 10:53

相关推荐

卡卡罗特ovo:说起云智我就来气,约好了一面,结果面试官没来,ssob上问hr也未读,我还是专门请了半天假在家面试,恶心死了
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务