一、操作系统概论1、计算机系统:可以按照用户的要求接受和存储信息,自动进行数据处理并输出结果信息的系统。计算机系统包括硬件系统和软件系统。硬件系统是计算机赖以工作的实体;软件系统则是保障计算机系统按照用户指定的要求协调工作。这两部分构成了计算机系统的资源。因此计算机系统资源包括硬件资源和软件资源。2、操作系统:计算机中的一个系统软件,它是这样一些程序模块的集合——它们能有效的组织和管理计算机系统中的硬件及软件资源,合理地组织计算机的工作流程,控制程序的执行,并向用户提供各种服务功能,使用户能够灵活、方便、有效的使用计算机,并使整个计算机系统高效的运行。3、特征1)并发性(若干个程序同时运行)2)共享性(资源共享)3)随机性4、功能1)进程管理A、进程控制(创建、撤销以及进程运行时各种状态的转换)B、进程同步C、进程间通信(相互协作的进程之间)D、调度(进程、线程、作业)2)存储管理A、内存的分配与回收B、存储保护C、内存扩充3)文件管理A、文件存储空间的管理B、目录管理C、文件系统的安全性4)设备管理5)用户接口5、分类1)批处理操作系统2)分时系统(弥补批处理方式不能向用户提供交互式快速服务的缺点)3)实时操作系统4)嵌入式操作系统5)个人计算机操作系统6)网络操作系统7)分布式操作系统8)智能卡操作系统6、结构1)整体式结构(模块组合)2)层次结构(将模块排列成若干层,各层之间的模块只能是单向依赖或单向调用)3)微内核(客户机/服务器)结构(适用于网络环境下分布式处理)客户机进程和服务器进程之间的通信是采用发送消息进行的,这是因为每个进程属于不同的虚拟地址空间,他们之间不能直接通信,必须通过内核进行,而内核则是被映射到每个进程的虚拟地址空间内的,它可以操作所有进程。客户机进程发出消息,内核将消息传给服务进程。服务进程执行相应的操作,其结果又通过内核用发消息方式返回给客户机进程,这就是客户机/服务器的运行模式。二、操作系统的运行机制1、中央处理器(CPU)构成:运算器、控制器、一系列寄存器以及高速缓存2、特权指令和非特权指令(多用户多任务的多道程序):特权指令:指令系统中那些只能由操作系统使用的指令,这些特权指令不允许一般的用户使用。非特权指令:一般用户使用的指令。3、处理器的状态1)管态和目态处理器有时执行用户程序,有时执行操作系统程序。在执行不同的程序时,根据运行的程序对资源和机器指令的使用权限而将此时的处理器设置为不同的状态。管态:一般指操作系统管理程序运行的状态,具有较高的特权级别,又称为特权态、系统态。目态:用户程序运行的状态,具有较低的特权级别,又称为普通态,用户态。2)CPU状态的转换(动态改变)A、目态到管态:中断或异常B、管态到目态:设置PSW指令(修改程序状态字)系统启动时,CPU初始状态为管态,然后装入操作系统程序,操作系统退出执行时,让用户程序在目态执行。4、存储体系1)存储器的层次结构(寄存器、高速缓存、内存储器、硬盘存储器、光盘)A、容量、速度和成本的匹配B、存储访问局部性原理2)存储保护A、界地址寄存器(界限寄存器)B、存储键5、中断与异常机制1)中断与异常的概念中断是指CPU对系统中或系统外发生的异步事件的响应。中断:当发生某个异步事件后,中断了处理器对当前程序的执行,而转去处理异步事件。在该异步事件处理完之后,处理器再转回源程序的中断点继续执行。异常:中断是由外部事件引发的,而异常则是由正在执行的指令引发的2)分类中断分类:A、时钟中断B、输入输出中断C、控制台中断D、硬件故障中断异常分类:A、程序性中断B、访管指令异常3)中断过程:接受和响应中断、保护中断现场、分析中断向量、调用中断处理程序、中断处理结束恢复现场、原有程序继续执行。4)几种典型中断的处理5)中断优先级与中断屏蔽6、系统调用1)概念系统调用就是用户在程序中调用操作系统所提供的一些子功能。这是一种特殊的过程调用,这种调用通常是由特殊的机器指令实现的。除了提供对操作系统子程序的调用外,这条指令还将系统转入特权方式。系统调用是操作系统提供给编程人员的唯一接口。2)系统调用与一般过程调用的区别A、运行在不同的系统状态B、状态的转换C、返回问题D、嵌套调用3)分类A、进程控制类B、文件操作类C、进程通信类D、设备管理类E、信息维护类4)处理过程A、操作系统必须有事先编制好的实现这些功能的子程序或过程B、类似于硬件中断处理的中断处理机构。当用户使用操作系统调用时,产生一条相应的指令,处理机在执行到该指令是发生相应的中断,并发出有关的信号给处理机构C、在系统中控制系统调用服务的机构称为陷入或异常处理机构。陷入处理程序把陷入指令中所包含的功能号与该入口地址表中的有关项对应起来,从而由系统调用功能号驱动有关子程序执行。5)用户程序与系统程序之间的参数传递实现方法:A、陷入指令自带参数B、通用寄存器传递参数C、堆栈区传递参数7、I/O技术1)I/O结构:早期的计算机系统中,外部设备的控制器通过I/O硬件结构与中央处理器连接。对设备控制器的操作是由处理器直接发出的I/O指令来实现的。2)通道:通道是独立于中央处理器的,专门负责数据I/O传输工作的处理单元。现代计算机系统的结构上,设备控制器通过通道连接在计算机系统的公共系统总线上。采用通道这种I/O结构优点:实现中央处理器与各种外部设备的并行工作。操作系统可以让多个程序同时执行,并在同一时刻让各个程序分别使用计算机系统的不同资源。3)DMA技术直接存储器访问(DMA)技术通过系统总线的一个独立控制单元,即DMA控制器,自动的控制成块数据在内存和I/O单元之间的传送。当处理器需要读写一整块数据的时候,它给DMA控制单元发送一条命令,在命令中通常包含I/O设备的编址、开始读或写的主存编址、需要传送的数据长度、是否请求一次读或写等。处理器再给DMA控制单元发送完一条命令之后,就可以处理其他事情了。而DMA控制器将自动管理整块数据的传送。当传送过程完成后,他会给处理器一个中断。4)缓冲技术缓冲技术是用在外部设备与其他硬件部件之间的一种数据暂存技术。它利用存储器件在外部设备中设置了数据的一个存储区域,称为缓冲区。缓冲技术一般有两种用途:一是用在外部设备与外部设备之间的通信上,而是用在外部设备与处理器之间。采用缓冲技术的原因:CPU处理数据速度与设备传输数据速度不相匹配,需要用缓冲区缓解其间的速度矛盾。三、进程模型1、进程模型1)概念进程可分为系统进程和用户进程两类。系统进程执行操作系统程序,完成操作系统的某些功能。用户进程运行用户程序,直接为用户服务。系统进程的优先级通常高于一般用户进程的优先级。2)进程与程序的联系与区别联系:程序是构成进程的组成部分之一,一个进程的运行目标是执行它所对应的程序。静态角度看,进程是由程序、数据和进程控制块(PCB)三部分组成。区别:程序是静态的,进程是动态的。进程具有创建其他进程的功能。被创建的进程成为子进程,创建者称为父进程。3)进程的特性A、并发性B、动态性C、独立性D、交往性E、异步性2、进程的状态及其状态转换1)三状态进程模型A、运行状态:进程已获得CPU,并在CPU上执行的状态,一个单CPU系统最多只有一个进程处于运行态。B、就绪状态:一个进程已经具有运行条件,但没有获得CPU而不能运行所处的状态,一旦CPU分配给它,该进程就可运行。C、等待状态:也称阻塞状态或封锁状态。是指进程因等待某种事件发生而暂时不能运行的状态。三种状态之间的转换:就绪-运行运行-就绪运行-等待等待-就绪2)五状态进程模型A、运行状态B、就绪状态C、阻塞状态:由于进程等待I/O操作或进程同步等条件而暂停运行时处于阻塞状态。D、创建状态:分配和建立进程控制块表项、建立资源表格(如打开文件表)并分配资源,加载程序并建立地址空间表。E、结束状态:进程已结束运行,回收除进程控制块之外的其他资源。五状态进程模型之间转换:(1)创建进程:创建一个新进程,以运行一个程序。(2)提交:完成一个新进程的创建过程,新进程进入就绪状态。(3)调度运行:从就绪进程表中选择一个进程,进入运行状态。(4)释放:进程完成或失败而终止进程运行,进入结束状态。(5)超时:由于用完时间片或高优先级进程就绪等原因导致进程暂停运行。(6)事件等待:进程要求的事件未出现而进入阻塞。(7)事件出现:进程等待的事件出现。3)七状态进程模型(区分进程地址位于内存还是外存)A、与五状态进程模型相比,七状态进程模型把原来的就绪状态和阻塞状态进行了细分,增加了就绪挂起和阻塞挂起两个状态(1)就绪:进程在内存且可立即进入运行状态(2)阻塞:进程在内存并等待某事件的出现(3)阻塞挂起:进程在外存并等待某事件的出现(4)就绪挂起:进程在外存,但只要进入内存,即可运行挂起:把一个进程从内存转到外存激活:把一个进程从外存转到内存3、进程控制块1)概念为便于系统控制和描述进程的活动过程,在操作系统核心中为进程定义了一个专门的数据结构,称为进程控制块(PCB)。2)PCB的内容调度信息:供进程调度时使用,描述了当前所处的状况,它包含进程名、进程号、存储信息、优先级、当前状态、资源清单、家族关系、消息队列指针、进程队列指针和当前打开文件等。现场信息:只记录那些可能会被其他进程改变的寄存器,如程序状态寄存器、时钟、界地址寄存器等,一旦中断进程的运行,必须把中断时刻的内容记入PCB的现场信息。3)进程的组成程序、进程控制块和数据三部分组成。PCB是进程的“灵魂”,由于PCB中保存进程的地址信息,通过它可以得到进程程序的存储位置,也可以找到整个进程。程序和数据是进程的“躯体”。4、PCB的组织1)线性方式2)索引方式3)链接方式5、进程队列1)就绪队列2)等待队列3)运行队列6、进程控制1)概念进程控制:进程有一个从创建到消亡的生命周期,进程控制的作用就是对进程在整个生命周期的各种状态之间进行有效的控制。进程控制通过原语实现。原语:通常由若干条指令所组成,用来实现某个特定的操作,通过一段不可分割的或不可中断的程序实现其功能。原语的执行必须连续,一旦开始执行就不能间断,直到执行结束。原语是操作系统核心的一个组成部分,他必须在管态下执行,并常驻内存。2)进程控制原语A、创建原语:创建一个进程主要任务是创建进程控制块PCB。具体操作是先申请一空闲PCB区域,将有关信息填入PCB,设置该进程为就绪态,最后把它插入就绪队列。B、撤销原语:撤销PCBC、阻塞原语:把进程从运行状态转换为阻塞状态D、唤醒原语:在等待队列中找到该进程,置进程的当前状态为就绪态,然后将它从等待队列撤出并插入到就绪队列中排队,等待调度执行。3)UNIX的fork()函数使用在UNIX类操作系统中,父进程通过调用fork()函数创建子进程。父进程与子进程的区别在于它们有不同的PID。fork()函数执行的特点是:只被调用一次却返回两次:一次是在调用进程(父进程)中,一次是在新创建的子进程中。在父进程中,fork()返回子进程的PID。在子进程中,fork()返回0.因为子进程的PID总是非零的,通过返回值就可以区分程序是在父进程还是在子进程中执行。四、线程模型1、概念线程产生原因:由于进程是一个资源拥有者,因而在进程创建、撤销和切换过程中,系统必须为之付出较大时空开销。正因如此,系统中所设置的进程数目不宜太多,进程切换频率不宜过高。如果将作为调度和分派的基本单位不同时作为独立分配资源的单位,使之轻装运行;而对拥有资源的基本单位不频繁的对之进行切换,正是在这种思想指导下产生线程。线程:线程是进程中的一个实体,是CPU调度和分派的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。2、属性A、每个线程有一个唯一标示符和一张线程描述表B、不同的线程可以执行相同的程序C、同一进程中的各个线程共享该进程的内存地址空间D、线程是处理器独立调度单位,多个线程可并发执行E、一个线程被创建后便开始了它的生命周期,直到终止