美团面试准备之操作系统

  1. 互斥锁和排他锁❌
     
  2. 多线程编程有了解吗?
  3. Linux命令(问了接近10个小问题吧):怎么修改一个文件的权限、怎么查询一个文件的最后10行(tail),那怎么找出含有关键字的行的前后4行(不会了),怎么查询一个网络情况
    1. 暂停一个正在运行的程序,将其放到后台
      ctrl+Z//暂停任务
      bg//放到后台
      fg//拉到前台

       

    2. 文件和目录授权管理
      chmod用于改变文件或者目录的权限;
      chown
    3. 显示文件最后10行
      tail -n 20 a.txt
    4. 显示文件前10行
      head -n 20 a.txt
    5. 找到含有关键字的行的前后5行
      grep -A 5 “school" a.txt//前5行
      grep -B 5 "school" a.txt//后5行
      grep -5 "school" a.txt//前后5行

       

    6. 列出所有 tcp 端口 netstat -a,列出所有 tcp 端口 netstat -at
    7. 什么是安装Linux的最小分区数量,如何查看系统启动信息?
      至少需要三个分区:/,/boot,swap,使用cat或者dmesg命令检查启动信息
    8. Linux机器上跟踪系统事件的守护进程名是什么?
      syslogd它负责跟踪系统信息,记录特殊事件和消息,存储在日志文件中。
    9. 如何在不解压tar包的前提下,查看包中内容?
      使用tar -tvf。t显示内容,v详细报告tar处理的文件信息,f使用档案文件或者设备。
    10. 怎样知道linux是谁在调度工作?
      at -l
  4. Linux下进程的通信方式IPC,进程调度的算法(讲了先来先服务、短作业优先、轮转、最高响应比),分别分析每一种的优缺点,死锁的产生条件,怎么解决死锁问题,
    怎么检测出死锁:Jstack命令,JConsole工具。✅
  5. 管道通信,有哪几种(命名和非命名)。写一个管道通信的命令,问第一个进程的输出传递给第二个进程的输入,那么它还保存这个数据吗
    无名管道用于有亲缘关系的进程之间通信。命名管道FIFO通过文件名来使得没有亲缘关系的进程之间也能通信。
    int mkfifo(const char *pathname,mode_t mode);

     

  6. 项目里用到了生产者想飞这,面试官让讲讲这个模型
  7. 生产者消费者用在什么场景下(单生产单消费,单生产者多消费者,多生产多消费)(✅)
  8. 项目里线程是如何同步的(✅)
    互斥锁,条件变量,信号量
  9. 项目里数据的保存(面试官见我答得不好,开启教育模式)
  10. 简历里写了linux(这个坑有点大),现在网络流量比较大,那我想查看那个IP的网络流量比较大(我答netstate),面试官说如果是查看端口的状态的话是这样,但是我的意思是说导致网络流量变得很大的是哪个IP。
    iptraf或者iptop
  11. 用过sed命令吗?对linux了解多吗?
    sed命令,可以采用正则匹配,对文本进行插入删除修改等操作。
  12. 写过shell脚本吗
  13. 说说多线程的出现是为了解决什么问题(回答不满意)(✅)
    线程出现之前,通过多进程来实现操作系统的并发,引入线程使得并发的时空开销更小,因为线程之间切换效率更高,需要现场保留的数据更少。之所以要并发是因为,来完成多项任务,提高CPU利用率。
  14. 线程的状态有几种,画出状态转换图(✅)
  15. 软件的高吞吐量考虑因素
  16. linux的IO模型可以说说吗
  17. 写一个生产者消费者的伪代码(✅)
  18.  5大IO模型,同步异步阻塞非阻塞?那你的服务器是如何做到异步非阻塞的呢?

你可能感兴趣的:(操作系统)