• 测开面试 | 操作系统相关问题整理


    1、 进程与线程的区别?

    • 进程:独立数据空间,进程间不共享数据,系统调度
    • 线程:执行程序的最小单元,进程内线程间同步资源,系统调度
    • 一个进程可以有多个线程,多个线程也可以并发执行

    2、 进程有哪些状态?

    • 就绪状态:已获得处理机(CPU)以外的所需资源,等待分配处理机资源
    • 运行状态:占用处理机资源运行,此状态进程数 <= CPU 数
    • 阻塞状态:进程等待某种条件,在条件满足之前无法执行

    3、 进程同步与互斥的区别?
    互斥:

    • 某一资源同时只允许一个访问者对其进行访问
    • 具有唯一性和排他性
    • 互斥无法限制访问者对资源的访问顺序,即访问是无序的

    同步:

    • 基于互斥,经其他机制实现访问者对资源的有序访问
    • 大多数情况下,同步已经实现了互斥,写入资源是互斥的
    • 少数情况下,可以允许多个访问者同时访问资源

    4、 进程间通信包括哪些?

    • 管道:半双工通信方式,数据单向流动,父子进程间
    • 命名管道:半双工通信方式,无亲缘关系进程间通信
    • 信号量:计数器,锁机制,控制多进程对资源访问
    • 消息队列:消息链表,存放在内核中由消息队列标识符标识
    • 信号:比较复杂的通信方式,通知进程某个事件已经发生
    • 共享内存:映射一段能被多个进程可访问的内存

    5、 进程的调度算法有哪些?

    • 先来先服务(FCFS, First Come First Service)
    • 短作业优先(SJF, Shortest Process Next)
    • 时间片轮转调度算法(RR, Round Robin)
    • 高响应优先(HRRN, Highest Response Ratio Next)
    • 优先权调度算法
    • 多级队列调度算法

    6、 死锁产生的原因?

    • 1、 资源竞争;2、 进程推进顺序不当
    • 必要条件:互斥、不剥夺、请求与保持、环路等待
    • 预防死锁:破坏四个必要条件之一

    7、 页面的置换算法都有哪些?

    • 最佳置换算法
    • 先进先出置换算法
    • 最近最久未使用置换算法
    • Clock 置换算法(最近未使用算法)
    • 最少使用置换算法

    8、 makefile 的作用是什么?(http://www.ruanyifeng.com/blog/2015/02/make.html)

    • 定义规则,指定哪些文件先编译、后编译、重新编译
    • makefile 的好处,自动化编译
    • makefile 需要 make 工具解释执行

    9、 什么是虚存、实存、共享内存?
    虚存(VIRT = SWAP + RES):

    • 进程“需要的”虚拟内存大小
    • 包括进程使用的库、代码、数据,以及 malloc、new 分配的堆空间和分配的栈空间等
    • 申请 10 MB,使用 1 MB,增长 10 MB

    实存(RES = CODE + DATA):

    • 包括使用中的 malloc、new 分配的堆空间和分配的栈空间,但不包括 swap out 量
    • 包含其他进程的共享
    • 虚存包括实存
    • 申请 10 MB,使用 1 MB,增长 1 MB

    共享内存(SHR):

    • 自身,也包括其他进程的共享内存
    • 进程只使用了几个共享库的函数,但包含整个共享库大小
    • 某个进程所占的物理内存大小:RES - SHR
    • swap out 后,它将会降下来

    欢迎关注微信公众号"测试开发Stack"

  • 相关阅读:
    排球训练营
    TP5中手机端和PC端判断
    N550JV无法休眠,休眠自动重启的原因及解决方法
    HTML标签全称
    HTML思维导图
    HTML基础
    Web项目流程
    VsCode使用之HTML 中 CSS Class 智能提示
    MyEclipse崩溃 Java was started but returned exit code=-1073740791
    Python 类的特殊成员方法
  • 原文地址:https://www.cnblogs.com/liushengchieh/p/10895845.html
Copyright © 2020-2023  润新知