• 操作系统面试题


    1.进程和线程的区别。
    线程是指进程内的一个运行单元,也是进程内的可调度实体.
    与进程的差别:
    (1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位
    (2)并发性:不仅进程之间能够并发运行,同一个进程的多个线程之间也可并发运行
    (3)拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但能够訪问隶属于进程的资源. 
    (4)系统开销:在创建或撤消进程时,因为系统都要为之分配和回收资源,导致系统的开销明显大于创建或撤消线程时的开销。

     

    网络编程中设计并发server,使用多进程 与 多线程 ,请问有什么差别?
    1,进程:子进程是父进程的复制品。子进程获得父进程数据空间、堆和栈的复制品。
    2,线程:相对与进程而言,线程是一个更加接近与运行体的概念,它能够与同进程的其它线程共享数据,但拥有自己的栈空间,拥有独立的运行序列。
    两者都能够提高程序的并发度,提高程序执行效率和响应时间。
    线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源管理和保护;而进程正相反。同一时候,线程适合于在SMP机器上执行,而进程则能够跨机器迁移。

     

    6.列举几种进程的同步机制,并比較其优缺点。
    原子操作 
    信号量机制
    自旋锁
    管程,会合,分布式系统

    7.进程之间通信的途径
    共享存储系统
    消息传递系统
    管道:以文件系统为基础
    11.进程死锁的原因
    资源竞争及进程推进顺序非法
    12.死锁的4个必要条件
    相互排斥、请求保持、不可剥夺、环路
    13.死锁的处理
    鸵鸟策略、预防策略、避免策略、检測与解除死锁
    15. 操作系统中进程调度策略有哪几种?
    FCFS(先来先服务),优先级,时间片轮转,多级反馈

     

    6.列举几种进程的同步机制,并比較其优缺点。
    原子操作 
    信号量机制
    自旋锁
    管程,会合,分布式系统

    7.进程之间通信的途径
    共享存储系统
    消息传递系统
    管道:以文件系统为基础
    11.进程死锁的原因
    资源竞争及进程推进顺序非法
    12.死锁的4个必要条件
    相互排斥、请求保持、不可剥夺、环路
    13.死锁的处理
    鸵鸟策略、预防策略、避免策略、检測与解除死锁
    15. 操作系统中进程调度策略有哪几种?
    FCFS(先来先服务),优先级,时间片轮转,多级反馈

     

    面试题: 线程与进程的差别和联系? 线程是否具有同样的堆栈? dll是否有独立的堆栈?
    进程是死的,仅仅是一些资源的集合,真正的程序运行都是线程来完毕的,程序启动的时候操作系统就帮你创建了一个主线程。

    每一个线程有自己的堆栈。
    DLL中有没有独立的堆栈,这个问题不好回答,或者说这个问题本身是否有问题。由于DLL中的代码是被某些线程所运行,仅仅有线程拥有堆栈,假设DLL中的代码是EXE中的线程所调用,那么这个时候是不是说这个DLL没有自己独立的堆栈?假设DLL中的代码是由DLL自己创建的线程所运行,那么是不是说DLL有独立的堆栈?

    以上讲的是堆栈,假设对于堆来说,每一个DLL有自己的堆,所以假设是从DLL中动态分配的内存,最好是从DLL中删除,假设你从DLL中分配内存,然后在EXE中,或者另外一个DLL中删除,非常有可能导致程序崩溃

  • 相关阅读:
    【C++ Primer Chapter 3 总结】Library vector & string Type
    【C++ Primer Chapter 4 总结】左值 & 右值
    【C++ Primer Chapter 6 总结】函数
    mysql添加索引
    注册plsql
    挑战答题小程序
    开源答题小程序
    答题如何防止作弊
    党史知识答题活动小程序复盘整理
    党史学习教育答题活动复盘
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/3773092.html
Copyright © 2020-2023  润新知