操作系统面试知识总结

(一)概论

操作系统是硬件上第一层软件、是支持其他所有软件运行的基础

操作系统三种基本类型:

  • 批处理系统:对一批作业进行自动处理,在其中引入多道程序设计技术就成了多道批处理系统。
  • 分时操作系统:处理机的时间被分为很短时间片,系统按照时间片轮流把处理机分给各联机作业使用,若一个时间片内无法完成,则该作业暂停运行,把处理机让给另一个作业使用,等到下一轮在继续运行。特征是:同时性、交互性、独立性和及时性
  • 实时系统:及时响应外部事件请求,在规定的时间内完成对事件的处理,并控制所有实时设备和实时任务协调一致的工作。实时系统主要特征是响应及时可靠性高

操作系统的特征:并发性、共享性、虚拟性和不确定性

  • 并发是指两个或多个事件在同一时间内间隔发生
  • 共享是指系统中的资源供多个用户共同使用
  • 虚拟是指把一个物理实体变成若干个逻辑实体
  • 不确定性是指系统中各种事件发生的时间及顺序是不可预测的

操作系统的主要功能包括:处理机管理、存储器管理、设备管理和文件管理

  • 处理机管理:进程控制、进程同步、进程通信及调度
  • 存储器管理:内存分配、内存保护、地址映射及内存扩充
  • 设备管理:设备分配、设备驱动及设备独立性
  • 文件管理:文件存储空间的管理、目录管理、文件操作管理及文件保护

(二)进程和线程

进程理解:是程序在处理机上的一次执行过程,是系统进行资源分配和调度的一个独立单位

进程的特征:

  • 动态性:进程是运行的程序,因而具有动态性。
  • 并发性:多个进程实体同时存在于内存中,在一段时间内都得到运行
  • 独立性:进程是能独立运行的基本单位,也是系统进行资源分配和调度的独立单位
  • 异步性:系统中的各进程以独立的、不可预知的速度向前推进
  • 结构性:每个进程都配置一个进程控制块,这样从结构上看,每个进程实体都由程序段、数据段和一个进程控制块组成。

进程控制块 PCB:进程存在的唯一标志,记录一个进程从创建到销毁的行径。
进程的组织:线性方式、链接方式、索引方式
线性方式:将PCB顺序放在内存中
链接方式:将同一状态的PCB链接成一个队列,不同状态对应不同的队列
索引方式:将同一状态的进程组织在一个索引表中,索引表的表项指向相应的PCB,不同状态对应不同的索引表

进程三种基本状态:

  • ready 就绪状态:已获得了除处理机以外的其他所有资源
  • running 执行状态:获得了资源并在处理机上执行
  • blocking 阻塞状态:出现某情况导致进程暂时无法执行下去
    此外还补充了创建状态退出状态

进程挂起状态:将进程从内存空间中放到外存中,减少进程占用内存。

线程的概念:进程内的一个相对独立的、可调度的执行单元。线程自己基本不拥有资源,只拥有一点在运行时必不可少的资源,但它可以与同属一个进程的其他线程共享进程拥有的全部资源。

线程与进程之间的区别:

  • 调度:在传统的操作系统中,进程是拥有资源和独立调度的基本单位。在引入多线程的操作系统中,线程是独立调度的基本单位,进程是资源拥有的基本单元。
  • 拥有资源:进程永远是拥有资源的基本单位,而线程不拥有系统资源,但线程可以访问其隶属进程的系统资源。
  • 并发性:引入多线程的操作系统中,不仅进程之间可以并发执行,而且同一进程内的多个线程之间也可以并发执行,从而使操作系统具有更好的并发性,大大提高了系统的吞吐量。
  • 系统开销:创建进程所需要的的系统开销要远远大于创建线程时的开销。类似的,当在进程之间切换时,所需要的资源也会大于线程之间切换。此外,对于同一个进程中的多个线程,之间的通信和同步非常容易实现,甚至无需操作系统干预。

(三)进程同步与通信

空闲让进、忙则等待、有限等待、让权等待

  • 空闲让进:当没有进程处于临界区时,可以允许一个请求进入临界区的进程立即进入自己的临界区。
  • 忙则等待:当已有进程进入其临界区时,其他试图进入临界区的进程必须等待。
  • 有限等待:对要求访问临界资源的进程,应该保证能在有限时间内进入自己的临界区。
  • 让权等待:当进程不能进入自己的临界区时,应释放处理机。

进程同步:当进程达到一些关键点上是需要跟其他进程进行信息交换,这种相互制约关系称为进程同步。
进程互斥:当一个进程正在使用某资源时,其他希望使用该资源的进程必须等待,当该进程用完资源并释放后,才允许其他进程去访问此资源,我们称进程之间的这种相互制约关系为互斥。

解决互斥问题:
①软件设计法:通过公共变量设计
②硬件法:禁止中断、硬件指令
③锁机制:通过锁来反应资源的使用情况

信号量
信号量s,表示资源实体,包括两个成员(count和queue)。count表示某类资源的使用情况,大于0时表示剩余可用资源数量,小于0时其绝对值表示系统中因为请求该类资源股而阻塞等待的进程数目

P、V操作,唯二可以修改信号量初值的方法。
P操作:s.count- -; 若count<0,则阻塞进程,并将它插入该信号量的等待队列中;否则继续执行。
V操作:s.count++;若count>0,则继续执行;否则从该信号量等待队列中移出第一个进程,将其状态修改为就绪状态并插入就绪队列。

P、V操作解决的问题:生产者和消费者问题、读者写者问题、哲学家进餐问题、睡眠理发师问题

AND同步机制:
只要不能一次将一个进程所需要的所有资源分配给他,就不给他进行资源分配

一般信号量机制:
指同时需要申请多种资源、每种资源申请数目不同,且可分配的资源还存在一个临界值的信号量机制。由于一次需要申请n个某类资源,因此如果通过n次P操作申请n个资源,效率低且可能死锁,故直接在一次原语中完成所有的资源申请。

管程:
管程定义了一个数据结构和能为并发进程所执行的一组操作,这组操作能同步进程和改变管程中的数据。

管程组成:
局部于管程的共享数据结构说明、对这些数据结构进行操作的一组过程和对这些数据结构设置初值的语句组成。

管程的基本特性:

  • 局部于管程的数据只能被局部于管程内的过程所访问 (private)
  • 一个进程只有通过调用管程内的过程才能进入管程访问共享数据
  • 每次仅允许一个进程在管程内执行某个内部过程。

对管程而言,它本身实现了互斥,使多个进程之间不能同时访问临界区(程序员只需要通过将Cwait和Csignal原语放在管程合适地方)。而对于信号量机制来说,互斥和同步都属于程序员的责任。

进程通信
低级进程通信方式:信号机制和信号量机制
高级进程通信方式:管道机制,共享内存和消息队列

进程通信类型:

  • 共享存储器系统
  • 消息传递系统
  • 管道通信系统
  • 4
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值