热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

【操作系统】经典面试题吐血整理

进程与线程的区别在引入线程之前,进程是资源分配的基本单位也是cpu调度的基本单位。但是在引入线程之后,cpu调度的基本单位变成了线程。之所以引入线程是为了提高系统的并发性,减


  • 进程与线程的区别



    • 在引入线程之前,进程是资源分配的基本单位也是cpu调度的基本单位。但是在引入线程之后,cpu调度的基本单位变成了线程。之所以引入线程是为了提高系统的并发性,减少进程并发带来的时空开销。他们的所占用的内存空间不同,通信方式不同。



  • 进程间的通信方式



    • 管道: 速度慢, 容量有限, 只有 父子之间的进程能通信.






    • 消息队列: 容量受到系统限制.


    • 共享内存: 速度快, 但要保持同步



  • 线程间通信方式



    • 同步:这里讲的同步是指多个线程通过 synchronized 关键字这种方式来实现线程间的通信.

    • while轮询的方式:这种方式会 浪费CPU资源. 就类似于现实生活中, 某个人一直看着手机屏幕是否有电话来了. 而不是在干别的事情,当有电话来时,响铃通知TA电话来了。

    • wait /notify 机制:好处就是CPU的利用率提高了. 坏处是如果通知过早, 会打乱程序的执行逻辑.


  • 进程间的调度





  • 死锁是什么,如何解决死锁



    • 各进程互相等待对方手里的资源,导致进程都阻塞,无法向前推进


    • 预防死锁


    • 避免死锁:银行家算法


    • 死锁检测:死锁定理,资源分配图的简化


    • 死锁解除:撤销,回退



  • 实现多线程的方式



    • 用户级线程


    • 内核级线程


    • 多线程模型



  • 磁盘调度算法(6种)



    • 先来先服务


    • 最短寻道时间优先


    • SCAN


    • C-SCAN


    • LOOK


    • C-LOOK



  • 进程调度算法(6种)



    • 先来先服务

    • 短作业优先

    • 高响应比优先

    • 优先级调度算法

    • 时间片轮转调度

    • 多级反馈队列算法


  • 操作系统的功能



    • 进程管理


      • 进程管理主要是要实现进程线程之间调度,处理进程之间的同步和互斥问题,以及可能产生的死锁等问题。



    • 内存管理


      • 内存空间的分配和回收(非连续分配中有基本分页和基本分段),虚拟存储技术(请求分页,请求分段,缺页中断),内存空间扩充(覆盖交换),地址转换,存储保护等。



    • 文件管理


      • 对文件目录的管理(FCB indoe),如何实现文件共享(硬链接软链接),文件保护(口令加密访问控制),对非空闲磁盘块的管理(连接分配,索引分配),以及对空闲磁盘块的管理(位示图法,空闲链表法,成组链法),磁盘调度,磁盘管理(低级格式化,磁盘分区,逻辑格式化)。



    • 设备管理


      • 这一块主要的知识就是中断处理(程序直接控制,中断驱动方式,DMA方式,通道控制)






推荐阅读
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • Android工程师面试准备及设计模式使用场景
    本文介绍了Android工程师面试准备的经验,包括面试流程和重点准备内容。同时,还介绍了建造者模式的使用场景,以及在Android开发中的具体应用。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 本文介绍了2020年计算机二级MSOffice的选择习题及答案,详细解析了操作系统的五大功能模块,包括处理器管理、作业管理、存储器管理、设备管理和文件管理。同时,还解答了算法的有穷性的含义。 ... [详细]
  • 集成电路企业在进行跨隔离网数据交换时面临着安全性问题,传统的数据交换方式存在安全性堪忧、效率低下等问题。本文以《Ftrans跨网文件安全交换系统》为例,介绍了如何通过丰富的审批流程来满足企业的合规要求,保障数据交换的安全性。 ... [详细]
  • 关于CMS收集器的知识介绍和优缺点分析
    本文介绍了CMS收集器的概念、运行过程和优缺点,并解释了垃圾回收器的作用和实践。CMS收集器是一种基于标记-清除算法的垃圾回收器,适用于互联网站和B/S系统等对响应速度和停顿时间有较高要求的应用。同时,还提供了其他垃圾回收器的参考资料。 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • macOS Big Sur全新设计大版本更新,10+个值得关注的新功能
    本文介绍了Apple发布的新一代操作系统macOS Big Sur,该系统采用全新的界面设计,包括图标、应用界面、程序坞和菜单栏等方面的变化。新系统还增加了通知中心、桌面小组件、强化的Safari浏览器以及隐私保护等多项功能。文章指出,macOS Big Sur的设计与iPadOS越来越接近,结合了去年iPadOS对鼠标的完善等功能。 ... [详细]
author-avatar
莣Q楽
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有