操作系统原理学习笔记
操作系统概述
是管理计算机硬件与软件资源的系统软件,同时也是计算机系统的内核与基石。
常见的操作系统有微软的Windows,苹果的macOS,linux,Unix等。
操作系统主要职能:
- 管理系统硬件,软件,数据资源
- 控制程序运行
- 人机之间的接口
- 应用软件与硬件之间的接口
内容提要:
- 进程管理
- 存储管理
- 文件管理
- 作业管理
- 设备管理
- 微内核
一、进程管理
进程的状态
一个系统进程可以简单分为三种状态:等待、就绪、运行。

等待状态:进程等待其成功的天时,地利,人和。
就绪状态:万事俱备,只欠东风。
运行状态:送东风(安排时间片并在该时间片内执行该程序,时间片用完,程序退回就绪状态)
一个实际的操作系统,进程的状态及其转换更为复杂。

什么是前驱图
以包饺子为例:

进程的同步与互斥
进程同步:散布在程序中的若干程序片段,按照规定的时间,协调完成程序运行。
进程互斥:同一时刻多个进程片段争夺一个运行资源(千军万马过独木桥)
同步是一种复杂的互斥,互斥是一种特殊的同步
PV操作
进入临界区时执行P操作(申请),退出临界区时执行V操作(释放)
- 临界资源:系统中某些资源一次只允许一个进程使用,这样的资源称为临界资源。也叫共享资源或互斥资源。
- 临界区:一个程序片段的集合,这些程序片段分散在不同进程中,对某个共享的数据结构(临界资源)进行操作。通俗地讲 就是访问临界资源的那段代码块。
- 信号量:执行PV操作时要给定的值。
两道例题理解PV操作的应用:


死锁问题
一个进程在等待一件不可能发生的事(即永远发配不到运行资源)即进程死锁。
单个或多个进程产生死锁,就会造成系统死锁。
例题:

理解:
这是一个典型的最少资源求解问题。
我们可以先给三个进程个安排两个资源,这样三个进程就都在等待状态,这个时候,只需要安排一个资源个任意一个进程(如给A),A执行完毕后释放资源的资源完全足够剩下进程使用!这样2*3+1=7即最少分配资源
结论:
这类问题,假定有n个进程,每个进程需要k个资源,求最少资源解决死锁。对应公式为n*(k-1)+1。
死锁的预防与避免
造成死锁的四大条件:
- 互斥
- 保持和等待
- 不剥夺
- 环路等待
四个条件缺一不可!
要预防死锁,就要打破这四大条件。
即要有序资源分配法—常见的有“银行家算法”。
银行家算法
分配资源的原则:银行家算法


二、存储管理
分区存储

页式存储
用户程序划分成若干固定大小的区域,称为“页”;
内存空间分成若干个物理块,页和块的大小相等。
将用户程序的任一页放在内存的任一块中,实现了离散分配。
等分内存
内存空间被等分成若干物理块,也称为物理页;一般一个物理块取2的次幂大小,所有物理块从0开始编号,称为物理页号。
逻辑地址
系统将程序的逻辑空间按照同样大小也划分成若干页面,称为逻辑页面也称为页。程序的各个逻辑页面从0开始依次编号,称作逻辑页号或相对页号。
每个页面内从0开始编址,称为页内地址。程序中的逻辑地址由两部分组成:页号P和页内地址。
实现原理

优点:内存利用率高,碎片小,分配及管理简单。
缺点:增加了系统开销,可能产生抖动。
优点:
地址映射
逻辑地址 → 物理地址
给定一个逻辑地址和页面大小,如何计算物理地址?
1) 根据页面大小可计算出页内地址的位数
2) 页内地址位数结合逻辑地址计算出页内地址(即,块内地址)和页号
3) 页号结合页表,即可得出块号
4) 块号&块内地址即可得出物理地址


例题

段式存储
程序逻辑空间分为若干个具有完整逻辑意义信息的段。
内存空间为每一个段分配一个连续的分区。
与分页存储不同,段式存储的分段大小不是固定的,而是每一段都有完整的意义;例如分页是将一个人每隔10厘米切割,而分段则是按部位切割,如按头部、身体、腿部分段方式切割。
段内地址的位数可以决定段的大小。
逻辑地址 = 段号&段内地址


优点:多道程序共享内存,各段程序修改互不影响。
缺点:内存利用率低,内存碎片多。
地址映射


求基址的过程与页式存储中求块号的过程原理相同,这里需要注意的是,物理地址是基址+段内地址,而不是基址&段内地址,由逻辑地址得到段号、段内地址,再根据段号和段表求出基址,再由基址+段内地址即可得物理地址。
段页式存储
分页存储+段式存储

优点:空间浪费小、存储共享容易、存储保护容易、能动态链接。
缺点:由于管理的软件增加,复杂性和开销也随之增加,需要的硬件以及占用的内容也有所增加,使得执行速度大大下降。
页面置换算法
- 最优算法(OPT)
- 随机算法(RAND)
- 先进先出算法(FIFO)(常用)
- 最近最少使用算法(LRU)(常用)

三、文件管理
索引文件结构


文件和树型目录结构
文件属性
- R 只读文件
- A 存档文件
- S 系统文件
- H 隐藏文件
文件名组成
- 驱动器号
- 路径
- 主文件名
- 扩展名
一个树型目录结构

绝对路径:从盘符开始的路径
相对路径:从当前路径开始的路径
例如当前在D2盘,那D2盘的F5文件的绝对路径为: /D2/W3/F5;相对路径为
:W3/F5。
空闲存储空间管理
- 空闲区表法(空闲文件目录)
- 空闲链表法
- 位示图法
- 成组链接法
位示图


四、设备管理
数据传输控制方式

虚设备与spooling技术

五、微内核
