复试面试题——操作系统

  • 请分别简单说一说进程和线程以及它们的区别
    进程:是一个具有独立功能的程序,关于某个数据集合的一次运行活动,是操作系统进行资源分配和保护的基本单位。
    线程:是进程那一个相对独立的,可调度的执行单元,是操作系统资源分配和调度的基本单位。
    一个进程那可以有多个线程,多个线程也可以并发执行同一个进程。内线程切换不会导致进程切换,不同进程内的线程切换会导致进程切换。

  • 线程同步的方式有哪些
    互斥量:采用互斥对象机制,只有拥有互斥对象的线程才有访问公共资源的权限。因为互斥对象只有一个,所以可以保证公共资源不会被多个线程同时访问。
    信号量:它允许同一时刻多个线程访问同一资源,但是需要控制同一时刻访问此资源的最大线程数量。
    事件(信号):通过通知操作的方式来保持多线程同步,还可以方便的实现多线程优先级的比较操作。

  • 进程的通信方式有哪些
    管道、消息队列、信号量、共享内存、套接字
    几种方式的比较:
    管道:速度慢、容量有限
    消息队列:容量收到系统限制,且要注意第一次读的时候,要考虑上一次没有读完数据的问题。
    信号量:不能传递复杂信息,只能用来同步。
    共享内存:使多个进程可以访问一个内存空间。

  • 什么是缓冲区溢出?有什么危害?其原因是什么?
    缓冲区溢出是指当计算机向缓冲区填充数据时超出了缓冲区本身的容量,溢出的数据覆盖在合法数据上。
    危害有以下两点:
    程序崩溃,导致拒绝额服务
    跳转并且执行一段恶意代码
    造成缓冲区溢出的主要原因是程序中没有仔细检查用户输入。

  • 什么是死锁?死锁产生的条件?
    死锁就是一个进程集合中,每个进程都在等待只能由该集合当中其他进程才能引发的事件,而陷入无限僵持的局面。
    互斥条件:一个资源一次只能被一个进程使用。
    不剥夺条件:进程获得的资源,在未完全使用完之前,不能强行剥夺。
    请求与保持条件:一个进程因请求资源而阻塞时,对已获得资源保持不放。
    循环等待条件:若干进程之间形成一种头尾相接的环形等待资源关系 。

  • 说一说死锁的处理基本策略和常用方法
    方法:
    预防死锁、避免死锁、检测死锁、解除死锁
    策略:
    鸵鸟策略、预防策略、避免策略、检测与解除死锁

  • 进程有哪几种状态?
    就绪状态:进程已获得除处理机以外的所需资源,等待分配处理机资源。
    运行状态:占用处理机资源运行,处于此状态的进程数小于等于CPU数。
    阻塞状态: 进程等待某种条件,在条件满足之前无法执行

  • 分页和分段有什么区别?
    段是信息的逻辑单位,由原程序的逻辑结构决定,用户可见,段长可以根据用户需要来决定,段的起始地址可以从主存的任何位置开始。
    分页是信息的物理单位,与原程序的逻辑结构无关,用户不可见,页长由系统确定,页面只能以页大小的整数倍地址开始。

  • 操作系统中进程调度策略有哪几种?
    FCFS(先来先服务),优先级,时间片轮转,多级反馈

  • Windows下的内存是如何管理的
    虚拟内存:最适合用来管理大型对象或者结构数组
    内存映射文件:最适合用来管理大型数据流(通常来自文件)以及在单个计算机上运行多个进程之间共享数据
    内存堆栈:最适合用来管理大量的小对象

  • 同步与互斥的区别
    同步:是指在互斥的基础上(大多数情况下),通过其它机制实现访问者对资源的有序访问。大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访问者同时访问资源。
    互斥:指某一个资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的
    同步:体现的是一种协作性。互斥:体现的是排它性。

  • 操作系统基本特征
    并发:指宏观上在一段时间内能同时运行多个程序,而并行则指同一时刻能运行多个指令。
    共享:是指系统中的资源可以被多个并发进程共同使用。
    虚拟:把一个物理实体转换为多个逻辑实体。
    异步:指进程不是一次性执行完毕,而是走走停停,以不可知的速度向前推进。

  • 操作系统基本功能
    进程管理、内存管理、文件管理、设备管理

  • 系统调用
    操作系统提供给程序使用的系统服务函数或过程。如果一个进程在用户态需要使用内核态的功能,就进行系统调用从而陷入内核,由操作系统代为完成。
    Linux 的系统调用主要有以下这些:进程控制、进程通信、文件操作。

  • 大内核和微内核
    内核:一组程序模块,提供支持程序并发执行的基本功能和基本操作。
    大内核:将操作系统功能作为一个紧密结合的整体放到内核。由于各模块共享信息,因此有很高的性能。
    微内核:由于操作系统不断复杂,因此将一部分操作系统功能移出内核,从而降低内核的复杂性。移出的部分根据分层的原则划分成若干服务,相互独立。
    在微内核结构下,操作系统被划分成小的、定义良好的模块,只有微内核这一个模块运行在内核态,其余模块运行在用户态。

  • 中断分类
    中断:又称为外中断,是指计算机运行的过程中出现某些意外情况,需要主机干预时,机器能够自动停止正在运行的程序,并转入处理新的情况的程序,处理完毕后又返回原被暂停的程序,继续运行。
    异常:又称内中断,由错误引起,例如文件损坏、程序越界。
    异常会引起中断,但中断未必由异常引起。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值