操作系统复习

四大特性

  1. 并发:同一时间内多个程序执行,一个程序的执行尚未结束,另一个的程序执行已经开始;
    并行(parallel)与并发(concurrentcy)的区别:
  • 解释一
    • 并行:两个或者多个事件在同一时刻发生;
    • 并发:两个或多个事件在同一时间间隔发生;
  • 解释二
    • 并行:不同实体的多个事件;
    • 并发:同一实体的多个事件;
  • 解释三
    • 并行:同一时刻,多条指令在多个处理器上同时执行;
    • 并发:同一时刻,一条指令分为多个进程指令,快速轮换执行,宏观同时
      并行 并发
  1. 共享:系统中的资源可以被内存中多个并发执行的进线程共同使用
  2. 虚拟:通过时分复用(如分时系统)以及空分复用(如虚拟内存)技术实现把一个物理实体虚拟为多个;
  3. 异步:系统中的进程是以走走停停的方式执行的,且以一种不可预知的速度推进;
    同步与异步的区别:相关理解
    同步:所有的操作都做完,才返回给用户;
    异步:不用等所有操作等做完,就响应用户请求(消息队列);

    进程与线程

    进程

    行为的一个规则叫程序(指令的有序集合,静态,作为资料永久存在),程序在处理机上执行时所发生的活动成为进程(执行过程,动态,暂时);
    进程:一个具有一定的独立功能的程序关于某个数据集的一次运行活动;

    进程与程序的区别

    进程=程序+数据;动态与静态;永久与暂存;进程可以创建其他进程;真实地描述并发;一个程序对应多个进程;

    引入进程的目的

    为了使多个程序并发执行,以改善资源利用率,提高系统吞吐量(衡量性能,单位时间内系统处理用户的请求数);

多进程组织的3个部分

  1. PCB:使多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,与其他进程并发执行的进程;控制和管理进程;与进程一一对应感知进程存在的唯一标志;包括进程标识符,状态,程序与数据地址,优先级,现场保护区;
  2. 状态:就绪,阻塞,运行
  3. 队列:就绪队列,阻塞队列

    CPU调度算法

  • 先来先服务(FCFS):按作业或进程到达的先后次序依次调度(平均周转时间长);
  • 短作业优先:选要求服务时间短的优先调度(确保了周转时间,但响应时间长);
  • 高响应比优先:响应比=1+等待时间/要求服务时间;
  • 时间片轮转:按到达的先后分配时间片,不断轮转(时间片用完从运行态转到就绪态,暂停当前进程放到队列尾部,保证响应时间);
  • 多级反馈队列:FIFS放入多个队列,有不同的优先级(优先级高时间片短),前一个队列在一定时间内没有运行完,将剩余进程或作业插入到下一个队列的结尾;

    线程

    是进程内一个相对独立的、可独立调度和指派的执行单元;线程可以创建其他线程;一个进程中至少拥有一个线程;不拥有资源;
    TCB:PC程序计数器,SP栈,State状态,寄存器,线程id;

    引入线程目的

    减少程序并发执行时所付出的时空开销;

    进程与线程的区别

    进程:拥有资源的基本单位;创建、撤销、切换的系统开销大
    线程:CPU调度和指派任务的的基本单位;同一进程内的同步与通信的实现较容易;线程间会互相影响;

    进程间同步

    原则:
  1. 空闲让进
  2. 忙则等待
  3. 有限等待
  4. 让权等待
    经典问题:生产者-消费者问题;哲学家进餐问题;读者-写者问题
    死锁:
    在两个或多个并发进程中,如果每个进程持有某种资源而又都等待别的进程释放它或它们现在保持着的资源,在未改变这种状态之前都不能向前推进,称这一组进程产生了死锁。通俗地讲,就是两个或多个进程被无限期地阻塞、相互等待的一种状态。
    产生条件:
  5. 互斥条件 – 一个资源一次只能被一个进程使用
  6. 请求保持条件 – 一个进程因请求资源而阻塞时,对已经获得资源保持不放
  7. 不可抢占条件 – 进程已获得的资源在未使用完之前不能强行剥夺
  8. 循环等待条件 – 若干进程之间形成一种头尾相接的循环等待资源的关系
    死锁处理:
    预防死锁:破坏产生死锁的4个必要条件中的一个或者多个;实现起来比较简单,但是如果限制过于严格会降低系统资源利用率以及吞吐量
    避免死锁:在资源的动态分配中,防止系统进入不安全状态(可能产生死锁的状态)-如银行家算法
    检测死锁:允许系统运行过程中产生死锁,在死锁发生之后,采用一定的算法进行检测,并确定与死锁相关的资源和进程,采取相关方法清除检测到的死锁。实现难度大
    解除死锁:与死锁检测配合,将系统从死锁中解脱出来(撤销进程或者剥夺资源)。对检测到的和死锁相关的进程以及资源,通过撤销或者挂起的方式,释放一些资源并将其分配给处于阻塞状态的进程,使其转变为就绪态。实现难度大

同步与互斥

互斥:任何时候只有一个对象访问某个资源,绝不允许多个对象同时操作;
同步:事情执行之间的依赖关系,具有顺序的互斥,协调对共享数据的并发访问;

信号量:协调共享资源访问,确保线程同步,PV操作(进/出临界区,s.value,s.queue);必须有公共内存,不能用于分布式操作系统;
管程:将共享变量和对他们的操作集中在一个模块中,多线程互斥访问共享资源的程序结构。

内存管理

为多道程序的运行提供良好的环境,方便用户使用存储器,以提高存储器的利用率以及从逻辑上扩充存储器;
存储管理应具有以下功能:

  • 实现内存的分配和回收
  • 地址变换
  • “扩充”内存容量
  • 进行存储保护

    连续/分区分配方式

  • 单一连续分配:内存分为OS区,用户区,只装入一道作业运行;
  • 固定分区存储管理:内存分为若干个固定大小的分区

操作系统面试常见问题

其他乱七八糟

文件系统和数据库系统的区别,哪个效率更高,为什么

1、文件系统实现以文件为单位的数据共享,数据库系统实现以记录和字段为单位的数据共享。
2、文件系统中的程序和数据有一定的联系,数据库系统中的程序和数据分离。
3、文件系统用文件将数据长期保存在外存上,数据库系统用数据库统一存储数据。
4、文件系统用操作系统中的存取方法对数据进行管理,数据库系统用DBMS统一管理和控制数据。
5、无结构与结构化

BIOS的意思,程序的可移植性

即微机的基本输入输出系统(Basic Input-Output System),是集成在主板上的一个ROM芯片,是主板设计者为使主板能正确管理和控制电脑硬件系统而预置的管理程序,其中保存有微机系统最重要的基本输入输出程序、系统信息设置、开机上电自检程序和系统启动自举程序。

操作系统的基本概念

操作系统(Operating System, OS):是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源分配,以提供给用户和其他软件方便的接口和环境的软件集合。
用户是雇主,操作系统是工人,计算机是机器(由处理器、存储器、设备、文件等几个部件构成)

处理器管理:在多道程序的情况下,处理器的分配和运行都以进程(或线程)为基本单位,因而对处理器的管理可以分配为对进程的管理
存储器管理:包括内存分配、地址映射、内存保护等等
文件管理:计算机中的信息都是以文件的形式存在的,操作系统中负责文件管理的部分被称为文件系统,文件管理包括文件存储空间的管理、目录管理和读写保护等等
设备管理:主要任务是完成用户的I/O请求,包括缓冲管理、设备分配、虚拟设备等等
链接

复试常见题
(https://blog.csdn.net/qq_34149581/article/details/80003320)
(https://blog.csdn.net/qq_38106472/article/details/95788897#ICMP%E6%98%AF%E4%BB%80%E4%B9%88%E5%8D%8F%E8%AE%AE%EF%BC%9F%E5%A4%84%E4%BA%8E%E5%93%AA%E4%B8%80%E5%B1%82%EF%BC%9F)