您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 操作系统原理课堂记录
操作系统原理1、改革:时间提前实验改革,课时:(72/64+8)48+16内容:原理/Linux2、大的背景统考:数据结构/操作系统/计算机网络/组成原理/编译原理3、双语4、内容(考研大纲)前六章(第七章)明确的几个问题为什么要学习操作系统?怎么学?什么是操作系统?从两个不同的角度来考察:系统:用户:设计的目标是什么?历史发展过程中曾经出现过典型代表以及他们所解决和未能解决的问题Open:开放源代码(开源软件)/版权软件《操作系统革命》折衷:性能,经济性,硬件限制,使用条件层次结构Queue简单的批处理能否真正提高效率?一个作业只要进入系统开始运行,必须做完才能调度下一个作业。某个作业可能需要大量的访问存储器瓶颈:存储器的速度和CPU速度越拉越大因此提出新的“多道批处理”处理机(CPU)调度:公平,效率存储管理:存储器的分配,保护,回收,重定位(逻辑地址,相对地址),物理地址计算机病毒的雏形WORM设备管理:通道多道批处理效率提高了,但是存在缺点:缺少交互性,平时周转时间比较长分时系统(时分多路复用)平均响应时间减少(十个作业,每个时间片20ms)引入了换入换出,所以对需要调整的作业,可以暂时中止其执行,将其换出内存进行修改,增加了交互性OS/2,MacOS推动操作系统发展的动力是什么?硬件的发展用户的需求并行系统/计算程序设计(软件工程)耦合度面向对象的程序设计/降低耦合度/封装A-B面向对象(Java):设计模式银河,曙光巨型机Wintel联盟寻找外星人C/S:QQ,MSN,对于客户始终是在向服务器发送请求P2P:PPS,Web迅雷B/S:WebService:论坛,教务管理系统实时系统:导弹飞行控制嵌入式操作系统(硬件小型化,微型化的需要)WindowsCE/GPS导航仪手机:WindowsMoblie/Nokia赛班/LinuxARM处理器及其编程MicrosoftIBMPC-DOSMS-DOSCP/MMacOSMID/E-PC8in/10in1.特性a)并发:在一段时间间隔内,多个任务同时进行b)并行:在同一时刻,多个任务同时进行2.功能3.设计结构Java/多线程并发程序设计中,进程始终在变化,是一个动态的概念。程序的每一次执行,当输入数据不同时,输出结果可能也不同进程就是程序的一次执行,进程是资源分配与调度的单位,可以并发的。线程是一个更小的单位,只是作为CPU调度的单位,而不作为资源分配的单位。一个进程可以包含多个线程,线程可以共享进程的资源。任何一台计算机都是虚拟机。用的是计算机硬件吗?用的是操作系统以及操作系统之上其他软件。多进程/多线程可以合作完成一项任务。存储器是分层次寄存器-Cache高速缓存-内存-磁盘-光盘-磁带垃圾收集机制:实时控制程序现代计算机最大的瓶颈是I/O设备与CPU速度不相匹配的问题CPU与内存速度不匹配用户与操作系统的接口:1、图形用户界面GUI2、字符命令方式:Linux3、系统调用:提供给程序员的对计算机资源进行控制的编程接口,以函数库的形式提供。第三次课:传统程序不能满足需要,问题解决:进程Process单处理机系统(硬件发展):多核处理器A,B,C窗口2:00,南京(C/Server)20-1,20-1,20-1张五个哲学家,围坐在一张桌子边,放着一盘面条,左、右手各有一根筷子。Thinking,eat.每个哲学家占有了一根筷子,再去申请另外一根。进程有不同的优先级,当有一个优先级更高的进程进入就绪队列,而调度算法采用的是剥夺式(抢占式)调度策略时,当前进程会进入就绪状态让出CPU给优先权更高的进程使用。就绪状态:当一个进程获得了除CPU(处理机)之外的所有其他需要的资源时。卡耐基—梅隆大学通信的命令:第四周:进程同步必须对并发的进程进行控制:异步/不可再现性吃香蕉:进程的推进是“走走停停”,不可预知的顺序逻辑错误软件测试:软件测试只能证明程序有错,不能证明程序无错。数学证明:程序设计方法学(霍尔,何积丰)可信计算进程的运行状态:目标态/管态用户态/核心态UserMode/KernelMode忙等待(busy-waiting)Peterson方法(忙等待)优先级反转问题MinixLinux荷兰,数据结构(信号量,int类型的变量)P/VWait/signalDown/up信号量的物理含义:表示当前可用的资源数目,如果该值为0,表示可用的资源正好分配完毕,如果该值为负数,则表示有若干进程因为申请该资源没有得到满足而被阻塞,被阻塞的进程数目等于该值的绝对值。生产者-消费者:BUFFER-SIZE:10Semaphoresize=10;Wait(size)Mutex:一般作为一个互斥信号量的名字出现;互斥信号量一般初值为1Semaphores1,s2,s3=0,0,0;运动员1:听枪响;跑100米;V(S1);运动员2:P(S1);跑100米V(S2);运动员3:P(S2)跑100米V(S3)运动员4:P(S3)跑100米C/S能不能用在单机环境中?能客户机/服务器:不是一个硬件读者—写者问题:多个读者可以同时读,写者不能同时写,读和写不同时进行1)读者优先:当有一个读者在读时,其他读者可以直接进入临界区进行读操作。写者进程必须等待到没有读者读时才能进入。需要什么信号量?需要一个互斥信号量来控制写者进程。write需要一个互斥信号量控制对读者数目的统计count++/--变量?mutex2)写者优先:当有写者要写入数据时,当前正在读的进程可以读完,但其他想要读的进程需要等待写者完成写操作之后再读。生产者/消费者:同步(控制进程推进的顺序)哲学家就餐问题:并发的问题(预防/避免死锁)竞争筷子引起的三种方法:1、最多只能有4个人参与竞争2、规定奇数号先拿左边,偶数号的先拿右边3、仅当两根筷子都能用时才能拿。(信号量集的机制)死锁的引发根本原因是?资源不足PASCAL语言Semaphoreplate=1,bana=0,oran=0;ParbeginProcessfatherBeginRepeat剥桔子Wait(plate)放到盘子中Signal(oran)UntilfalseEndProcessmotherBeginRepeat剥香蕉Wait(plate)放到盘子中Signal(bana)UntilfalseEndProcesssonRepeatWait(oran)拿桔子Singal(plate)吃EndProcessdaughterRepeatWait(bana)拿香蕉Singal(plate)吃EndParend系统调用是操作系统提供的供程序员编程使用的接口。程序员可以使用这些函数实现对计算机软硬件资源的控制。MFCAPI函数圆形的窗口Fork()Kill()时间片轮转:保存现场信息(上下文切换)分时系统来说,时间片越小越好第六周:1、进程:2、进程的同步:信号量(低级的通信机制),管程3、进程的通信:多个进程交换信息信号量机制实现通信在编程实现、维护时比较复杂,容易出错。汇编语言/机器语言效率低4、线程同步/异步(同时)QQ/发邮件全局变量与模块化当前的操作系统,进程在网络环境下进行消息传递时一般通过指定端口进行65536个端口/1024以下冲击波病毒:RPCJava:语言/虚拟机:环境为什么要线程:进程太heavy/lightprocess(轻量级进程,线程)C/S模式:胖客户端/瘦客户端用户级线程在用户级进行创建与管理。内核仍然是进程为单位。对于一个包含了多个线程的进程来说,进程中的任意一个线程被阻塞,都意味着整个进程被阻塞,因为内核是以进程为单位的AA1,A2,A3P1=Fork()进程数目Java线程不是Java语言提供的,由Java虚拟机提供的,不是操作系统提供的。Java的优点:跨平台(虚拟机)语言与操作系统之间的关联由Java虚拟机来做.net:中间语言继承:接口桌子上有两个盘子,爸爸削苹果,儿子吃。试用信号量描述上述问题。信号量的物理含义:值表示有多少个资源可以用。Semaphoreplate=2,apple=0Father:削苹果Wait(plate)放Signal(apple)Son:Wait(apple)拿出来Signal(plate)吃生产者/消费者读者/写者理发师问题抽烟者问题第七周:第三章处理机调度与死锁学习课本时注意:调度算法不仅适用于处理机(进程调度),也适用于其他场合的调度,某一种调度算法适用于哪种场合。高级调度:将外存中的作业调入内存,并分配相关资源给作业,使其进入就绪状态。高级调度需要考虑的问题:哪些作业应该调入内存?批处理系统:吞吐量,充分利用资源,将CPU密集型的作业与I/O密集型的作业综合考虑相对的时间较长分时系统低级调度(进程调度):从就绪队列中挑选进程使其获得CPU处于运行状态。相对执行的频繁,且时间很短,一般以毫秒为单位采用什么样的调度算法?批处理系统:SJF,短作业优先的调度分时系统:时间片轮转实时系统:优先权调度进行进程切换时需要考虑上下文切换开销,2ms时间片:2s中级调度:将作业在内存与外存之间进行换入/换出的操作。由存储器的层次结构所决定的王大牛,在数字电路实验上发明了一种新型的存储器,该存储器的速度等同于寄存器,价格与同质量的馒头等价,且不挥发。问该存储器的发明,对操作系统的设计有什么影响?周转时间:等待时间+运行时间,不能准确的描述作业得到响应的情况平均周转时间:多个作业平均的周转时间带权周转时间:周转时间/运行时间平均带权周转时间:SJFSmallJobFirst:吞吐量比较大/饥饿FIFO(FCFS):设计,数据结构队列,设计简单,效率高优先权调度:响应比,实时系统/重新计算响应比UNIX时间片轮转:多级反馈队列调度算法:多种类型:嵌入式系统/Windows信号量集:一次申请所有需要的资源,只有当所有资源都能够满足要求时,才分配,否则不分配哲学家问题:规定一个资源申请或分配的顺序。先申请打印机,得到打印机才能申请扫描仪到了无法再向前推进前才称为处于死锁状态。可能引发死锁的不安全状态打印机:A/B:WORD/EXCEL使用合适的调度/进程推进顺序避免死锁在进程申请资源之后,操作系统进行资源分配之前,首先根据一定的算法看是否能够分配,如果分配之后各进程仍有一个能够执行结束的序列,则称处于安全状态,可以分配。否则,进行不安全状态,不可以分配。怎么样判断一个状态是否安全状态安全状态一定是没有死锁发生的。而不安全状态一定会导致死锁,但不安全状态不等于死锁状态安全状态下如果采用了不合适的推进顺序,也有可能进入不安全状态。银行家:10000,三个企业家,建工厂,6000,4000,8000个人信用记录:7000安全序列可能是不唯一的银行家算法:1、Request[],Need比较,看是否超过需求数量2、Request[],Available比较,看是否超过可用数量3、尝试分配资源,修改Work,Need,Allocation,系统进行一个新的状态,4、判断新状态是否安全(安全性算法)。Work=AvaiableFishish=falseWhile(fishish[i]=falseandNeedWork){Printf(“fjsfksdjk%d”,i);操作系统不同:UNIX:时间片轮转纯LinuxWindows:VM:提供一种调度?第九周课:翻译在线翻译能力/态度1.什么是死锁?死锁与不安全状态2.死锁产生的原因/以及必要条件3.解决死锁问题:4.避免死锁:银行家算法数据结构:Available/Allocation/Need/Max/Work/Fishish1)RequestNeed(恶意申请)。转2)2)RequestAvailable转3),否则,阻塞(wait)3)尝试将资源分配给申请者,Need减少,Allocatio
本文标题:操作系统原理课堂记录
链接地址:https://www.777doc.com/doc-6033231 .html