目录
1 引论
1.1 操作系统的概念
操作系统是控制和管理计算机硬件和软件资源、合理地组织计算机的工作流程,以及方便用户使用的程序和数据的集合。
1.2 操作系统的作用
①OS是用户和计算机硬件系统之间的接口;
②OS是计算机系统资源的管理者;
③OS实现了计算机资源的抽象。
1.3 操作系统的发展
1.3.1 未配置操作系统的计算机系统
①人工操作系统(装带/卸带);
②脱机输入/输出方式(为了解决CPU和IO速度不匹配)。
1.3.2 批处理系统
①单批道处理系统(一个作业紧接着一个作业处理,为了解决CPU和IO速度不匹配);
②多批道处理系统(作业首先被存放在外存上并排成一个队列称为‘后备队列’,由作业调度程序按照一定算法从后备队列中挑选若干作业调入内存,多个作业共享CPU和IO)。
1.3.3 分时系统
分时系统是指在一台主机上连接了多个配有显示器和键盘的终端并由此所组成的系统,分时系统强调人机交互和共享主机。
1.3.4 实时系统
强调及时性。
2 进程管理
2.1 进程的描述
2.1.1 进程的定义和特征
为了能使进程并发执行,并且能对并发执行的程序加以描述和控制,引入进程;
定义:进程是程序的一次执行,是系统进行资源分配和调度的一个独立单位;
特征:动态性、并发性、独立性和异步性;
进程的组成:程序段、相关数据段和PCB;
2.1.2 进程的基本状态和转换


2.2 进程同步
2.2.1 信号量机制
①整型信号量
②记录型信号量
③AND型信号量
④信号量集
2.2.2 管程机制
管程可以看做一个软件模块,它是将共享的变量和对于这些共享变量的操作封装起来,形成一个具有一定接口的功能模块,进程可以调用管程来实现进程级别的并发控制。
2.3 线程管理
线程引入原因:为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性而引入的。
线程定义:是操作系统分配和调度的基本单位,包含在进程中,是进程中的实际运作单位。
3 处理机调度与死锁
3.1 作业调度
3.1.1 作业调度算法
①先来先服务(FCFS)调度算法;
②短作业优先(SJF)调度算法;
③优先级调度算法(PSA);
④高响应比优先调度算法(HRRN)
HRRN算法的优先权可表示为(等待时间+要求服务时间)/(要求服务时间)
3.1.2 进程调度算法
①时间片轮转算法(RR);
②优先级调度算法(抢占式和非抢占式);
③多队列调度算法(多处理机);
④多级反馈队列调度算法(时间片用完后降级为低一级的就绪队列)。
3.2 死锁
3.2.1 死锁是?
多个进程在执行过程中,因争夺同类资源且资源分配不当而造成的一种互相等待的现象,若无外力作用,它们都将永远无法继续执行,这种状态称为死锁。
3.2.2 产生死锁的必要条件
①互斥条件:一段时间内,某资源只能被一个进程占用;
②请求和保持条件:进程已经保持了至少一个资源,但又提出了新的资源请求;
③不可抢占条件:进程已获得的资源在未使用完成之前不能被抢占;
④循环等待条件:在发生死锁时,必存在一个进程——资源的循环链,即进程的集合{P0,P1,P2,…Pn}中的P0正在等待P1占用的资源,P1正在等待P2占用的资源,……Pn正在等待P0占用的资源。
3.2.3 处理死锁
①预防 ②避免(银行家算法) ③检测 ④解除
4 存储器管理
4.1 连续分配存储管理方式
4.1.1 单一连续分配
只装一道用户程序,整个内存的用户空间由该程序独占。
4.1.2 固定分区分配
将用户空间划分为大小相等的分区,每个分区只有一道作业。
4.1.3 动态分区分配
根据进程实际需要动态为之分配空间。
4.1.4 基于顺序搜索的动态分区分配算法
基于顺序搜索的意思是将系统中的空闲分区链接成一个链,依次搜索空闲分区链上的空闲分区,寻找一个大小满足要求的空闲分区。
①首次适应算法(FF):从链首开始符合条件的第一个空闲分区;
②循环首次适应算法(NF):从上次找到的空闲分区的下一个分区开始找一个符合条件的空闲分区;
③最佳适应算法(BF):在空闲分区链中找一个符合条件且容量最小的空闲分区(需要将空闲分区按小到大的顺序排序);
④最坏适应算法(WF):与BF相反,挑选容量最大的空闲分区(需要将空闲分区按大到小的顺序排序)。
4.1.5 基于索引搜索的动态分区算法
快速适应算法、伙伴算法、哈希算法。
4.1.6 动态可重定位分区分配
4.2 页式存储管理方式
将各进程的虚拟空间划分成若干个长度相等的页,页式管理把内页的划分存空间按页的大小划分成片或者页面,然后把页式虚拟地址与内存地址建立一一对应页表,并用相应的硬件地址变换机构,来解决离散地址变换问题。
每个进程对应一个页表。
对于两级页表和多级页表来说,高一级的页表中存放的是低一级的页表在内存中的物理块号,以此来实现进程从逻辑地址到物理地址的变换。
4.3 段式存储管理方式
作业的地址空间被划分为若干个段,每个段定义了一组逻辑信息,每个段都从0开始编址并采用一段连续地址空间,每个段的长度不一定相同。
页式与段式存储管理方式的区别?
①页是信息的物理单位,是系统管理上的需要,而分段是信息的逻辑单位,通常包含的是一组意义相对完整的信息,其目的主要是更好的满足用户的需求;
②页的大小固定且由系统决定,段的大小不固定;
③分页的用户程序地址是单一线性的,而分段的用户程序地址需要给出段名和段内地址。
4.4 段页式存储管理方式
首先将用户程序分为若干个段,把每个段分成若干个页,并为每一个段赋予一个段名。
5 虚拟存储器
5.1 页面置换算法
①最佳置换算法(OPT):选择的被淘汰页是以后永不使用的、或者在最长(未来)时间内不会再被访问的页面;
②先进先出置换算法(FIFO):淘汰最先进入内存的页面;
③最近最久未使用置换算法(LRU):选择最近最久未使用的页面来置换(需要一个访问字段来表示每一个页最后一次被访问后所经历的时间);
④最少使用置换算法(LFU):选择最近使用频率最低的页面来置换(需要一个计数器)。
⑤Clock置换算法;
6 输入输出系统
6.1 磁盘调度算法
6.1.1 早期的磁盘调度算法
①先来先服务(FCFS):按照进程访问磁盘的先后顺序;
②最短寻道时间优先(SSTF):选择的进程要求其访问的磁道与当前磁头所在的磁道距离最近;
6.1.2 基于扫描的磁盘调度算法
①扫描算法(SCAN):若磁头自里向外扫描,则考虑下一个访问对象应是其欲访问的磁道既在当前磁道之外又是距离最近的,当从里到外扫描完了再由外到内扫描;
②循环扫描算法(CSCAN):磁头的扫描方向固定的扫描算法。
7 文件管理