操作系统知识点纲要

第一章 操作系统的简介
一、概念
	1、操作系统的定义:
		对上层负责:是控制应用程序执行的程序
		对下层负责:资源管理器
	2、操作系统的地位
	
二、发展历史
	无->单道批处理->多道批处理->分时系统->多样的OS
	
三、功能
	处理器管理的功能
	存储器管理的功能
	设备管理的功能
	文件管理的功能
	用户接口
	
四、结构
	整体化结构
	模块化结构
	层次化结构
	微内核结构
		内核特征:并发、共享、虚拟、异步
		
五、运行环境
	CPU状态/模式
	中断系统:device
	异常:应用程序
	系统调用:应用程序
	
----------------------------------------------------
	
第二章 进程管理
一、进程概念
	进程的定义:一个正在执行的程序,包括程序计数器、寄存器和变量的当前值
	进程的状态及其转换:五状态模型
	进程实体与特征
		进程实体:PCB、指令、数据、堆栈
		PCB的内容:进程控制信息、进程标识、进程状态信息
	
		进程的特征:动态性、并发性、独立性、异步性、结构特征
	
二、进程控制
	进程切换(上下文切换)
	进程的创建
		
		fork
		进程树
	进程的终止/撤销
		wait、exit
		僵尸进程:子进程结束,父进程没有wait处理掉结束的子进程的
			PCB,导致子进程的内存空间虽然都被释放掉了,但是PCB
			仍然没有被释放,浪费了进程id资源
		孤儿进程:父进程在子进程结束之前结束,子进程变成孤儿进程。
		
	进程的阻塞与唤醒
	
	
三、进程调度
	周转时间、响应时间
	调度算法:
(大题)	1.FCFS:非抢占
		
		2.SJF:抢占 或 非抢占,选择下一个最短处理时间的进程执行
		
		3.RR:所有就绪进程按照FCFS原则排队,加上时间片轮转
		
		4.优先权:|抢占
			    |非抢占
		
		5.HRRN:非抢占
			响应比=(等待处理器的时间 + 处理时间)/ 处理时间
			实际上,按照响应比动态设定优先级
		
(选择题)	6.多级队列调度:
			将就绪队列划分多个队列,
			队列间调度:可以按照时间片
			队列内调度:可以按照优先级
			
(选择题)	7.多级反馈队列调度:可抢占(体现在,只有高优先级的队列处理完以后,才可以处理低优先级的队列)
			划分多个队列,优先级从高到低
			同一个队列内按照FCFS只被分配一个时间片,执行完一个时间片后降级,进入低一级优先级队列
			不同队列之间按照优先级调度队列
			最低优先级队列按照时间片轮转调度(因为没有更低的优先级了)
			当有高优先级队列中存在进程时,把当前正在运行的进程放回当前队列的队尾,再调度高优先级的队列
			
			    
四、线程管理
	线程为处理机调度角色
	用户线程、内核线程的区别
	
五、进程同步
	1、基础理论
		进程的特点:动态性、并发性、独立性、异步性
		进程之间的关系:独立的、协作的
		
		竞争条件:两个以上进程共享数据,而最终执行结果则是根据执行次序而决定的
		
		临界资源:共享数据
		临界区:
			临界区访问规则:空闲则入、忙则等待、有限等待、让权等待(可选)
			
		
	2、硬件方法
		屏蔽中断
		提供特殊硬件原子指令 
		自旋锁(互斥锁):忙等待
		
	3、信号量  
		计数信号量
		条件同步:先signal(up)后  wait(down)
		互斥		
	
		死锁:
		
		饥饿:没有被死锁,但是因为优先级低总是被抢占,分配不到CPU
	
		*生产者消费者模型   //PPT46页
		哲学家就餐问题(只需要理解改进方法)
		*读者-写者问题
			读者优先:如ppt所述 
			
			//写者优先:
			//读写公平:只需要修改读者,在读者read()完成,Rcount--后,
				先释放锁(signal),如果此时读者不等于0,再获取锁(wait)
				这样,在这释放和获取期间,写者就有可能能拿到锁。
	
	4、管程(不考)
	
六、进程通信
	1、管道
		匿名管道只能用于父子进程之间,通信单向;命名管道不需要进程之间的父子关系,通信双向
		fd[0]: 读  ; fd[1]:2、消息传递
		send、receive
		
	3、共享存储区
		
	
七、死锁
	1、死锁的基本概念
		死锁的定义:如果一个进程集合中每一个进程都在等待只能由
			本集合中的另一进程才能引起的事件,则称这种状态为死锁
		
	2、产生死锁的四个必要条件
		互斥、占用并等待、资源不可抢占、环路等待
		
		资源分配图:描述死锁,有环不一定有死锁
		
	3、死锁的预防
		预先在系统实现时就把死锁排除
		预防四个必要条件的发生。很难实现
		
	4、死锁的避免
		避免环路等待的发生,需要进程声明需要的资源最大需求(银行家算法中Allocated+Need)
		动态检测资源分配状态,确保不会出现环路等待
		
		安全状态:存在一条安全路径
		非安全状态:不存在一条安全路径,但是可能有可以运行的进程
		死锁状态:属于非安全状态,不存在可以继续运行的进程。
		检测当前状态是否是安全状态:
		银行家算法:需要事先声明进程的所需的最大资源、进程的个数的确定的,资源的个数也是固定的
			Max, Allocation, Need, Available
		
	5、死锁的检测与解除
		每次进行资源发配后检测、定期检测(安全状态检测算法)
		死锁的解除,允许抢占,终止进程释放资源

-----------------------------------------------------
第三章 存储管理

一、存储管理概述
		
	
二、实存储器管理
	1、存储管理相关概念
		物理地址、逻辑地址
		重定位:逻辑地址向物理地址映射
			发生的时机:编译时、加载时、执行时
			基地址寄存器、界限寄存器	
		
	2、分区式存储管理(进程空间全部连续存放在内存中)
		固定分区:内部碎片
		可变分区:外部碎片
			位图管理方式:
			链表管理方式:(注意释放的时候合并空闲空间)
				最先适配
(大题)			下次适配
				最佳适配
				最差适配
			外部碎片的解决方式:紧凑
		Buddy系统(伙伴系统):两者的结合
	
	进程空间非连续存放在内存中:需要解决逻辑地址到物理地址的映射关系	
	3、段式存储管理
		段表:<段号(逻辑),段起始地址(物理),段长度>
		例:x86        CS:IP
	4、页式存储管理
		页面、页帧
		页面个数可以不等于页帧个数,多个页面可以映射到一个页帧,也可能不对应页帧,替换
		
		页表、TLB(页表的cache)
		页表最大长度:页帧个数?还是页面个数?????---页面个数
		
		流程:逻辑地址->MMU->页表->内存(cache)
		
		问题:访问一个内存中的变量,需要2次访存
		解决方法:TLB
		
		问题:进程的页表很大
		解决方法:多级页表、反置页表:表项的个数等于页帧数
	
	5、段页式存储管理
		段表+页表
	
三、虚拟存储器管理
	覆盖技术、交换技术
	
	
	x86-64只有48位虚拟地址,然后页表需要存所有的虚拟页和页帧的映射关系,所以页表最多就要有2^(48-12)(页面大小按照4k算)64G个页表项吗?而且每个进程一个页表,
	 ----需要优化技术
	
	1、局部性原理
			进程只调入内存中部分页就可以启动运行,不需要全部内存空间都存入内存中,
		这样使进程空间不局限与物理内存大小,使进程空间大于物理内存大小
		
	2、请求页式存储管理
		根据页面号查页表,如果有效位为0,则缺页,根据辅存地址找到后,load进来(替换)
		
	3、页面置换算法
		最优页面置换算法(在未来最长时间不被访问的)
		FIFO
			Belady异常:缺页率随页帧分配数量的增加而增加
		LRU
		时钟置换算法
		
		系统颠簸

-----------------------------------------------------
		
第四章 文件管理
一、磁盘
	1、磁盘的结构与性能参数
		柱面、磁道、扇区
		寻道时间、旋转时间、传送时间
	
	2、磁盘调度算法
		FCFS
		SSTF
		SCAN:双向移动,必须到头
		C-SCAN:单向移动,必须到头
		LOCK:双向移动,不必到头
		C-LOCK:单向移动,不必到头
			

二、文件概述
	1、文件与文件系统
		文件是数据存储集合的虚拟
	
		文件系统:管理文件的系统
		
	2、文件的分类
		文件描述符:进程文件打开表的索引,进程文件打开表指向系统文件打开表
		
		
三、文件结构
	1、文件逻辑结构
		有结构文件(索引、顺序),类似于数据库中的一个一个条目
		无结构文件(流式)
	
	2、文件物理结构
		扇区、块(一个块几个扇区)
		
		文件在物理内存的分配方法:
			连续分配
			链表分配
			索引分配(inode):带索引的链表分配,内存表
	
四、文件存取方式
	顺序存取,随机存取

五、文件目录
	1、基本概念
		目录中存储目录下所有文件的FCB  
		一个FCB就是一个目录项(PTE)
		
		在目录中查找FCB是按照顺序查找的
		
		inode
		
	2、目录结构
		树型目录结构,有向无环图
		链接:硬链接,软链接
		
六、外存空间管理
	1、位图:使用一个位表示磁盘块的分配状态
	2、链表:把空闲块用指针链接
			成组链接法:空闲盘块号栈
	
七、文件系统的实现
	VFS:虚拟文件系统
	(文件卷控制块)超级块:文件系统的信息,一个卷一个,记录块大小,空间块,计数等
	文件控制块:inode
	目录项:dentry

八、可靠性与安全性

-----------------------------------------------------

第五章 设备管理  (简答或者选择)
一、I/O硬件
	设备分类与设备管理器
		块设备、字符设备
	
	设备管理器:CPU与设备之间的接口
		目标:解决设备与CPU速度不匹配、屏蔽设备的物理细节和操作过程,统一的接口
		功能:按照CPU的命令,自行控制I/O操作
		
二、I/O软件
	1、目标:设备独立
		设备独立性:逻辑设备、物理设备  例如:stdinstdout 抽象成文件
		好处:可拓展性、可靠性、灵活性
	
	2、控制方式的演变
		查询方式:busy wait,内存参与交换
		中断方式:内存参与交换
		DMA:总线周期窃取,内存不参与交换
	
	3、软件的层次
		目标:屏蔽底层差异,统一上层接口,改进设备效率
		考虑的问题:设备独立性、出错处理、同步/异步传输、缓冲技术
		I/O请求:
		硬件->中断请求->设备驱动器->设备独立性软件->用户进程
		I/O应答:
		用户进程->设备独立性软件->设备驱动程序->中断处理程序->硬件
		
三、I/O性能提升方式
		1、缓冲技术
			引入的原因:
				解决CPU和I/O设备速度不匹配问题
				协调逻辑块和物理块大小(块与字节流的转换)不一致问题
				减少对CPU的频繁中断
				提高CPU和I/O设备的并行性
			单缓冲
			双缓冲
			循环缓冲
			
		2、通道技术
			在设备控制器上又增加一层,叫通道,统一控制许多的设备控制器
			通道执行I/O指令,是一个协处理器。CPU与通道并行
			
		3、SPOOLing技术
			将独占设备虚拟成共享设备
			输入设备:
				输入进程:将输入缓冲区中的任务登记,放入输入井中,当设备空闲时,从任务登记表中选择一个任务,
					从输入井中取出,输入。
			输出设备:
				输出进程:将输出缓冲区的的任务登记,放入输出井中,当设备空闲时,从任务登记表中选择一个任务,
					从输出井中取出,输出。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值