【笔试基础】 操作系统

基础

Linux指令

可以使用 man 命令查阅更多的详细信息,如man find。

类别命令用法说明
文件/目录操作lsls [选项] [目录]列出指定目录下的文件和子目录
pwdpwd显示当前工作目录的绝对路径
cdcd [目录]切换工作目录
treetree [目录]以树形结构显示目录和文件
touchtouch [文件名]创建空文件或更新文件时间戳
mkdirmkdir [目录名]创建新目录
rmdirrmdir [目录名]删除空目录
rmrm [选项] [文件或目录]删除文件或目录
文件查看catcat [文件名]查看文件内容,适用于小文件
moremore [文件名]分页查看文件内容
lessless [文件名]分页查看文件内容,支持向上滚动
headhead -n [行数] [文件名]查看文件的前几行
tailtail -n [行数] [文件名]查看文件的最后几行
文件操作cpcp [源文件] [目标文件或目录]复制文件或目录
mvmv [源文件] [目标文件或目录]移动或重命名文件或目录
zipzip [选项] [压缩文件名.zip] [文件或目录]创建压缩文件
unzipunzip [压缩文件名.zip]解压缩文件
tartar [选项] [压缩文件名.tar] [文件或目录]创建或解压缩 tar 压缩包
搜索/文本处理findfind [路径] [条件]查找文件或目录
grepgrep [选项] '模式' [文件名]搜索文件中符合模式的文本
时间/日期datedate显示或设置系统日期和时间
calcal [选项]显示日历
系统信息unameuname [选项]显示系统信息,如内核名、版本等
bcbc基本计算器,用于执行数学计算
帮助命令manman [命令]查看命令的详细手册

操作系统概述

1.操作系统的特征


并发:多个事件在同一时间间隔内发生(宏观并行,微观串行)
共享:系统资源可供内存中多个并发执行的进程共同使用
互斥共享:一段时间内只允许一个进程访问该资源,常见的写互斥共享
同时共享:在一段时间内可以由多个进程并发访问,常见的读共享
虚拟:将一个物理实体进行映射成为多个逻辑对应物
时分复用:虚拟处理器技术:多道程序并发执行分时使用,轮流占用处理器
空分复用:虚拟内存:每个进程拥有各自的虚拟地址空间,真正使用时,才会通过mmp映射到物理内存的页
异步:由于资源有限,并发的进程执行过程不可准确预测,但是相同运行环境必须保证运行结果确定性

操作系统功能有文件管理,内存管理,进程管理,设备管理四种,下文将详细进行介绍。

内存管理

类别应用功能说明
内存管理分页(Paging)将内存分割成固定大小的页面,并将进程的地址空间映射到物理内存中的页面,以提高内存利用率和减少外部碎片。
分段(Segmentation)将内存划分为不同长度的段,每个段对应不同类型的数据或代码段,允许更加灵活的内存使用。
虚拟内存(Virtual Memory)使用磁盘作为扩展内存,允许程序使用比物理内存更大的地址空间,提升系统多任务处理能力。
缓存管理(Cache Management)使用高速缓存存储器来保存频繁使用的数据,减少访问主内存的时间。
交换空间(Swapping)将不活跃的进程从物理内存移到磁盘(交换空间)中,以腾出物理内存给其他进程使用。

内存管理分配方式

内存分配方式描述优点缺点适用场景
连续内存分配分配连续的物理内存块实现简单,寻址效率高容易产生内存碎片,内存利用率低小型程序或不需要动态分配的场景
分页将内存分割为固定大小的页块,分配不连续的内存减少外部碎片,灵活分配地址转换带来额外开销现代操作系统广泛应用
分段根据逻辑段分配不连续的内存更符合程序结构,灵活性高容易产生外部碎片,段表管理复杂适用于复杂程序管理
段页式结合结合分段与分页的优点既有分段灵活性,也减少了碎片需要维护多个表,开销较大大型复杂系统的内存管理
堆内存分配动态分配内存,通常用于数据结构如链表、树等动态灵活容易导致内存泄漏或碎片需要动态内存分配的数据结构
栈内存分配用于函数调用和局部变量的临时数据存储分配释放迅速,不易产生碎片空间有限,不能处理大量或长期占用内存的数据函数调用、局部变量存储
伙伴系统使用 2 的幂次划分内存块,适应不同大小的分配需求合并和分裂高效,碎片问题可控可能产生内部碎片操作系统内核和嵌入式系统

虚拟内存

内存映射步骤

在MMU进行地址转化时,如有效位未0,表示该页面并没有映射到真正的物理页面,就会页面中断

页面中断步骤

TLB 是页表的高速缓存,保存了最常访问的页表项 (PTE)。由于 TLB 是硬件实现的,速度极快。当 MMU 收到虚拟地址 (VA) 时,首先查询 TLB,如果命中且权限合法,直接返回对应的物理页框号 (PPN)。若未命中,则查询主存页表并将新的 PTE 存入 TLB,必要时替换现有的 PTE。

TLB 命中流程:
1. CPU 生成虚拟地址 (VA);
2. MMU 从 TLB 取出 PTE;
3. MMU 将 VA 翻译成物理地址 (PA);
4. 高速缓存/主存返回 PA 对应的数据给 CPU。

TLB 不命中流程:
1. CPU 生成虚拟地址 (VA);
2. 查询 TLB 失败,进入主存页表查询并将 PTE 存入 TLB,必要时替换;
3. MMU 翻译 VA 为物理地址 (PA);
4. 高速缓存/主存返回 PA 对应的数据给 CPU。

多级页表

多级页表通过将大页表拆分为多级结构来减少内存开销。以二级页表为例,假设虚拟地址为 32 位,其中 10 位用于一级页表索引,10 位用于二级页表索引,12 位用于地址偏移量。每个页表项 (PTE) 为 4 字节,页面大小为 4KB,共需 2^20 个 PTE。一级页表每个 PTE 映射 4MB 虚拟地址空间,由 1024 个连续的页面组成,整个 4GB 地址空间只需 1024 个一级 PTE。

多级页表的优势在于,只为实际使用的地址分配二级页表,未使用的一级页表项不需要对应的二级页表,从而节省大量内存。对于大多数程序,大部分虚拟内存空间都未分配,因此带来显著的内存节约。

进程管理 

类别应用功能说明
进程管理进程创建(Process Creation)使用系统调用(如 fork())创建新进程,允许操作系统执行并行任务。
进程调度(Process Scheduling)根据特定的调度算法(如时间片轮转、优先级调度)分配 CPU 资源给各个进程,确保系统的公平性和效率。
进程同步(Process Synchronization)通过使用锁、信号量或其他同步机制,协调多个进程之间的运行顺序,避免数据冲突或竞争。
进程通信(Interprocess Communication, IPC)允许进程之间通过消息队列、共享内存、信号等方式进行数据交换与通信。
死锁处理(Deadlock Handling)通过检测、预防或解除死锁的方式来避免或解决进程间资源争用的死锁问题。

详看这篇文章

助你初步了解进程与线程-建立知识体系-CSDN博客

文件管理

类别应用功能说明
文件管理文件系统(File System)定义文件的存储结构和访问方法,允许用户创建、删除、读取和修改文件,常见文件系统有 NTFS、FAT32、EXT4 等。
目录管理(Directory Management)提供目录结构,用于组织文件的层次结构,支持文件路径查找、文件分类管理等功能。
文件权限(File Permissions)控制用户和进程对文件的访问权限,常见权限包括读取、写入、执行权限。
文件锁定(File Locking)通过锁定机制,防止多个进程同时修改文件,从而避免文件数据的不一致。
文件备份与恢复(Backup and Restore)提供文件数据的备份和恢复功能,以防止数据丢失或损坏。

设备管理 

类别应用功能说明
设备管理设备驱动程序(Device Drivers)操作系统通过设备驱动程序与硬件设备进行通信,提供设备的输入/输出接口。
中断处理(Interrupt Handling)操作系统捕获设备发出的中断信号,及时响应设备的请求,并执行相应的处理程序。
设备分配(Device Allocation)管理设备资源的分配和释放,确保设备被合理地分配给进程,并避免资源冲突。
I/O调度(I/O Scheduling)通过 I/O 调度算法(如电梯算法、FCFS 等)优化设备的输入/输出操作,减少等待时间,提高系统性能。
缓冲区管理(Buffer Management)为设备和主内存之间的数据交换提供缓冲区,以减少设备和 CPU 之间的速度差异,确保数据传输的高效性。

磁盘调度算法

算法名称描述优点缺点适用场景
FCFS按请求到达顺序处理简单,无饥饿问题寻道时间长,效率低适合负载不重且顺序访问的场景
SSTF优先处理距离最近的请求寻道时间短可能造成饥饿适合较少请求、随机访问的场景
SCAN磁头往返移动处理请求(电梯算法)平均寻道时间短,较少饥饿往返增加延迟适合大量请求,访问较为集中的场景
C-SCAN磁头单向移动,处理后回到起点重新扫描请求等待时间均匀往返不处理请求,寻道时间略高适合请求位置分散的场景
LOOK类似 SCAN,但只到有请求的位置减少不必要的移动,效率更高平均等待时间略长于 SSTF适合大多数磁盘访问场景
C-LOOK类似 C-SCAN,但只处理到有请求的位置等待时间均匀,减少无效移动寻道时间略高于 LOOK适合请求频繁的随机访问场景

如果请求的顺序如下:

98,183,37,122,14,124,65,67

先来先服务算法

大量应用进程竞争使用磁道,访问的磁道一般比较分散,这种算法性能低下,寻道时间过长。

最短寻道算法

该算法优先选择从当前磁头位置所需寻道时间最短的请求,那么磁盘的写入顺序为:65,67,37,14,98,122。

该算法相对于先来先服务寻道时间会减少很多,但是会造成饥饿现象,因为我们的磁盘的请求随时都可能产生,假设后续的请求都是小于183磁道,那么183磁道的请求永远不会被响应,于是就产生了饥饿现象。 

扫描算法

扫描算法(电梯算法)规定:磁头在一个方向上移动,访问所有未完成的请求,直到磁头到达该方向上的最后的磁道才调换方向。假设前进的方向是磁道号减少的方向,那么处理请求的顺序是37,14,0,65,67,98,122,124,183 

 

扫描算法虽然不会产生饥饿,但是对于中间部分的磁道来说响应较快,边缘部分响应较慢。 

循环扫描算法

循环扫描算法规定:磁头只能朝某个方向移动,返回时直接复位磁头(这个很快),并且返回过程中不处理任何请求。

循环扫描算法相比于扫描算法,每个磁道的响应频率比较平均。

LOOK与C-LOOK算法

LOOK算法和C-LOOK算法分别是对扫描算法和循环扫描算法的优化,优化的思路就是:磁头在移动到最远的请求位置,然后立刻向反方向移动。

  • LOOK算法反向移动途中会响应请求
  • C-LOOK反向移动途中不响应请求

 参考文献

1.https://blog.csdn.net/qq_43840665/article/details/131600761

 2.虚拟内存 & I/O & 零拷贝-腾讯云开发者社区-腾讯云 (tencent.com)

3.磁盘调度 - 知乎 (zhihu.com)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值