一、操作系统相关概念1、操作系统概述计算机硬件裸机》操作系统windows、linux ······》语言处理程序Java虚拟机》应用程序office、QQ ······操作系统功能1.管理系统的软件、硬件、数据资源2.控制程序运行3.人机之间的接口4.应用软件与应用硬件之间的接口任务进程管理存储管理文件管理作业管理硬件设备管理计算机层次结构用户 》应用软件 》系统软件 》操作系统 》计算机硬件2、操作系统分类特点批处理操作系统单道批一次一个作业入内存作业由程序、数据、作业说明书组成多道批一次多个作业如内存特点多道宏观上并行微观上串行分时操作系统采用时间片轮转的方式为多个用户提供服务每个用户感觉独占系统特点多路性及时性独立性和交互性实时操作系统*实时控制系统和实时信息系统交互能力要求不高可靠性要求高规定时间内响应并处理网络操作系统方便有效共享网络资源提供服务软件和有关协议的集合例如Windows ServerLinuxUnix分布式操作系统任意两台计算机可以通过通信交换信息是网络操作系统的更高级形式具有透明性、可靠性和高性能等特性微机操作系统PC机WindowsMicrosoft开发的图形用户界面、多任务、多线程操作系统Linux免费试用和自由传播的类Unix多用户多任务多线程多CPU的操作系统嵌入式操作系统*运行在只能芯片环境中特点微型化可定制针对硬件变化配置实时性可靠性易移植性HAL和BSP支持习题从减少成本和缩短研发周期考虑要求嵌入式系统能运行在不同的微处理平台上能针对硬件变化进行结构与功能上的配置。该要求体现了嵌入式操作系统的AA可定制型B实时性C可靠性D易移植性需要BSP的支持二、进程管理1、概念系统进行资源分配和调度的一个独立单位由程序块、进程控制块PCB和数据块三部分组成PCB进程的唯一标识包含标识符、状态、位置信息、控制信息、队列指针链接同一状态的进程、优先级、现场保护等。进程是程序的一次执行过程独立拥有资源线程一个进程包含多个线程共享资源内存地址空间、代码、数据、文件等。独有资源程序计数器寄存器栈。进程状态)1三态模型就绪 》运行 、就绪 》运行 》等待 》就绪 ······运行进程在CPU上运行单处理机运行状态的进程只有一个被CPU调度就绪一个进程获得了除CPU以外的全部资源一旦得到处理机即可运行阻塞/等待/睡眠一个进程正在等待某一事件的发生如请求IO、等待IO处理完成而暂停的状态此时即使CPU分配到处理也无法进行。即等待其他资源等其他资源完成则转换到就绪)2五态模型静止就绪、活跃就绪、运行、静止阻塞、活跃阻塞静止就绪 唤醒》活跃就绪 挂起》静止就绪静止阻塞 唤醒》活跃阻塞 挂起》静止阻塞就绪 》运行 、就绪 》运行 》等待 》就绪 ······挂起需要被唤醒挂起原因1.进程过多主存资源不足此时必须将某些进程挂起放到磁盘对换区暂时不参与调度以平均系统负载2.系统出现故障或是用户调试程序也可能需要将进程挂起检查问题习题在单处理机过程中采用先来先服务调度算法。系统中有4个进程P1.P2.P3.P4其中P1为运行状态P2为就绪状态P3.P4为等待状态P3等待打印机P4等待扫描仪若P1A则P1,P2,P3,P4等状态分别是CA时间片到 B释放了扫描仪 C释放了打印机 D已完成A等待就绪等待等待 B运行就绪运行等待 C就绪运行等待等待 D就绪就绪等待运行解思路1.进程中等待状态无法直接进入到运行状态且单处理机中只会有一个进程运行所以BD排除2.进程中若第一个进程释放则会有下一个进程由就绪状态变为运行状态进入运行所以A错误因为A中没有运行状态3.C选项P1由运行变为就绪所以原因只会是时间片到结论选AC时间片到进程状态分别为就绪运行等待等待2、进程调度PVP(S) V(S))1概念加锁P操作解锁V操作临界资源储进程间需要互斥方式对其进行共享的资源进程中访问临界资源的那段代码称为临界区同一时刻只允许一个进程来访问1.互斥模型对临界资源的互斥访问相互排斥间接制约关系。加锁 》访问 》解锁2.同步模型速度有差异在一定情况下等待直接制约关系。针对的是缓冲区资源加锁。生产者 缓存区 消费者针对发起者为生产者生产者生产S1检查缓冲区P(S1)放入到缓冲区单缓冲区容量为1另一进程消费者从缓冲区取出S1释放缓冲区V(S1)消费S1针对发起者为消费者消费者检查缓冲区P(S2)生产者将S2放入到缓冲区V(S2)消费者消费S2如上例针对消费者想要消费S2首先要为缓冲区预留一个位置所以P(S2)然后生产者将产品放入到缓冲区必须先将消费者预留的那个S2的位置释放出来所以V(S2)然后消费者直接消费S2)2信号量S特殊的变量全局信号量为正数时可以表示资源数量信号量为负数时可以表示排队进程数量过程为申请/锁定资源SS-1判断资源是否足够S阻塞队列等待足够就执行完毕后释放/解锁资源SS1判断是否都需要通知阻塞队列等待可以进入就绪状态S互斥同步模型针对缓冲区做信号量限制加锁与释放同步模型针对向缓冲区发起请求放入/拿出进程做加锁与释放互斥模型)3前趋图进程A/B/C为前驱进程D为A/B/C的后继为E的前驱进程E为进程D的后继前驱处做V操作释放后继处做P操作检查加入信号量3、死锁两个以上的进程互相都要求对方已经占有的资源导致无法继续运行下去的现象死锁四大条件打破任意条件则可破解死锁1.互斥性两条进程访问的资源相互排斥不具有共享资源2.保持和等待当进程无法访问资源时会持续等待释放后访问资源3.不剥夺无法剥夺其他进程资源4.环路等待相互等待闭环死锁处理方法预防死锁)1.有序资源分配当一个进程需要访问资源时先分配给这个进程其他进程等待资源释放)2.静态资源分配根据已知的资源数进行分配避免死锁银行家算法死锁的检测与解除鸵鸟策略不予理睬避免死锁率计算系统不可能发生死锁的最小资源数(w-1)*m1必定死锁当一个进程所需资源 现有资源必定死锁不可能死锁当多个进程所需资源 现有资源不可能死锁例系统有5个进程A/B/C/D/E这五个进程每个进程都需要4个资源若系统资源 4时必定死锁若系统资源 5*31不可能死锁思路5*31每个进程都需要4个至少应该有一个进程可以达到闭环所以至少有一个满足4个资源其余每个进程至少满足3个套入公式(4-1)*51 16必然死锁无法闭环进程A进程B进程C进程D进程E资源1系统资源资源2系统资源资源3系统资源资源4不可能死锁至少有一个进程可以闭环进程A进程B进程C进程D进程E资源1系统资源系统资源系统资源系统资源系统资源资源2系统资源系统资源系统资源系统资源系统资源资源3系统资源系统资源系统资源系统资源系统资源资源4系统资源例题某计算机系统中互斥资源R的可用数为8系统中有A/B/C三个进程竞争R且每个进程都需要i个R该系统可能会发生死锁的最小i值是DA 1 、B 2 、C 3 、D 4解思路A1*3个进程 3 8所以不会发生死锁B2*3个进程 6 8所以不会发生死锁C3*3个进程 9虽然需要满足每个进程资源都为3的情况下D4*3个进程 12 8且可能没有进程可以闭环所以会发生死锁结论得出D资源图先分配再申请