1.单道批处理系统 2.多道批处理系统:目的;提高资源利用率和系统吞吐量 3.分时系统:目的:为了满足人机交互的需求 4.实时系统:特点就是及时性 并行和并发: 并行性是指在两个或者多个事件在同一时刻发生 并发性是指两个或者多个事件在同一时间间隔发生 进程: 是指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令数据和堆栈等组成的,是一个独立运行活动实体,多个进程之间可以并发执行和交换信息 操作系统的基本特征: 1.并行和并发 2.共享 互斥共享 同时访问方式 3.虚拟 4.异步 设计现代OS的主要目标是:有效性 方便性 可扩充性 开放性 进程: 前趋图:是一个有向无循环图,在图中一定是不允许有循环的 进程的特征: 动态性 异步性 并发行 独立性 进程的三个基本状态: 就绪状态 执行状态 阻塞状态 三者之间的关系 就绪状态获得cpu(处理机)就会变成执行状态 执行状态因为时间片用完就会暂停执行就会变成就绪状态 执行状态因为I/O请求会变成阻塞状态 阻塞状态因为I/O请求完成就会变成就绪状态 PCB作为进程实体的一部分记录了操作系统所需的,用于描述进程的当前情况以及管理进程运行的全部信息 阻塞-->唤醒 挂起-->激活 信号量:p操作和v操作都必须是一个不可中断的整体,除了p操作和v操作其他任何操作都不能改变信号量 p操作使用的情况: 1.表示请求分配一个资源 2.检查能否做某事 3.减1操作 4.阻塞一个进程 v操作的使用情况: 1.表示释放一个资源 2.给合作者发信号 3.加1操作 4.唤醒一个操作 p操作的步骤 1.减1 2.如果>=0则进程继续执行否则进程被阻塞,排入阻塞队列 v操作的步骤 1.加1 2.如果>0进程继续执行否则表示进程正在等待队列,第一个等待该信号量的进程将被唤醒 线程: 在os中引入进程的目的是为了能够为了使多个程序并发执行,以提高资源利用率和系统的吞吐量 引入线程的目的:为了减少程序在并发执行时所付出的时空开销,使os具有更好的并发性 进程和线程的区别 1.调度的基本单位:在传统的os中进程是作为独立调度和分派的基本单位,因而进程是独立运行的基本单位,在引入线程的os中已把线程作为调度和分派的基本单位,因而线程是独立运行的基本单位,线程的 切换不会引起进程的切换,但从一个进程中的线程切换到另一个进程中的线程时,必然就会引起进程的切换。 2.并发性:在引入线程的os中,不仅进程之间可以并发执行,而且一个进程中的多个线程之间也可以并发执行,甚至一个进程中所有线程都可以并发执行,同样不同进程之间的线程也可以并发执行。 3.拥有资源:进程是系统拥有资源的一个基本单位,线程并不拥有系统的资源 4.独立性:统一进程中的不同线程之间的独立性要比不同进程之间的独立性低得多。 5.系统开销:在创建进程时,系统要为之分配和回收进程pcb分配和回收其他资源,因此进程的开销明显大于线程的开销 作业调度: 1.先来先服务(first-come first-server FCFS)调度算法 对长作业有利,不利于I/O 2.短作业优先(short job first sjf)调度算法 对短作业有利有利于吞吐量 3.优先级调度算法(psa):是根据作业的紧迫程度,由外部赋予作业相应的优先级。 4.高响应比(hrrn)优先权 = (等待时间+要求服务的时间)/ 要求服务的时间 = 1+等待时间/要求服务的时间 进程调度: 进程调度的方式: 非抢占式:一旦把处理机分配给某个进程后,就一直让它运行下去,绝不会因为始终中断或其他原因去抢占正在运行进程的处理机。 抢占式:允许调度程序根据某种原则,去暂停某个正在执行的进程,将已分配进程的处理机分配给另一个进程 抢占的方式: 1.优先级原则:允许优先级高的新到的进程抢占当前正在运行的进程 2.短进程优先原则:允许新到的短进程可以抢占当前长进程的处理机 3.时间片原则:各进程按时间片轮转运行时,当前执行的进程时间片用完时,便执行该进程的执行重新进行调度。 时间片轮转: 原理:当该进程的时间片耗尽或者运行完毕时,系统再次将cpu分配给新的队首进程。 进程切换时机:1.在一个时间片尚未用完,正在运行的进程便已经完成。2.在一个时间片用完。 时间片大小的确定: 周转周期:作业从被提交到系统时 到作业完成为止这段时间间隔 带权周转时间:周转时间和系统为他提供服务时间之比 死锁: 原因: 1.竞争不可抢占性资源引起死锁(如果是可抢占资源不会发生死锁,因为既然是可抢占资源,你来抢咱们比一下优先级如果你比我高,我就给你了,所以不会引起死锁) 2.竞争可消耗资源引起死锁 3.进程推进顺序不当引起死锁 定义:多个进程在运行时因为争夺资源而造成的一种僵持,当进程处于这种僵持状态,如果没有外力作用都不能向前推进。 死锁产生的必要条件: 1.互斥条件 2.请求和保持条件 3.不可抢占资源条件 4.循环等待条件 处理死锁的方法 1.预防死锁 2.避免死锁 3.检测死锁 4.解除死锁 程序运行时,必须先将它装入内存 1.编译:由编译程序对用户源程序进行编译,形成若干个目标模块 2.链接:由链接程序将编译后形成的一组目标模块以及它们所需的库函数链接在一起,形成一个完成装入模块 3.装入:由撞入程序将装入模块装入内存 程序的装入: 1.绝对装入方式 2.可重定位装入方式 3.动态运行时的装入方式 连续分配存储管理方式 1.单一连续分配:用户区中,仅装有一道用户程序,即整个内存的用户空间有该程序独占。 2.固定分区分配:(产生内部碎片) 1.分区大小相等 2.分区大小不等 3.动态分区分配:根据进程的需要分配响应的内存的大小 1.基于顺序搜索的动态分区分配算法 1.首次适应(first fit ff)算法 在分配内存时,从链首开始顺序查找,知道找到一个大小能满足要求的空闲分区为止,然后再按照作业的大小,从该分区里划出一块内存空间,分配给请求者。余下的空闲分区仍留在空闲链里。 该算法倾向于优先利用内存中低地址的空闲分区,从而保留了高地址部分的大空闲区,这为以后到达大作业分配大作业分配大的内存空间创造了条件。该算法低地址不断的分配,会产生不能利用的空间,即产生外部碎片,每次 从低地址查找这会增加开销 2.循环首次适应(next fit nf)算法 为进程分配空间时,不是每次都从首部查找,而是从上次找到空闲分区的下一个空闲分区开始查找。 内存的空闲分区比较均匀,减少了查找空闲分区的开销,但这样会缺乏大的空闲分区。 3.最佳适应(best fit bf)算法 每次分配时,总是能把满足要求又是最小的空闲分区分配给作业,该算法要求将所有的空闲分区按其容量以从小到大的顺序形成一空闲分区链 该算法会产生很难利用碎片(外部碎片) 有利于满足长作业的要求 4.最坏使用(worst fit wf)算法 每次分配时正好和最佳适应相反,每次都选择最大的空闲分区分配给作业 查找时,只要看第一个分区能否满足作业要求即可 对中小作业有利 2.紧凑: 通过移动内存作业的位置,把原来多个分散的小区拼接成一个大分区的方法。 分页存储管理方式(离散分配存储管理方式) 1.分页存储管理方式 (页面大小和物理块的大小一样,两次访问内存,第一次访问页表,第二次访问内存中的物理地址 ) 2.分段存储管理方式 (地址空间是二维的,程序员在标识地址时,既要给出段名又要给你段内地址) 3.段叶式存储管理方式 文件逻辑结构: 1.文件逻辑结构 2.文件物理结构
操作系统复习大纲
最新推荐文章于 2022-04-03 22:08:26 发布