操作系统二轮复习

操作系统二轮复习

牛客网,为什么os在c++那里

1、请你介绍一下死锁,产生的必要条件,产生的原因,怎么预防死锁

  • 死锁:两个或以上的进程争夺共享资源而互相等待而导致进程都无法执行
  • 必要条件:互斥、不可抢占、请求与保持、循环等待
  • 死锁的处理
    • 预防
      • 破坏请求与保持:一次性分配
      • 破坏不剥夺:申请不到主动释放
      • 破坏循环等待:顺序申请反序释放
    • 避免:银行家算法
    • 检测
    • 释放

2、说一说进程通信的方式有哪些?

  • 匿名管道
  • 有名管道
  • 信号
  • 信号量
  • 共享内存
  • 消息队列
  • socket套接字

3、请你说说进程和线程的区别

  • 资源分配和执行
    • 进程是程序运行的基本单位,线程是程序运行的最小单位;
    • 进程是资源分配的最小单位,进程有独立的地址空间,线程有自己的堆栈和局部变量(java中没有堆),但线程之间没有单独的地址空间
  • 对应关系
    • 一个进程可以包含多个线程
  • 并发性
    • 进程的并发性较低,线程的并发性较高
  • 上下文切换
    • 进程的上下文切换消耗的资源开销更多
  • 崩溃造成的影响
    • 一个进程崩溃后,在保护模式下不会对其他进程产生影响,但是一个线程崩溃整个进程都死掉

4、说一说 epoll 的原理

  • epoll 是一种更加高效的 IO 复用技术,本质是通过一个线程监视多个文件描述符,当内核缓存完数据后再执行对应的操作
  • 解决问题
    • select和poll轮询的方式消耗资源
    • 不需要频繁的切换内核和用户态
  • 原理:通过在内核中创建应该结构体,等内核缓存数据结束后会放入就绪队列并通知对应线程执行
  • 命令:
    • epoll_create:创建结构体
    • epoll_ctrl:向结构体中(红黑树)添加文件描述符
    • epoll_wait:检测就绪事件

5、说一说常用的 Linux 命令

  • cd:切换当前目录
  • ls:查看当前文件与目录
  • grep:通常与管道命令一起使用,用于对一些命令的输出进行筛选加工
  • cp:复制文件或文件夹
  • mv:移动文件或文件夹
  • rm:删除文件或文件夹
  • ps:查看进程情况
  • kill:向进程发送信号
  • tar:对文件进行打包
  • cat:查看文件内容
  • top:查看操作系统的信息,如进程、CPU占用率、内存信息等(实时)
  • free:查看内存使用情况 pwd:显示当前工作目录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值