目录
一.概论
1.操作系统的介绍
2.特性
3.主要功能
4.作用
二.进程的描述与控制
1.进程的定义
2.特性
3.进程的创建步骤
4.基本状态转化
5.PCB的作用
6.进程与线程的比较
三.进程同步
1.同步的概念(挺重要的)
2.临界区
3.管程和进程的区别
4.信号量机制(重中之重,必考题)
四.处理机调度与死锁
1.处理机调度层次
2.调度算法
3.死锁定义
4.死锁产生的必要条件
5.处理方法
6.银行家算法
五.存储器管理
1.程序装入方式
2.磁盘空间划分
3.动态分区的算法
4.离散分配方式
六.虚拟存储器
1.概述
2.特征
3.实现方法
4.请求分页的硬件支持
5.地址变换机构
6.缺页中断机构
7.请求分页中的内存分配
8.分配算法
9.抖动
10.页面置换算法
一.概论
1.操作系统的介绍
是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充。目的是管理计算机的软硬件,提高它们的利用率和吞吐量,也同时提供接口,方便用户和应用程序使用硬件设备。
2.特性
异步,虚拟,共享,并发(在一段时间内会有许多进程进行,要和并行进行区别)
3.主要功能
处理机,存储器,设备,文件,接口5方面的管理
4.作用
(1):作为用户和计算机硬件系统的接口
(2):作为计算机系统资源的管理者
(3):实现对计算机资源的抽象
二.进程的描述与控制
1.进程的定义
程序的一次动态执行的过程,是系统进行资源分配的一个独立的单位,组成的元素有PCB(较重要),程序段和数据段。
2.特性
动态,独立,并发,异步
3.进程的创建步骤
(1).申请空白PCB
(2).插入相关信息
(3).插入就绪队列中
4.基本状态转化
5.PCB的作用
(1):作为独立运行基本单位的标志
(2):实现间断性的运行方式
(3):实现与其他进程的同步与同信
(4):提供进程管理的信息
(5):提供进程调度需要的信息
6.进程与线程的比较
(1)地址空间:同一进程内的不同线程共享进程的地址空间和资源;而不同的进程内的不同线程则独立拥有各自的地址空间
(2)并发性:进程和进程之间可以实现并发性,而进程内的线程也可以实现并发性,进一步提高了并发性
(3)系统开销:进程的创建和切换的开销较大,而线程的开销较小
(4)拥有资源:进程拥有资源并作为系统拥有资源的一个基本单位;而线程是几乎不拥有资源的
(5)独立性:同一进程内的不同线程独立性低,因为它们共享进程内的地址空间和资源。而不同进程内的不同线程独立性高,每个进程都拥有一个独立的地址空间和其他资源,除了共享全局变量以外,不允许其他进程访问
三.进程同步
1.同步的概念(挺重要的)
把异步环境下的一组并发进程因直接制约而相互发送信息,相互合作,互相等待等,使得个进程按一定的速度的执行过程。
2.临界区
访问临界资源的那一段代码
3.管程和进程的区别
①虽然二者都定义了数据结构,但进程定义的是私有的数据结构——PCB .管程是公有的数据结构
②进程是由顺序程序执行,管程则主要进行同步操作和初始化操作
③进程的的在于实现系统的并发性,而管程则是解决共享资源互斥使用
④进程之间能并发执行,而管程不行
⑤进程具有动态性.由创建而诞生,由撤销而销亡;管程是 OS 中的一个资源管理模块,仅供进程调用
⑥进程通过调用管程中的过程来对共享数据结构操作,进程是主动工作方式,管程是被动工作方式
4.信号量机制(重中之重,必考题)
tips:必须先同步后互斥,否则会出现死锁
(1)生产者——消费者问题:
(2)读者——写者问题:
四.处理机调度与死锁
1.处理机调度层次
(1)高级调度:作业调度,将外存作业调入内存
(2)低级调度:进程调度,将进程分配给处理机
(3)中级调度:把外存上的那些已具备运行条件的就绪进程重新再调入内存,并修改它们的状态为就绪状态
2.调度算法
(1)先来先服务:FCFS,顾名思义,不用多解释
(2)短作业:SJF,运行时间段的先使用CPU
(3)高响应比:看公式,数值大的先使用((等待时间+要求服务时间)/要求服务时间)
(4)优先级:也是顾名思义,不用太多的赘述了
(5)时间轮转片:RR事先定义好轮转片的大小,然后按先后顺序循环起来就OK了
(6)最低松弛度:LLF,A松弛度=截止时间-本身运行时间-当前的时间,松弛度越小,优先级越高
拓展知识:
周转时间:进程到达系统到 完成所经历的时间
带权周转时间:周转时间/运行时间
3.死锁定义
如果进程中的每个进程都在等待仅有该组进程的其他进程才能引发的事件发生,那么该进程会发生死锁
4.死锁产生的必要条件
互斥,请求和保持,不可抢占,循环等待
5.处理方法
预防(静态),避免(动态),检测,解除
6.银行家算法
五.存储器管理
1.程序装入方式
(1)绝度装入
(2)可重定位装入:把在装入时对目标程序中指令和数据逻辑地址变换为物理地址到时过程
(3)动态运行时装入:在把装入模块装入内存后,并不会立即把装入模块变换为物理地址,而是会把这种地址等到程序真正运行时才会变换
2.磁盘空间划分
(1)文件区:采用离散分配方式,目的是提高利用率
(2)对换区:采用连续分配方式,目的是提高访问速度
3.动态分区的算法
(还有一个最坏的算法,试问最坏的学它干嘛?故不说了)
(1)首次适应:按地址大小顺序,每次都得从头开始,无疑就增加了开销
(2)循环首次适应:它不会每次从头开始,而是接着上一次的查找
(2)最佳:根据分区块大小拉链进行查找
4.离散分配方式
(1)分页:将用户程序的地址空间(逻辑地址)分为若干个固定大小的区域,称为“页”:相应地也将内存空间分为若干个物理块,页和块的大小相同。
(2)分段:把用户程序的地址空间与为若干个大小不同的段,每段可定义一组相对完整的信息,在有储器分配时,以段为单位。
(3)分页地址中地址结构:
即:若给定的逻辑地址空间中的地址为 A ,系统面大小为 L , d 为页内地址 w 则 P : int [A/L]
( W ) d =[ A ] mod L
物理地址=块号 x 块大小+块内偏移量、
(4)地址变换机构:
①页表是有放在内存中,这使 CPU 在每次存取一个数据时都要访问内存两次。第一次是访问内存中的页表,从中找到指定的页的物理块号,再将块号与页内偏移量拼接,以形成物理地址。第二次访问是从第一次所得地址中获得所需的数据。
②快表:提高地址变换速度,并行查寻能力的高速缓冲寄有器。
(5)快表后的内存有效访问时间:
基本分页: EAT =2t
快表分页: EAT = ax 入+(1- a )(t+入)+ t ( t :访问内有次的时间: a :命中率;入:查找快表的时间)
(6)分段与分页的区别:
①页是信息的物理单位:页是消减内存的外零头,提高内存的利用率。分段是的段是信息的逻辑单位,包含的意义相对较完整。
②页的大小固定且由系统决定:而段的长度则不固定,其取决于用户所骗写的程序。
③页的用户程序地址空间是一维的:页完全是系统的行为,用户程序地址属于单一的线性地址空间。而分段是用户的形为,行为,在标志一个地址时,既给出段名,又须给出段内地址,是二维的。
六.虚拟存储器
1.概述
具有请求调入和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统
2.特征
多次性,对换性,虚拟性
3.实现方法
请求分页,请求分段和请求段页(最后一个比较难,本科阶段不适合学习)
4.请求分页的硬件支持
请求页表机制,缺页中断机构和地址变换机构
5.地址变换机构
页表机制:页号 物理块 状态位 P 访问字段 A 修改位 M 外存地址
(1)状态位:指示该页是否己调入内存,供程序访问时参考。
(2)访问字段:用于记录本页在一段时间内被访问的次数,或记录本页最近有多长时间未被访问,仅供置换算法在选择换出页面时参考。
(3)修改位:该页在调入内存后是否被修改过。供仅置换页面时参考。
(4)外有地址:指出该页在外有中的地址,供调入该页时参考。
6.缺页中断机构
(1)概念:
每当要访问的页面不存在内存中,便产生一个缺页中断.请求 OS 将缺之页调入内存。
(2)与一般中断的区别:
①在指令执行期间,产生和处理中断信号。 CPU 通常在一条指令执行完后才去检查是否有中断请求到达;然而缺页中断是在指令执行期间,若发现要访问的不在内存中,便立即产生中断信号.以便能及时将所缺之页调入内存。
②一条指令在执行期间,可能会产生多次缺页中断。
7.请求分页中的内存分配
固定局部,可变全局,可变局部
8.分配算法
平均,按比例,优先权.分配策略
9.抖动
(1)定义:
频繁对某页面进行换入与换出、以致一个进程在运行中把大部分时间都花费在页面置换工作上。
(2)产生原因:
同时在系统中运行的进程太多.导致分配给每个进程的物理块太少。
(3)预防方法:
1)采取局部置换策略
2)把工作集算法融入到处理机调度中
3)利用" L = S "准则调节缺页率
4)选择暂停的进程
工作集的定义:
在某段时间间隔中进程实际要访问页面的集合
10.页面置换算法
(1)opt :置换以后长期不会被访问的页面。
(2)FIFO :淘汰最先进入内存的面,驻留时间最长的
(3)LRU :最近最久未使用
未完待续
习题已放入CSDN上了,欢迎大家自取。