您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 《操作系统概念》重点内容总结
导论1、操作系统的功能作用:1.系统视角:协调、管理计算机的软、硬件资源,提高其利用率。2.用户视角:为用户提供使用计算机的环境和服务。(2)功能:处理机管理、存储管理、设备管理、文件管理、用户接口。计算机系统的基本目的:执行用户程序并能更容易的解决用户问题2、操作系统的发展过程:(1)手工操作时期:人工干涉,用户独占。(2)早期批处理时期:出现了完成作业自动转换工作的程序叫监督程序,包括早期联机批处理、早期脱机批处理。(3)多道批处理系统:在内存中同时存放多道程序在管理程序的控制下交替执行,用户独占。(4)分时系统:用户与主机交互。(5)实时系统:具有专用性及时性。(6)现代操作系统(网络操作系统和分布式操作系统):有网络地址,提供网络服务,实现资源共享。计算机系统结构1、计算机系统在硬件方面的保护:(1)双重模式操作:用户模式、监督程序模式,双重模式操作为人们提供了保护操作系统和用户程序不受错误用户程序影响的手段。(2)I/O保护:定义所有I/O指令为特权指令,所以用户不能直接发出I/O指令,必须通过操作系统来进行。(3)内存保护:对中断向量和中断服务程序进行保护,使用基址寄存器和界限寄存器。(4)CPU保护:使用定时器防止用户程序运行时间过长,操作系统在将控制权交给用户之前,应确保设置好定时器,以便产生中断。单处理器系统多处理器系统:有多个紧密通信的CPU,他们共享计算机总线,有时还有时钟、内存和外设等。多处理器系统有三个主要优点:①增加吞吐量:N个处理器的加速比小于N②规模经济:多处理器系统共享外设、存储和电源,比单处理器系统节省资金③增加可靠性:单个处理器失灵不会使整个系统停止,只会变慢多处理器系统的类型:非对称多处理(主从关系),对称多处理(SMP,对等关系)操作系统结构1、操作系统的基本组成:进程管理、内存管理、文件管理、输入/输出系统管理、二级存储管理、联网、保护系统、命令解释系统。2、系统调用的含义:系统调用提供了进程与操作系统之间的接口。分为五类:进程控制、文件管理、设备管理、信息维护、通信。3、操作系统设计所采用的结构:(1)简单结构:以较小、简单且功能有限的系统形式启动,但后来渐渐超过了其原来的范围,由于运行所用的硬件有限,它被编写成利用最小的空间提供最多的功能。(2)分层方法:优点:模块化,简化了调试和系统验证(灵活性强),易保证正确性,可靠性高;易维护扩充。;缺点:涉及对层的仔细认真的定义的困难,通信效率较差,占用资源增加(3)微内核:优点:便于操作系统扩充,便于移植,增加新服务不需要修改内核,更安全,更多操作在用户态执行;缺点:进程间的通信频繁,开销更大,系统性能下降;关于哪些服务应保留在内核内,而哪些服务应在用户空间内实现,并没有定论。(4)模块:优点:允许内核提供核心服务,也能动态的实现特定的功能。比分层系统更加灵活,任一模块都能调用任何其他模块,模块不需要消息传递来通信,更为高效4、虚拟机的优点(1)通过完全保护系统资源,虚拟机提供了一个坚实的安全层。(2)虚拟机允许进行系统开发而不必中断正常的系统操作。5、双重模式操作:用户模式和系统模式(用户态和内核态)进程1、进程的含义:进程是由数据结构以及在其上执行的程序组成,是程序在这个数据集合上的运行过程,也是操作系统进行资源分配和保护的基本单位。进程是运行中的程序。进程是现代分时操作系统的工作单元。2、进程包含的内容:程序代码、程序计数器、堆栈段、数据段。3、进程和程序的联系和区别:(1)程序是静态的,进程是动态的,程序是代码的集合,进程是程序的执行。(2)程序是永久的,进程是短暂的。(3)程序的组成是代码,进程的组成包括程序、数据、进程控制块。(4)一个程序可对应多个进程,通过调用关系,一个进程也可包括多个程序。(5)进程可生成其他进程,程序不能生成新的程序4、并发与并行的区别:并行指两个或多个事件在同一时刻发生;并发指两个或多个事件在同一时间间隔内发生。在单处理机系统中,每一时刻仅能执行一个程序,所以从微观角度来看程序的并发执行时,它们是交替执行,即串行。程序间真正的并行只有在多处理机系统中才会出现。5、进程的状态及转换条件:(1)状态:新建,运行,阻塞(等待),就绪,终止。(2)转换条件:①新建--〉就绪:就绪队列能够容纳新的进程。②就绪—〉运行:处于就绪状态的进程被调度程序选中,分配到CPU。③运行—〉阻塞:正在运行的进程因某种条件未满足而放弃对CPU的占用。④阻塞—〉就绪:处于阻塞状态的进程所等待的事情发生了。⑤运行—〉就绪:正在运行的进程用完了本次分配给它的CPU时间。时间片到期⑥运行—〉终止:正在运行的进程完成自己的工作或者由于发生某些事件而被异常中止。短程调度:就绪运行,最频繁中程调度:从内存中移除进程,降低程序多道度长程调度:新的就绪,选择进程进入就绪队列注:就绪挂起表示将某进程挂起,把空间让给更急迫的进程。根本原因是资源不足。运行队列中只能有一个6、进程控制块的作用及内容:(1)内容:进程状态、程序计数器、CPU寄存器、CPU调度信息、内存管理信息、记账信息、I/O状态信息。(2)作用:①PCB是进程组成中最关键的部分,每个进程都有惟一的PCB,操作系统对每个进程实施控制和管理。②系统创建一个进程时,为它创建一个PCB,当进程终止时,系统收回其PCB,该进程在系统中就不存在了,所以PCB是进程存在的惟一标志。7、上下文切换的过程:将CPU切换到另一个进程需要保存原来进程的状态并装入新进程的保存状态。过程如下:①保存处理器内容②对当前运行进程的PCB进行更新③将这个进程的PCB移入适当的队列④挑选其他进程执行⑤对挑选进程的PCB进行更新⑥对存储器管理数据结构进行更新⑦将被选中进程上次移出时的处理器状态进行恢复。8、进程间通信的机制有哪些,包括单机系统和网络系统:(1)单机系统:进程通信根据交换信息量的多少分为高级通信和低级通信。①低级通信方式:P,V操作。(信号量?)②高级通信方式:共享存储器方式、消息传递方式、管道文件(pipe)。无名管道主要用于父子进程或兄弟进程等相关进程之间的通信。命名管道用于不相关进程间的通信。(2)网络系统:套接字(socket)、远程过程调用、远程方法调用。其中,共享内存使用于传递大量的信息的场合。9、进程创建父进程生成子进程(fork函数)一次调用两次返回:子进程返回0,父进程返回子进程ID,出错返回-1。调用失败大多是因为内存不足,或是进程太多,系统不允许再创建getpid():返回当前进程的pidgetppid():返回父进程的pidfork()函数创建一个新进程,子进程和父进程使用相同的代码段;子进程复制父进程的堆栈段和数据段启动外部程序需要使用execve()函数,execve只有在调用失败的时候才有返回值。调用成功后,新启动的程序与当前进程融为一体,新启动的外部程序退出,当前进程也退出。也就是说,在execve后面的代码不会被执行。10、进程终止当进程执行完,并调用exit()请求操作系统删除自身时,进程终止。这时,进程可以返回状态值到父进程(通过系统调用wait())。所有进程资源(包括物理和虚拟内存、打开的文件和I/O缓冲)会被操作系统释放。父进程终止其子进程的原因有很多:①子进程使用了超过它所分配到的一些资源。②分配给子进程的任务已不再需要③父进程退出,操作系统不允许子进程继续(可以特殊处理,将子进程挂到init进程下)11、进程调度队列线程1、定义:是CPU使用的基本单元;他由线程ID,程序计数器,寄存器集合和堆栈组成。它与属于同一进程的其他线程共享代码段、数据段和其他操作系统资源由上图可知:线程的共享文件全局堆共享、局部堆不共享、寄存器不共享、栈不共享。线程流行起来的背景:当一个进程接收到请求时,创建一个新的进程处理请求会消耗大量的时间和资源,而具有多线程的进程能够达到同样的目的,这样就更有效。2、优点:(1)响应度高(2)资源共享(3)经济(4)多处理器体系结构的利用。3、多线程模型(1)多对一模型:允许开发人员随意创建任意多的用户线程,但是由于内核只能一次调度一个线程,所以并不能增加并发性。(2)一对一模型:提供更大的并发性,但是创建内核的开销会影响应用程序的性能。(3)多对多模型:没有以上两者缺点。4、线程的亲和性:表示将联系关系紧密的线程安排在一起。5、用户线程和内核线程用户线程受内核支持,而无需内核管理内核线程由操作系统直接支持和管理用户级线程的程序实体是运行在用户态下的程序;内核线程的实体是可以运行在任何状态下的程序。6、线程池:问题背景:服务器接收请求然后创建线程,线程创建仍然会消耗一部分时间,线程完成工作后会被丢弃;如果允许所有并发请求都通过新线程来处理,那么将没法限制在系统中并发执行的线程数量。无限制的线程会耗尽系统资源。解决这些问题的一个方法就是使用线程池。线程池的主要思想就是在进程开始时创建一定数量的线程,并放入池中等待工作。当服务器收到请求时,唤醒一个线程处理请求,工作完成后再放回池中等待工作。如果池中没有可用的空线程,那么会一直等待。线程池的优点:①通常用现有线程处理请求要比等待创建新的线程要快。②线程池限制了在任何时候可用线程的数量。这对那些不能支持大量并发线程的系统非常重要。线程池中的线程数量由系统CPU的数量、物理内存的大小和并发客户请求的期望值等因素决定。高级线程池能动态调整线程数量。进程同步1、进程为什么需要同步和互斥(1)进程的同步:一个进程运行到某一点时要求另一伙伴进程为它提供消息,在未获得消息之前,该进程处于等待状态,获得消息后被唤醒进入就绪态。(2)进程的互斥:由于各进程要求共享资源,而有些资源需要互斥使用,因此各进程间竞争使用这些资源,进程的这种关系为进程的互斥。2、临界资源:系统中某些资源一次只允许一个进程使用,称这样的资源为临界资源或互斥资源或共享变量。3、临界区(互斥区):在进程中涉及到临界资源的程序段叫临界区。临界区三原则:①互斥:临界区内只能有一个进程执行②前进:如果临界区内没有进程执行且有进程需要进入临界区,则选择进程进入临界区,且选择不能无限推迟③有限等待:一个进程等待进入临界区的时间是有限的,即保证每个请求进入临界区的进程都能在有限的时间中进入临界区4、信号量的含义信号量表示资源,初始化值非负。是用于解决进程间同步与互斥的通信量。信号量只能通过两个标准原子操作:wait()、signal()来访问信号量s=0时,s表示可用资源的数量。执行一次wait(P)操作意味着请求分配一个单位资源,因此s的值减1;当s0时,表示已经没有可用资源。请求者必须等待别的进程释放该资源,它才能运行。而执行一个signal(V)操作意味着释放一个单位资源,因此s加1。若s=0,表示某些进程正在等待资源。因此要唤醒一个等待状态的进程,使之运行下去。5、信号量和自旋锁的区别(1)自旋锁:当一个进程处于临界区时,其它进程持续循环等待(忙等待)。繁忙等待浪费了CPU周期,本来其它进程可以有效利用这些时间。在多处理机系统中非常有用。自旋锁的优点是:当期望短时间持有锁时,自旋锁很有用。(小王一直等着别人出来,自己不去睡觉)(2)记录型信号量:为了克服对繁忙等待的需求,我们修改wait和signal信号量操作的定义。当一个进程执行wait操作且信号量不为正时,它必须等待。然而,进程可以阻塞自身,而不是繁忙等待。block操作将一个进程置入与该信号量关联的等待队列中并将进程状态设为等待,其他进程执行signal()操作之后,执行wakeup()将等待队列上的进程唤醒,进入就绪队列。。(小王可以去睡觉,等别人唤醒)操作block()挂起调用它的进程;操作wakeup()重新启动阻塞进程P的执行。这两个操作都是操作系统作为基本系统调用来提供的。在忙等待的信号量经典定义下,信号量的值不可能为负数。记录型信号量可以产生负数,如果信号量为负数,其绝对值就是等待该信号量的进程的个数。5、死锁和饥饿死锁:两个或者多个进程无限等待一个事件,
本文标题:《操作系统概念》重点内容总结
链接地址:https://www.777doc.com/doc-3159714 .html