主要是从5大部分来的
以磁盘设备操作为例,将信息块从内存写入磁盘:
Load(block,length,device);把指定长度的信息块复制磁盘缓冲区
Seek(device,track);移动磁头至指定的磁道
Out(device,sector);将数据写入指定的扇区
抽象后:
Void write(char *block,int length,int device,int track,int sector)
操作系统由5大部分组成
(1)处理器管理
CPU计算机中央处理单元,是计算机最重要的计算资源,所有程序都必须在CPU上运行,操作系统将cpu的处理时间划分成一个个小的时间片,将进程划分优先级,操作系统通过有效的调度,实现CPU高效利用,随着计算机多CPU或多核的出现,处理越来越并行化。
(2)存储管理
存储管理的主要任务是内存管理、通过一部分外存实现虚拟内存,实现内存的分配与回收。
(3)设备管理
管理计算的所有外部设备如键盘、显示器、打印机等,简化硬件设备的使用,完成用户对外部设备的I/O请求处理。设备驱动程序是设备管理的基础。
(4)文件管理
是对外部存储的管理,外部存储设备如:磁盘、磁带、光盘、U盘等,首先它们都是设备,都必须有驱动程序,在此基础上实现对信息的管理。
(5)联网与通讯的管理
网络就是计算机,今天的计算机离不开网络,操作系统必须实现从网卡和通讯介质即物理层到应用层的管理,网络协议堆栈的实现,也称为网络操作系统。
*操作系统的主要特性
(1)并发性
所谓并发性是指两个或两个以上的活动或事件在同一时间间隔内发生。今天的操作系统都是多道或者多任务操作系统,同时有多个进程同时运行。
(2)共享性
所谓共享性是指同一个计算机资源可以被多个进程共享使用。
① 透明资源共享;
② 独占资源共享;
(3)异步性
所谓异步性也叫随机性,在多任务操作系统中并发进程会导致随机事件的发生。
用户态就是cpu执行用户程序的状态;
内核态就是cpu正在执行操作系统内核程序的状态。
系统调用的分类
(1)进程管理。创建和撤销进程、终止或异常终止进程、阻塞和唤醒进程、挂起和激活进程、监视和跟踪进程、获取和设置进程属性。
(2)文件管理。建立、删除文件,打开、关闭、读写文件,连接、控制、显示文件,文件目录操作等
(3)设备管理。申请设备、释放设备,设备的I/O操作和重定向,获得或设置设备属性,控制和检查设备状态。
(4)存储管理。申请和释放内存。
(5)进程通讯。本地进程之间或和远地进程之间的通信。
(6)信息维护。获取和设置系统日期和时间,获取和设置系统的语言等
中断优先级与多重中断
(1)中断优先级,将各类中断分不同优先级,当有多个不同中断同时发生时,通过裁决,找出优先级最高的中断予以响应。
(2)中断屏蔽,就是禁止CPU响应所有中断,在中断响应服务开始,一定要屏蔽中断,保护现场,然后再开放中断。
(3)多重中断,所谓多重中断就是CPU正处于执行中断服务时,发生优先级更高的中断事件,CPU处理优先级更高级中断服务。
并发进程的特点
一种情况是并发进程之间是不相关,所谓不相关是指并发进程都操作各自的数据集合,一个进程的执行和其他进程无关,一个进程在执行整个过程中不会改变其他的进程的变量。
用数学表示进程无关:
假设:R(P1)={a1,a2,a3,…,an},是进程P1在执行期间所引用的变量集,W(P1)={b1,b2,b3…bn},是进程P1在执行期间所改变的变量集,1966年Bernstein提出如果两个进程P1和P2满足条件:
R(P1)∩W(p2)∪R(P2)∩W(p1)∪W(p1)∩W(p2)= Ø,那么进程P1和P2无关。如果进程无关,进程的执行和顺序程序执行,可以保持封闭性和再现性。
例如:S1:a=x+y;S2:b=z+1;S3:c=a-b;S4:w=c+1;
R(S1)={x,y},R(S2)={z},R(S3)={a,b},R(S4)={c};
W(S1)={a},W(S2)={b},W(S3)={c},W(s4)={w}
S1和S2可以看出是无关的,并发执行没有问题,不会相互影响。
但是如果S3和S4或S2和S3并发执行时就会出现问题。
实现临界区管理的软件算法
1981年G.L.Peterson提出一个简单且巧妙的算法,在上面的基础上增加turn变量,turn=i,表示此时第i进程可以进入临界区。
存储管理的功能
①存储分配。为进程分配内存空间以便运行,完成内存区的分配与回收工作。
②地址映射。内存被抽象成一维地址空间,使得进程认为分配给它的地址空间
是一个大且连续的地址所组成数组或者抽象成二维地址空间,以支持模块化程序设计;实现进程中逻辑地址到内存物理地址的映射。
③存储保护。系统负责隔离分配给进程的内存区,使之互不干扰免遭破坏,确保进程对存储单元的独占式使用,防止地址越界或操作越权。
④存储共享。为了节省内存空间和实现进程通信,系统允许多个进程共享内存区。
⑤存储扩充。内存速度快,但是成本较高,内存是有限的,当内存紧张时,操作系统引入外存储设备,将一部分内存中暂时不用的内容暂时存储在外部存储器的文件中,当需要使用时调度到内存。即虚拟存储管理
内存回收
一开始空闲内存是一个最大的区块,经过多个作业分配回收后,空闲内存是分布在作业和作业之间的空闲内存区块,是不连续,因此未分配的内存分区列表采用链表,通过链接指针将不连续的空闲区块链接起来。当作业需要分配内存时从链表中查找合适的空闲内存区块,分配给作业,在已分配的列表中添加表项。常用的分配方法:
①最先适应分配算法,在未分配链表中顺序查找,找到第一个满足程度要求的空闲内存,实施分配。
②下次适应分配算法,在未分配链表中从上一次扫描结束处开始顺序查找,找到合适为止。未分配链表是一个循环链表。
③最优适应分配算法。在未分配链表中查找空闲分区大小比较最合适的,所谓最合适就是长度满足,分区最小的,这样内存的利用率较高。
④最坏适应分配算法,在未分配链表中查找空闲分区大小最大的分区分配,这样剩余的还可以装入较小的作业。
⑤快速适应分配算法,根据作业长度,把常用的不同长度的分区构成独立的链表,系统根据作业长度在对应长度的链表中获取空闲区块,进行分配。
内存不足时
移动技术,覆盖技术,对换技术。
现代操作系统通过硬件实现逻辑地址到物理地址的转换,此硬件称为存储管理部件(Memory Management Unit MMU)
请求分页虚存管理的详细原理
SPOOLing软件
并非所有的用户层I/O软件都由库函数构成, SPOOLing就是在内核外运行的系统I/O软件,它采用预输入、缓输出和井管理技术。
SPOOLING (即外部设备联机并行操作),即Simultaneous Peripheral OperationOn-Line的缩写,它是关于慢速字符设备如何与计算机主机交换信息的一种技术,通常称为“假脱机技术”。SPOOLing技术实际上是一种外围设备同时联机操作技术,又称为排队转储技术。它在输入和输出之间增加了“输入井”和“输出井”的排队转储环节。
若有进程要求对它打印输出时,SPOOLing系统并不是将这台打印机直接分配给进程,而是在共享设备(磁盘或磁鼓)上的输出SPOOLing存储区中为其分配一块存储空间,进程的输出数据以文件形式存放于此。各进程的数据输出文件形成了一个输出队列,由输出SPOOLing系统控制这台打印机进程,依次将队列中的输出文件实际打印输出。在SPOOLing 系统中,实际上并没有为任何进程分配,而只是在输入井和输出井中,为进程分配一存储区和建立一张I/O请求表。这样,便把独占设备改造为共享设备。
(个人理解:主要是有了输入井和输出井,将对于同一设备的输入输出流统一管理.)
磁盘驱动调度算法
假设磁盘机共有200个柱面,0---199,存在依次到达的下列柱面访问请求: 150,30,190,20,100,55,90。假设开始磁头当前位置为50柱面
①先来先服务的算法
移动臂移动柱面总数=(150-50)+(150-30)+(190-30)+(190-20)+(100-20)+(100-55)+(90-55)=710
②最短移臂时间优先算法
移动臂移动柱面总数=(55-50)+(55-30)+(30-20)+(90-20)+(100-90)+(150-100)+(190-150)=210
③扫描算法
基本思想是移动臂向一个方向移动,当移动到头后改变方向,向相反的方向移动,在移动过程中如果有请求,就响应请求。
移动臂移动柱面总数=(55-50)+(90-55)+(100-90)+(150-100)+(190-150)+(199-190)+(199-30)+(30-20)=328
④分步扫描算法
在一段时间内进程重复请求访问同一柱面会垄断整个设备,造成磁盘臂停留在柱面上不动,称为“磁臂粘性”
分步扫描算法就是为了避免这类问题,其基本思想就是:设置N个子队列,所有的I/o请求按照请求顺序,排成N个队列,每一个子队列按扫描算法进行。这样避免“磁臂粘性”
⑤电梯调度算法
是在扫描算法基础上的改进,扫描算法中无论尽头有没有请求,磁臂都要向尽头移动,而电梯算法思想就是当没有请求时,磁臂停止不动,有访问请求时,磁臂沿着请求的方向移动。
移动臂移动柱面总数=(55-50)+(90-55)+(100-90)+(150-100)+(190-150)+(190-30)+(30-20)=310
⑥循环扫描算法
扫描总是从0道到最大道号进行扫描,当到达尽头后不是反向扫描,而是快速移动到0道,再次向最大道号进行扫描,就这样不断重复。
硬链接与软链接
将文件名和自身的inode链接起来,称为硬链接(hard link)硬链接只能用于单个文件系统,不能跨越文件系统,优点是直接指向inode,访问速度快。另一个链接是软链接,又称为符号链接。符号链接是只有文件名,不指向inode的链接。通过名称来引用文件。 通过符号链接实现不同进程对文件的共享。
VFS由4个对象组成:超级块对象、索引节点对象、目录对象和文件对象
Linux文件系统高速缓存机制
Linux系统为实现文件系统的高性能,采取措施:
①VFS inode高速缓存②VFS dentry高速缓存③页高速缓存。
文件系统的注册和注销
Linux支持几十种文件系统,一个安装好的linux系统支持多少种具体类型文件系统,需要通过register_filesystem()和unregister_filesystem()向文件系统类型注册链表注册或注销。也可以在编译操作系统内核时确定支持哪些文件系统类型;具体的文件系统作为可装卸的模块通过命令insmod/rmmod实现装载和注销。
Linux通过mount和unmount命令实现具体文件系统安装和卸载。