复试-操作系统

287 阅读7分钟

计算机系统概述

操作系统的定义?

操作系统能够进行工作调度和资源分配,为上层提供接口。

  1. 操作系统是计算机资源的管理者:处理机管理、存储器管理、文件管理、设备管理
  2. 为上层提供接口:命令接口、程序接口(系统调用)、GUI接口

Linux创建文件的命令

touch 或者直接 vim

操作系统目录

  1. 处理机管理:进程管理
  2. 存储器管理
  3. 文件管理:一切皆文件
  4. 设备管理:I/O

操作系统的作用

  1. 工作调度
  2. 资源分配
  3. 为用户提供接口

操作系统的运行机制

两种状态:内核态,用户态
两种程序:内核程序,应用程序
两种指令:特权指令,非特权指令
在内核态下运行的程序叫内核程序,只有内核程序可以使用特权指令
在用户态下运行的程序叫应用程序,应用程序只能使用非特权指令

原语

  1. 原子性,执行过程不可被打断
  2. 构造原语的最简单方式就是开关中断

原语原子性被破坏的后果

导致程序执行紊乱。可能会发生读后写之类的

中断和异常

中断:CPU暂停当前执行的程序,转而去执行中断服务程序,中断处理结束后,返回执行原程序。
中断,外中断,狭义中断。中断源来自CPU外部
异常,内中断。中断源来自CPU内部,如陷入、故障、终止

系统调用

  1. 操作系统给程序员提供的接口
  2. 是用户态与硬件交互的接口
  3. 使用户以固定的方式访问资源。

进程管理

进程

系统资源分配和调度的基本单位。

进程与程序

  1. 进程是戏,程序是剧本。进程动态,程序静态。
  2. 进程由程序控制块,代码段和数据段组成。

进程的特征

  1. 动态性
  2. 独立性
  3. 异步性
  4. 并发性

进程的工作状态

二状态:未运行态,运行态 五状态:创建态,就绪态,运行态,阻塞态,终止态

如何使计算机优先处理任务

  1. 任务调度算法
  2. 多线程:优先交给单独的线程处理
  3. 负载均衡:分配强算力服务器

进程间通信方式

  1. 共享内存
  2. 管道
  3. 消息传递。分为直接通信(指名道姓)和间接通信(需要邮箱)

进程和线程

进程是资源分配的基本单位,线程是调度的基本的单位

进程调度的定义

按照一定策略分配CPU

同步和互斥

互斥:同一资源只允许一个访问者进行访问
同步:在互斥的基础上,按照某种机制实现访问者的有序访问

优先级反转

低优先级任务占用高优先级任务的共享资源,低优先级任务得不到CPU时间无法执行,高优先级任务得不到共享资源无法执行,导致中优先级任务反而执行。
解决办法:提高低优先级任务的优先级。

  1. 优先级继承:提高到(当前)需要该共享资源的任务的优先级。
  2. 优先级天花板:提高到(所有)可能需要该共享资源的任务中的最高优先级。

优先级算法

  1. 非抢占式优先级调度:系统等待当前进程执行完才会将处理机分配给高优先级
  2. 抢占式优先级调度:一旦出现高优先级任务,会直接抢占低优先级级的处理机资源

银行家算法

每个客户要声明最大资金量,在满足所有贷款要求时,客户能及时归还。基本原理就是能借的先借,用还的钱继续借给别人。

系统的资源是非剥夺好还是剥夺好

非剥夺,若是打印机被剥夺,那么接下来打印出来的就错了。

死锁

  1. 概念:多个进程争用同一个共享资源而造成的相互等待的现象
  2. 条件:互斥、不可剥夺、请求与保持(每次只申请一部分资源,并且没运行完毕之前不释放)、循环等待
  3. 预防:破坏四大条件

饥饿和死锁

  1. 饥饿概念:某一进程无限等待资源。
  2. 死锁等待不会被释放的进程
  3. 饥饿等待会被释放,但是永远不会分配到自己的资源(嗷嗷待哺)

进程调度算法

  1. 先来先服务(顺序)
  2. 短作业优先算法(短作业)
  3. 高响应比优先算法(响应比)
  4. 最短剩余时间有限算法(剩余时间)
  5. 时间片轮转调度算法
  6. 最高优先级调度算法(优先级)
  7. 多级反馈队列调度算法

内存管理

内存管理方法

  1. 连续分配:单一连续分配,固定分区分配,动态分区分配
  2. 非连续分配:页式管理、段式管理、段页式管理

覆盖和交换

  1. 覆盖定义:内存分为覆盖区和固定区。只在程序段要执行时才将程序段放入覆盖区。
  2. 交换定义:磁盘分为对换区和文件区。内存紧张时,将进程暂时换出到对换区。
  3. 区别:交换技术主要在进程之间进行,覆盖技术在进程内执行

内存连续分配方式

一个分区只能装入一个作业

  1. 单一连续分配:分为系统区和用户区,相当于能用的只有用户区这一个分区
  2. 固定分区分配:预先分为大小固定的分区,不同分区的大小可以不同
  3. 动态分区分配:要用的时候再分区。

什么是调度

按照某种规则按顺序处理任务

页表和快表的定义及其作用

  1. 页表是逻辑地址中页号和主存块号的映射。
  2. 快表是相联存储器,类似于cache,满足了空间局部性。
  3. 页面过大,换页速度下降,页面过小,换页过于频繁。

分页管理和分段管理的区别

分页管理是按照物理空间大小划分(多大空间一个页),地址空间一维,只需要给出一个地址,有内部碎片,无外部碎片 分段管理是进程代码逻辑划分(一个功能一个段),地址空间二维,给出段号和段内地址(每个功能段大小又不一样,没办法像分页那样搞),有外部碎片,无内部碎片

虚拟内存的作用

解决内存不足的问题。

虚拟内存的为什么可以实现

多级存储系统的作用

多级存储系统中包含cache-主存层次和主存-辅存存层次,能够实现成本低,容量大,速度快的存储系统。

页面置换算法

先进先出(FIFO),最近最少使用(LRU),clock置换算法

操作系统标记已被占用的内存的数据结构

  1. 固定分区分配:内存分配表
  2. 动态分区分配:空闲分区表或者空闲分区链
  3. 分页管理:页表
  4. 分段管理:段表

CLOCK置换算法

使用循环队列

  1. 每个页面设置一个引用位,被访问时置为1
  2. 扫描队列,若引用位为1,则置为0,若引用位为0,则淘汰
  3. 若找不到则继续循环

中断处理过程

  1. 中断判优
  2. 中断响应:关中断,保存断点,执行中断隐指令
  3. 中断服务:保护现场,开中断,执行中断服务程序,关中断,恢复现场。
  4. 中断结束

文件管理

I/O管理

I/O控制方式

程序控制方式(一直轮询)、中断控制方式(等数据准备好)、DMA方式(等传满一块数据)、通道方式

DMA方式和中断控制方式的区别

  1. 中断控制方式传送每个数据都需要中断处理。
  2. DMA方式只有传满一批数据才发出中断请求。

spooling技术

假脱机,解决cpu运行速度和I/O设备速度不匹配的问题。将低速I/O设备的数据先放在高速的存储设备。

设备独立性

将所有外部设备都当作文件对待。