操作系统基础
基本概念
定义:能有效地组织和管理系统中的各种软硬件资源,合理地组织计算机系统的工作流程,控制程序的执行,并向用户提供一个良好的工作环境和友好的接口
从功能来区分
-
用户角度上,操作系统是一个控制软件
-
管理应用程序
-
为应用程序提供服务
-
杀死应用程序
从内部管理对象
-
资源管理
-
管理外设,分配资源
管理、控制、服务功能
资源管理角度(抽象理解)
资源-CPU
文件-磁盘
地址空间-内存
操作系统架层次结构
-
硬件之上
-
应用程序之下
为应用软件提供服务支撑
Windows、Linux的界面属于外壳shell,
内核(kernel)是研究重点。
kernel
-
CPU调度器
-
物理内存管理
-
虚拟内存管理(在有限物理内存之上)
-
文件系统管理disk
-
中断处理与设备驱动
特征
并发
计算机系统中同时存在多个运行的程序,需要调度OS管理和调度
--并发-并行, 一段时间-一个时间点(多个CPU)
共享
同时访问,
互斥共享
虚拟
利用多道程序设计技术,让每个用户都觉得有一个计算机专门为他服务
异步
程序的执行不是一贯到底,而是走走停停,向前推进的速度不可预知
但只要运行环境相同,OS需要保证程序运行的结果也要相同
进程的基本概念
进程是程序的一次执行
状态转换
运行:在处理机上运行
就绪:一个进程获得了处理机外的一切所需资源,一旦得到处理机即可运行
阻塞:wait() sleep()
进程间的同步与互斥
同步:指在系统中一些需要互相合作,协同工作的进程
互斥:指系统中多个进程因争用临界资源而互斥执行
临界资源:是指有些资源一次只能提供一个进程使用。打印机、共享变量
如何实现进程间的同步与互斥?
①信号量机制
信号量是一个整型变量,根据控制对象的不同被赋予不同的值。
公用信号量:实现互斥,初值为1或资源的数目(5台打印机,将公用信号量设置为5,有一个人用就-1)
私用信号量:实现同步,初值为0或某个正整数
信号量S的物理意义:大于0表示资源可用数,小于0表示阻塞队列中等待的进程数
PV操作,P申请资源,V释放资源,要成对出现。
P操作:S=S-1→S>=0继续进程,or S<0,阻塞
V操作:S=S+1 →S>0继续进程,or S<=0,释放
生产者消费者问题
两个以上的进程互相都要求对方已经占有的资源导致无法继续运行下去的现象。
①互斥:A用了B就不能用这个资源
②请求保持:A占用了就一直保持对资源的占有权
③不可剥夺:处理机不能剥夺A的占有权
④环路条件:进程资源图,形成环路
处理策略有:鸵鸟策略、预防策略、避免策略和检测与解除死锁策略
死锁预防:限制并发进程对资源的请求
死锁检测,资源剥夺:设置优先级,检测到死锁时按优先级解除资源
银行家算法
①先根据每个进程的最大需求量减去已分配资源数得到还需要的资源数
②根据系统给每个进程分配的资源数求出各类资源还剩多少资源数
③根据每个进程还需要的资源数、系统还剩的资源数,求出先处理那个进程可以释放资源
线程
进程的基本属性:可拥有资源的独立单位,可独立调度和分配的基本单位
引入线程后:线程作为调度和分配的基本单位,进程作为独立分配资源的单位
一个进程中有多个线程,共享该进程的资源。
用户级线程:依赖于内核
内核支持线程:依赖于内核
存储管理
基本概念
逻辑地址:虚拟地址、相对地址
程序员使用的地址只是个用符号命名的地址,是虚拟的
物理地址:
绝对地址,主存中真实存在的
地址重定位
逻辑地址转换为对应的物理地址
dynamic 重定位
static重定位
分区存储管理
把主存划分成若干个区域,给每个区域分配给一个作业使用
固定分区:系统生成时已经分好区
可变分区:动态的分区方式
可重定位分区:分配好的区域可以移动
分页存储管理
分页原理:
将进程的地址空间划分成若干个大小相等的区域,称为页。
将主存的空间也划分成与页大小相同的若干个物理块,称为块或页框。
页表存储了进程和主存区块的映射关系。
分段存储管理
将用户程序或作业的地址空间按内容划分为段,比如主程序一段,子程序一段,数据专门放一段,每个段的长度是不相等的,但是每个段占用一个连续的分区。
为每个进程建立一张映射表,称为段表。
逻辑地址是段好和段内地址
段页式存储管理
先将整个主存划分为大小相等的存储块,将用户程序按程序的逻辑关系分为若干个段,然后再将段划分成也。
段表+页表
虚拟存储管理
程序局部性原理:程序在执行时将呈现出局部性规律,即在一段时间内,程序的执行仅限于某个部分,他所访问的存储空间也局限于某个区域内。
时间局限性
空间局限性
虚拟存储器
一部分装入主存,其余部分暂时留在磁盘上,需要时再装入主存。从用户角度看就是系统具有的主存容量比实际的主存容量大得多,称为
请求分页系统的实现
在纯分页的基础上增加了请求调页功能,页面置换功能
在请求分页系统中,每当所要访问的页面不存在主存时编产生一个缺页中断
页面置换算法
设备管理
I/O软件
目标:提高设备的利用率,提高CPU与I/O设备之间的并行操作速度,并为用户提供方便、统一的界面
中断处理程序;设备驱动程序;与设备无关的系统软件和用户级软件
I/O请求:
用户进程
→设备无关软件
→设备驱动程序
→中断处理程序
→硬件
设备管理采用的相关技术
Spooling技术
目的:缓和CPU的高速性和I/O设的低速性之间的矛盾
A慢→B快→
B要等A,降低了效率
B等A时,B可以做其它的事
A可以一直放在缓冲区
磁盘调度算法
分为移臂调度和旋转调度,先进行移臂调度,再进行旋转调度
目标:使磁盘的平均寻道时间最少
读取磁盘数据的时间 = 寻道时间+旋转延迟+数据传输时间
移臂调度算法:
先来先服务
最短寻道时间有限
扫描算法(考虑磁头当前的移动方向)
单向扫描调度算法(规定磁头只能做单向移动)
旋转调度算法
如果进程请求的是不同编号的扇区:总是让首先到达磁头位置下的扇区进行先行读写操作
如果进程请求访问的是同一扇区:旋转调度时可以任选一个扇区进行读写操作
文件管理和作业管理
文件的逻辑结构
用户角度看到的文件组织形式,与内存上存放方式不同
文件的物理结构
从实现的角度看,文件在存储器上的存放方式
文件的目录结构
绝对路径:C:\
相对路径:当前工作目录下的路径名
文件存储空间管理
文件保存到外存时,我们首先要知道哪些存储空间是占用的。哪些是空闲的,因此我们需要对磁盘空间进行管理
空闲区表、位示图、空闲块链和成组链接法
①空闲区表:为磁盘的所有空闲区建立一张空闲表。(适用于连续文件结构)
②位示图:每个物理块都做标记。0空闲,1占用
③空闲块链:每一个空闲物理块中设置一个指针,指向下一个空闲物理块,空闲物理块构成一个链表,链表的头指针放在文件存储器一个特定的位置上。
④成组链接法
作业调度算法
①先来先服务
②短作业优先
③响应比高优先
Rp = 作业响应时间/作业执行时间
作业响应时间=(作业等待时间+作业执行时间)
④优先级调度算法:按照系统设定的优先级或者用户指定的优先级
⑤均衡调度算法:均衡考虑
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析