操作系统的目标:方便性,有效性,可扩充性,开放性操作系统的作用:作为用户和计算机硬件系统之间的接口,作为计算机系统资源的管理者,实现了对计算机资源的抽象单道批处理系统的缺点:系统的资源得不到充分的利用多道批处理系统的优缺点:资源利用率高,系统吞吐量大,平均周转时间长,无交互能力需要解决的问题:处理机争用问题,内存分配和保护问题,I/O设备分配问题,文件管理和组织问题,作业管理问题,用户与系统的接口问题分时系统(满足人机交互的需求)特征:多路性,独立性,及时性,交互性及时响应实时系统的特征:多路性,独立性,及时性,交互性,可靠性实时实时任务的类型:周期性实时任务和非周期性实时任务,硬实时任务和软实时任务单用户多任务OS:一个用户,把程序分为若干任务并发执行多用户多任务OS:多个用户,一台机器,共享资源UNIXOS操作系统的四大特性:并发,共享,虚拟,异步并行与并发:并行是多个事件在同一时间发生,并发是多个事件在同一时间间隔内发生(进程的引入:多个程序并发执行,提高了系统资源利用率,增加了系统的吞吐量)。进程同步与互斥;进程间的通信;死锁问题互斥共享:一段时间内只允许一个进程访问该资源同时访问:宏观上是同时的,微观上进程对资源的访问是交替的时分复用技术:虚拟机处理,虚拟设备空分复用技术:对存储空间的管理,提高利用率OS具备的功能:1.处理机管理:进程控制,进程同步,进程通信,作业调度,进程调度2.存储器管理:内存分配(为每道程序分配内存,提高存储器利用率,允许正在运行的程序申请附加的内存)内存分配方式:静态:不允许申请新的内存,不允许作业在内存中的移动动态:上面说的都允许内存保护:确保每道用户程序都仅在自己的内存空间内运行,决不允许用户程序访问操作系统的程序和数据地址映射:逻辑地址和物理地址,硬件支持内存扩充:逻辑上扩充内存容量(请求调入功能,置换功能)3.设备管理主要任务:完成用户进程提出的I/O请求,为用户进程分配所需要的I/O设备,并完成指定的操作提高CPU和I/O设备的利用率应具有缓冲管理,设备分配,设备处理和虚拟设备(spooling技术)4.文件管理文件存储空间的管理,目录管理,文件的读和写管理和保护操作系统与用户之间的接口:1.用户接口:联机用户接口,脱机用户接口,图形用户接口2.程序接口:为用户程序在执行中访问系统资源设置的,是用户程序取得操作系统服务的唯一途径模块接口法的优缺点优点:提高OS设计的正确性、可理解性和可维护性增强OS的可适应性加速OS的开发过程问题:对各模块间的接口规定很难满足在模块设计完成后对接口的实际需求决定的无序性分层式结构OS在目标系统和逻辑系统之间铺设若干个参次的软件(自底向上)优缺点:易保证系统的正确性,易扩充和易维护性系统效率降低(执行一个功能要穿越多个层次)客户/服务器模式优点:数据的分布处理和存储,便于集中管理,灵活性和可扩充性,易于改编应用软件微内核OS并非一个完整的OS,有OS中最基本的部分,包含有:与硬件处理紧密相关的部分,一些较基本的功能,客户和服务器之间的通信基于客户/服务器模式应用“机制与策略分离”原理基本功能:进程管理,低级存储器管理,中断和陷入处理优点:提高系统的可扩展性,增强系统的可靠性,可移植性强,提供了对分布式系统的支持,融入了面向对象技术程序在顺序执行时的三个特征:顺序性,封闭性,可再现性程序在并发执行时的三个特征:间断性,失去封闭性,不可再现性进程的定义:进程时程序的一次执行,是一个程序及其数据在处理机上顺序执行时所发生的活动,是具有独立功能的程序在一个数据集合上运行的进程,他是系统进行资源分配和调度的一个独立单位进程的特征:动态性,并发性,独立性,异步性进程的三种基本状态:就绪(Ready)状态,执行(Running)状态,阻塞(Block)状态创建状态:如果进程所需的资源不能得到满足,进程不能被调度,此时为创建状态终止状态:自然结束,被其他有终止权的进程终结,出现无法克服的错误,被操作系统终结挂起操作的引入:终端用户的需要,父进程请求,负荷调节的需要,操作系统需要引入挂起操作之后三个进程可能会有以下几种状态转化:活动就绪-静止就绪,活动阻塞-静止阻塞,静止就绪-活动就绪,静止阻塞-活动阻塞进程信息表(资源信息表)包含了资源或进程的标识,描述,状态等信息以及一批指针OS管理的这些数据结构一般分为:内存表,设备表,文件表和用于进程管理的进程表(进程控制块 PCB)进程控制块(PCB)的作用作为独立运行基本单位的标志,能实现间断性运行方式,提供进程管理所需要的信息,提供进程调度所需要的信息,实现与其他进程的同步与通信进程控制块包含的信息:1.进程标识符(外部标识符,内部标识符)2.处理机状态3.进程调度信息(进程状态,优先级,进程调度所需的其他信息,事件(进程状态发生改变的事件,如阻塞原因))4.进程控制信息(程序和数据的地址,进程同步和通信机制,资源清单,链接指针(下一个PCB的首地址))PCB的组织方式1.线性方式线性表2.链接方式队列3.索引方式索引表进程控制创建进程,终止已完成的进程,将无法继续运行的进程置于阻塞状态,运行进程的状态转换。内核原语实现操作系统内核1.支撑功能:中断处理,时钟管理,原语操作2.资源管理功能:进程管理,存储器管理,设备管理进程的创建进程的层次结构允许父进程创建子进程进程图有向树引起创建进程的事件用户登录,作业调度,提供服务,应用请求进程的终止过程1.根据被终止进程的标识符,从PCB中检索出改进程的PCB,从中读出该进程的状态2.若被终止进程正处于执行状态,应立即终止改进程的执行,并置调度标志为真3.如果有子孙进程,子孙进程也终止4.将终止进程所拥有的全部资源归还给父进程或系统5.将终止进程从所在队列或链表中移除引起进程阻塞或被唤醒的事件:1.向系统请求共享资源失败2.等待某种操作的完成3.新数据尚未到达4.等待新任务的到达阻塞是进程自身的一种主动行为进程通过阻塞原语block将自己阻塞进程唤醒调用唤醒原语wakeup把被阻塞的进程从等待该事件的阻塞队列中移除,状态变为就绪,把PCB插到就绪队列中临界资源打印机,磁带机。进程间采用互斥方式临界区每个进程访问临界资源的那段代码同步机制应遵循的规则:空闲让进,忙则等待,有限等待,让权等待实现互斥的三种方法:1.关中断:在进入锁测试之前关闭中断,直到完成锁测试并上锁之后才能打开中断。缺点:关中断时间过长,影响系统效率,限制处理器交叉执行程序的能力关中断方法不适用于多CPU系统2.硬件指令测试并建立指令TS3.对换指令信号量机制1.整型信号量:资源数目的整型量S:只能通过两个原子操作:P、V操作2.记录型信号量:一种不存在的忙等机制增加一个进程链表指针list,链接上述所有的等待进程3.and型信号量:将进程在整个运行过程中需要的所有资源,一次性全部给进程,使用完后一起释放。只要有一个资源未能分配给进程,其他的也不会给进程。(要么全给,要么不给)4.信号量集:上述信号量每次只能对某类临界资源进行一个单位的申请或释放,当一次需要N个单位时,便要进行N次wait操作,这样不仅低效,而且会增加死锁概率。为确保安全性,设置一个下限值,当所申请的系统资源低于下限值时,不予以分配。信号量的应用:1.实现互斥:设置一个互斥信号量mutex,设其初值为1,然后将各进程访问该资源的临界区CS置于wait和signal之间。wait(mutex);临界区;signal(mutex);剩余区;2.利用信号量实现前趋关系:P1S1;signal(s).P2wait(s);S2管程机制管程:用少量的信息和对资源的操作来表征该资源(管程的名称,局部于管程的共享数据结构说明,对该数据结构进行操作的一组过程,对局部于管程的共享数据设置初始值的语句)利用管程实现同步,必须设置同步工具,如同步操作原语wait和signal生产者-消费者问题1.利用记录型信号量empty和full分别表所缓冲池中空缓冲区和满缓冲区的数量。缓冲池未满,生产者便将消息送入缓冲池,缓冲池未空,便从其中取走一个消息2.利用AND信号量Swait(empty,mutex)代替wait(empty)和wait(mutex)等3.利用管程。首先建立一个管程,其中包括两个过程put(x)生产者把自己生产的东西投入到缓冲池中,并用cnt记录产品数量,get(x)取产品,同理。还有cwait/csignal(condition)。管程给占用时,其他进程相调用就阻塞。哲学家进餐问题1.记录型信号量筷子是临界资源,一个信号量表示一个筷子,组成一个信号量组,初始值为12.AND型信号量要求每个哲学家先获得两个临界资源后方能进餐读者-写者问题1.记录型信号量互斥信号量Wmutex整型变量Readcount表示正在读的进程数目。只要有一个在读,便不允许writer去写。2.利用信号量集允许L个读者同时读,执行wait(L,1,1)表示有一个读者进入,L=L-1进程通信(进程间的信息交换)1.共享存储器系统,相互通信的进程共享某些数据结构或共享存储区2.管道通信系统,所谓管道是指用于连接一个读进程和一个写进程以实现它们之间通信的一个共享文件,又名pipe文件。以字符流形式送入管道,又从管道中读取,首创于UNIX需要有三个协调能力互斥:一个在用,另一个等待同步:写进程把数据送入管道后就去睡觉,别人取走后再醒来工作。读进程想来取数据发现是空的也要去睡觉,有数据后再醒来取。确定对方是否存在:确认对方存在后才能进行通信3.消息传递系统(高级通信方式):以格式化的消息为单位,将通信数据封装在消息中。4.客户机-服务器系统套接字网络通信接口远程过程调用消息传递通信的实现方式1.直接消息传递系统发送进程利用OS所提供的发送命令(原语)直接把消息发给目标进程对称寻址方式send(P1,message)receive(P1,message)非对称寻址方式send(P,message)receive(id,message)单机系统环境一般采用定长消息格式,以减少对信息的处理和存储开销变长消息,方便用户进程在消息的发送和接受后存在两种可能性:继续发送/接收货阻塞为使发送进程和接收进程间能通信,在两者之间建立一条通信链路。两种方式(自建后消除,系统建)2.信箱通信信箱定义为一种数据结构,由信箱头和信箱体构成系统为信箱提供的原语:信箱的创建和撤销,消息的发送和接收由操作系统或用户创建信箱分为私有,公有,共享信箱消息缓冲对列通信机制数据结构:消息缓冲区,PCB中有关通信的数据项发送进程在发送消息之前要把待发送的消息正文,发送进程标识符,消息长度填入发送区。发送原语根据长度申请一缓冲区,把发送区的信息复制到缓冲区,然后挂在消息队列上。接收进程从自己的队列中摘下缓冲区,复制。线程(调度和分派的基本单位)(进程是爸爸,线程是儿子们)区别:进程和线程的区别:(a)不同进程的地址空间是独立的,而同一进程内的线程共享同一地址空间。(b)在引入线程的操作系统中,进程是资源分配和调度的单位,线程是处理机调度和分配的单位,资源是分配给进程的,线程只拥有很少资源,因而切换代价比进程切换低。引入线程是为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性线程的三种状态同进程线程控制块TCB多线程OS中的进程具有以下属性1.进程是一个可拥有资源的基本单位2.多个线程并发执行3.进程已不是可执行的实体,线程才是调度和分派的基本单位开个QQ,开了一个进程;开了迅雷,开了一个进程。在QQ的这个进程里,传输文字开一个线程、传输语音开了一个线程、弹出对话框又开了一个线程。所以运行某个软件,相当于开了一个进程。内核支持线程KST优点:1.在多处理器系统中,内核可以同时调度一个进程中的多个线程并执行2.如果进程中的一个线程阻塞,内核可以调度该进程中的其他线程占有处理器或运行其他进程的线程3.内核支持线程具有很小的数据结构和堆栈,线程切换快,切换开销小4.内核本身也可以采用多线程技术,可以提高系统执