第一章
A:操作系统:是管理计算机硬件并提供应用程序运行环境的软件
1)资源分配器,管理资源、分配资源
2)控制程序:管理用户程序的执行以防止计算机资源的错误使用或使用不当。
3)作用:为应用程序的运行提供运行环境;提高计算机资源的利用率,方便用户;
4)实现方式:协调、控制计算机中的活动
5)操作系统目前有五大类型(批处理、分时、实时、网络和分布式)和五大功能(作业管理、文件管理、存储管理、设备管理和进程管理)。
{
作业管理:包括任务管理、界面管理、人机交互、图形界面、语音控制和虚拟现实等。
文件管理:又称为信息管理。
存储管理:实质是对存储“空间”的管理,主要指对内存的管理。
设备管理:实质是对硬件设备的管理,其中包括对输入输出设备的分配、启动、完成和回收。
进程管理:又称处理机管理,实质上是对处理机执行“时间”的管理,即如何将 CPU 真正合理地分配给每个任务}
A:操作系统、计算机系统组织、计算机系统体系结构的区别
操作系统:
计算机系统组织:即计算机的系统结构
计算机系统体系结构:包括单处理器系统、多处理器系统(增加吞吐量,规模经济,增加可靠性)、集群系统等多种体系结构。
一种体系结构可以有多种组成,一种组成可以有多种物理实现,体系结构包括对组织与实现的研究
A:操作系统的框架结构
不同操作系统的组成,例如分时系统等
A:操作系统如何控制硬件、中断处理等
硬件随时通过系统总线向CPU发出信号,以触发中断。软件通过执行特别操作,如系统调用触发。其他如中断处理、出错产生异常等也会导致trap。
处理过程:保存现场;分析中断原因;进入相应的中断处理程序;恢复现场;退出中断
34、给出系统总体上的中断处理过程。
CPU每执行完一条指令就去扫描中断寄存器,检查是否有中断发生,若没有中断就继续执行下条指令;若有中断发生就转去执行相应的中断处理程序。中断处理过程可粗略的分为以下四个过程:
① 保护当前正在运行程序的现场;
② 分析是何种中断,以便转去执行相应的中断处理程序;
③ 执行相应的中断处理程序;
④ 恢复被中断程序的现场。
A:综述:进程管理(创建和删除用户进程和系统进程,挂起和重启进程,提供进程同步机制,提供进程通信机制,提供死锁处理机制)、内存管理(纪录内存哪部分正在被使用及被谁使用;当有内存空间时,决定哪些进程可以装入内存;根据需要分配和释放内存空间)、存储管理(文件系统管理;大容量存储器管理;高速缓存;I/O系统)、保护安全(控制进程或用户对计算机系统资源的访问;防止系统受外部或内部攻击)
A:什么是分布式系统
FTP、NFS
允许用户共享通过网络连接的、在地理位置上时分散的计算机资源。
通过客户机-服务器模式(~系统的专有分布式系统)或对等模式提供服务
网络实现并发操作;实现透明的资源共享
A:专用系统的举例:实用嵌入式系统:汽车引擎;多媒体系统;手持系统:手机;
A:寄存器-高速缓存-主存-电子磁盘-磁盘-光盘-磁带
第二章
A:操作系统服务与功能不同,有哪些
服务:在最底层,系统调用允许运行程序直接向操作系统发出请求;在最高层,命令解释程序或shell提供了一个机制以便用户不必编写程序就能发出请求。具体有:用户界面、程序执行、I/O操作、文件系统操作、通信、错误检测、资源分配、统计、保护和安全。
操作系统的主要功能是处理器管理、存储器管理、文件管理、作业管理和设备管理。
!看课后题2.1
A:操作系统的用户界面(人和OS的接口)命令解释程序,图形用户界面
A:系统调用:程序和OS的接口,和API的区别,类库和C……和API的关系
看手抄整理6(3)
A:系统程序:操作系统提供,用户来对OS进行维护和……
提供方便的环境以开发程序和执行程序
文件管理、状态信息、文件修改、程序语言支持、程序装入盒执行、通信
A:机制和策略:
机制决定如何做,策略决定做什么;一套机制不同策略,软件适用性更强
分离:灵活性
系统需要通用机制,这样策略的改变只需要重新定义一些系统参数
Q:操作系统结构
A:
简单结构:如DOS,但单一结构限制功能发展;
分层方法:构造和调试简单化,但效率低,主要困难设计对层的详细定义;
微内核:通常包括最小的进程和内存管理以及通信功能。主要功能是使客户程序和运行在用户空间的各种服务之间的通信,以消息传递形式提供。mac。优点:便于扩充操作系统,容易移植,提供更好的安全性和可靠性。QNX为内核提供消息传递和进程调度服务。但,由于系统功能总开销的增加而导致系统性能下降。
模块:用面向对象编程技术来生成模块化的内核。内核有一组核心部件,以及在启动或运行时对附件服务的动态链接。unix使用动态加载模块。
Mac:混合结构,分层技术构建,其中一层包括Mach微内核
Q:虚拟机:基本思想:单个计算机的硬件抽象为几个不同的执行部件。利用CPU调度和虚拟内存技术。幻觉:进程认为有自己的处理器和(虚拟)内存。
有虚拟用户模式和虚拟内核模式,但都运行在物理用户模式上。
什么是;I……中的虚拟机,OS中的虚拟机
Q:系统生成:对于某个特定的计算机场所,配置和生成系统。在模拟机器上。使用一个特殊程序。SYSGEN程序从给定文件读取,或询问系统操作员有关硬件系统的特定配置,或直接检测硬件以决定有什么部件。
第三章
进程和线程的区别和联系[见上及手抄]:线程是一个程序的执行过程。进程是一组……,是OS进行资源分配的独立单位,一个进程中的所有线程共享这些资源
进程的合作:同步[见上]
进程状态——相互转化[见手抄]
进程控制快——描述……,有哪些……(页表太大,不在),放页表的起始位置[见上]
4.进程控制块(PCB是进程存在的唯一标志)
★定义:系统为进程定义的一种专门的数据结构,用PCB描述进程的运动变化过程,记忆进程的外部特征和与其他进
程的联系。PCB与进程一一对应,系统创建一个进程,在系统区就为进程设置一个PCB,再利用PCB对进程进行管理和控制,进程被撤消时,系统就收回它的PCB,进程随之消亡。所以,PCB是进程存在的惟一标志。
★进程的组成:程序、数据、控制块。
三者关系:进程的程序和数据比喻为进程的“躯体”,那么PCB便是进程的“灵魂”。 ★PCB是进程存在的唯一标志
❶进程标识符:唯一地标识一个进程
①内部标识符。在所有的操作系统中,都为每一个进程赋予一个惟一的数字标识符,它通常是一个进程的序号。 主要是为了方便系统使用。
②外部标识符。由创建者提供,通常由字母、数字组成,往往是用户(进程)在访问该进程时使用。 ❷位置信息:进程的程序和数据部分在内存或外存中的物理位置。 ❸状态信息:进程当前的状态 ❹进程的优先级。
❺进程现场保护区:进程状态改变时,保存当时的cpu现场到内存中。 ❻资源清单:除了内外存,还有其他资源,如I/O设备 ❼队列指针或链接字:链接处于同一状态的进程 ❽ 其它。 根据os的不同,pcb具有的内容不同
★组织方式 :一个系统通常可有数十个、数百个甚至数千个PCB。
线程私有:线程控制快、栈(用户栈、系统栈)
Q:内核程序——内核栈?
A: 5 【内核线程】,由操作系统直接支持和管理
Q:进程调度:就是CPU调度;
和作业调度(被系统允许,在批处理OS中)、内核调度的区别
内核调度就是cpu调度。
A:试比较进程调度与作业调度的不同点。 ① 作业调度是宏观调度,它决定了哪一个作业能进入主存。进程调度是微观调度,它决定各作业中的哪一个进程占有中央处理器。 ② 作业调度是选符合条件的收容态作业装入主存。进程调度是从就绪态进程中选一个占用处理器。
磁盘->内存(中期);短期(CPU);长期
1. 【长期调度程序】、【作业调度程序】:将新建的进程从缓冲池中调入内存中并准备执行,使用频率较低
2. 【短期调度程序】、【CPU调度程序】:从准备执行的进程中选中进程并为之分配CPU,使用频率高
3. 【多道程序设计的程度】:内存中进程数量
4. 【中期调度程序】:将进程从内存(或从CPU竞争)中移出,从而降低多道程序设计的程度; 之后程序能被重新调度内存并从中断处继续执行; 这种方案也叫【交换】P78
5. 【进程上下文】:进程的PCB
6. 【上下文切换】:将CPU切换到另一个进程需要保存当前进程的状态并恢复另一个进程的状态这一任务叫做“上下文切换”
7. 【级联终止】:当一个进程终止时,其所有的子进程也将终止,通常由操作系统进行
进程操作:创建、唤醒、挂起、终止[exit(),通常由操作系统进行]:与状态有关
20、用fork创建新进程,它要做哪些工作? 由fork创建新进程的主要工作有: ① 在进程表 proc[ ]中为子进程找一个空闲的表项,用来存放子进程的proc结构; ② 为子进程分配一个唯一的标识号; ③ 把父进程中的字段复制到子进程的 proc中,并把p – pid置为分配到的进程标识号,把p-pid置为父进程的标识号,把p-stat置为创建状态; ④ 按父进程中 p-size所示的长度为子进程申请分配内存。若有足够的内存,则把父进程的user结构、栈和用户数据区全部复制到子进程的空间中;若无足够的内存,则在磁盘对换区中分配存储空间,然后复制到对换区中,置于进程状态为就绪状态。
Q:进程间通信:
A:共享内存系统(速度更快)(需要通信进程建立共享内存区域;无限缓冲和有限缓冲;共享缓冲通过循环数组和两个逻辑指针)
消息传递系统(直接或间接、同步或异步:阻塞或非阻塞、自动或显式)(适用于交换较少数量的数据,因为不需要避免冲突;更易实现;通常用系统调用实现,因为内核介入时间消耗)(通过通信线路)
管道
允许协作:信息共享、提高运算速度、模块化、方便
第四章
用户级线程-用户管理,内核级线程-OS支持和管理,并不一定运行在内核态下
4 【用户线程】,接受内核支持,而无须内核管理,属于用户层的线程
5 【内核线程】,由操作系统直接支持和管理
多线程模型(LWP)
15 【轻量级进程LWP】:为一种应用程序可以被调度用户线程来运行的虚拟处理器; 每个LWP与内核线程相连,该内核线程被操作系统调度到物理处理器上运行; 如果内核线程阻塞,LWP也阻塞,与LWP相连的用户线程也阻塞
23、什么是线程?多线程技术具有哪些优越性? 线程是进程中可独立执行的子任务,一个进程可以有一个或多个线程,每个线程都有一个惟一的标识符。线程与进程有许多相似之处,往往把线程又称为“轻型进程”,线程与进程的根本区别是把进程作为资源分配单位,而线程是调度和执行单位。
多线程技术具有多个方面的优越性:
响应度高、资源共享、经济、多处理器体系结构的利用
① 创建速度快、系统开销小:创建线程不需要另行分配资源; ② 通信简洁、信息传送速度快:线程间的通信在统一地址空间进程,不需要额外的通信机制; ③ 并行性高:线程能独立执行,能充分利用和发挥处理器与外围设备并行工作的能力。
1 【线程】CPU使用的基本单元;(由线程ID、程序计数器、寄存器、寄存器集合和棧组成);(与属于同一进程的其他线程共享代码段、数据段和其他操作系统资源)
2 【传统重量级进程】:只有单个的控制线程
3 多线程编程的优点:(1)响应度高,即使部分阻塞,该程序仍能继续运行; (2)资源共享; (3)经济,进程创建所需要的内存和资源的分配比较昂贵;(4)多处理器体系结构的利用,能充分使用多处理器体系结构,以便每个进程能并行运行在不同的处理器上
6 【多对一模型】:多线程模型;将许多用户级线程映射到一个内核线程; 线程管理是由线程库在用户空间进行的,效率比较高;但是如果有一个线程执行了阻塞系统调用,那么整个进程会阻塞,因为在任意时刻只有一个线程能访问内核,多个线程不能并行运行在多处理器上
7 【一对一模型】:多线程模型;将每个用户线程映射到一个内核线程; 在某个线程阻塞时,能允许另一个线程继续执行;能允许多个线程能并行运行在多处理器系统上; 缺点是每创建一个用户线程就需要创建一个相应的内核线程
8 【多对多模型】:多线程模型;多路复用了许多用户线程到同样数量或更小数量的内核线程上;是上两种的优化;可以创建任意多的用户线程,并且相应内核线程能在多处理器系统上并发执行,而且当一个线程执行阻塞系统调用时,内核能调度另一个线程来执行
9 【线程库】:为程序员提供创建和管理线程的API
10 实现线程库,【第一种方法】:在用户空间中提供一个没有内核支持的库,此库的所有代码和数据结构都存在于用户空间,调用库中的一个函数只是导致了用户空间中的一个本地函数调用,而不是系统调用;【第二种方法】:执行一个由操作系统直接支持的内核级的库,此时,库的代码和数据结构存在于内核空间中,调用库中的一个API函数通常会导致对内核的系统调用
11 【pthread】:是由POSIX标准为线程创建和同步定义的API,这是线程行为的规范而不是实现
12 【线程取消】:在线程完成之前终止线程的任务; 【异步取消】:一个线程立即终止目标线程; 【延迟取消】:目标线程不断地检查它是否应该终止,这允许目标线程有机会以有序的方式来终止自己
13 【线程池】:在进程开始时创建一定数量的线程,并放到池中以等待工作; 如果没有可用的线程,服务器会一直等待直到有空线程为止
14 【线程特定数据】:每个线程自己的数据
16 【调度器激活】:解决用户线程库与内核间通信的方法
17 【线程的上下文】:寄存器集合、棧和私有存储区域
第五章[书本162小结]
CPU调度和上下文切换的不同:一个线程⬇️,一个线程⬆️,代价……
调度法则:针对用户-公平,响应时间短,周期短;系统-资源利用率高,吞吐量大,平均周转小
各调度算法计算平均等待周转时间
CPU使用率和吞吐量最大化,周转时间、等待时间、响应时间最小化
1 CPU调度是多道程序操作系统的基础
2 对于单处理器系统,每次只允许一个进程运行,任何其他进程必须等待,直到CPU空闲能被调度为止
3 多道程序设计的目的是在任何时候都有某些进程在运行,以使CPU使用率最大化
4 对于多道程序,当一个进程必须等待时,操作系统会从该进程拿走CPU的使用权,而将CPU交给其他进程
5 CPU调度可以发生在:(1)当一个进程从运行状态切换到等待状态(如IO请求,或等待一个子进程的运行结束)、(2)当一个进程从运行状态切换到就绪状态(如发生中断)、(3)当一个进成从等待状态切换到就绪状态(如IO完成)、(4)当一个进程终止时;
6 【非抢占的】、【协作的】:一旦CPU分配给一个进程,那么该进程会一直使用CPU直到进程终止或切换到等待状态
7 因为中断不能总是被内核所忽视,所以受中断影响的代码段必须加以保护以避免同时访问,为了这些代码不被多个进程同时访问,在进入时要禁止中断,而在退出时要重新允许中断
8 【分派程序】:用于将CPU的控制权交给由短期调度程序选择的进程;功能包括:(1)切换上下文、(2)切换到用户模式、(3)跳转到用户程序的合适位置,以重新启动程序
9 【分派延迟】:分派程序停止一个进程而启动另一个所要花的时间
10 【吞吐量】:指一个时间单位内所完成进程的数量
11 【周转时间】:从进程提交到进程完成的时间段,包括了进程等待进入内存、在就绪队列中等待、在CPU上执行和IO执行
12 【等待时间】:在就绪队列中等待所花费时间之和
13 【响应时间】:从提交请求到产生第一响应的时间; (注:是开始响应所需要的时间,而不是输出响应所需要的时间)
14 【先到先服务调度算法FCFS】:先请求CPU的进程先分配到CPU,永远分配给就绪队列的队头,该进程会保持CPU直到释放CPU为止,即程序终止或是请求IO;(注:非抢占)
15 【护航效果】:所有的进程都在等待一个大的进程释放CPU
16 【最短作业优先调度算法SJF】:当CPU空闲时,会赋给在就绪队列中具有最短CPU区间的进程; 通常用于长期调度;(注:可以是抢占也可以是非抢占); 抢占SJF也称为【最短剩余时间优先调度】
17 【优先级调度】:每一个进程都有一个优先级与其关联,具有最高优先级的进程会被分配到CPU(注:可以是抢占也可以是非抢占)
18 【无穷阻塞】:较低优先级的进程会无穷等待CPU
19 【老化】:逐渐增加在系统中等待很长时间的进程的优先级
20 【轮转法调度】:专门为分时系统设计的; CPU调度程序循环就绪队列,为每一个进程分配不超过一个时间片的CPU; 当当前运行的进程的CPU区间比时间片要长,定时器会中断并产生操作系统中断,然后进行上下文切换,将进程加入到就绪队列的尾部,接着CPU调度程序选择就绪队列的下一个进程(注:可抢占)
21 【多级队列调度】:将进程依据进程的属性如:内存大小、进程优先级、进程类型等等分为不同组,(如前台(交互)和后台(批处理)进程,前台进程优先级更高),一个进程被永远的分配在一个队列中; 每个队列有自己的调度算法; 每个队列与更低层队列比有更高的优先级,只有前面的队列为空了,后续的队列才能得到CPU
22 【多级反馈队列调度】:大致与多级队列调度一样,但是多级反馈队列调度允许进程在队列之间移动; 如果进程使用过多CPU时间,那么它会被移动到更低的优先级队列中;此外,在较低优先级队列中等待时间过长的进程会被转移到更高优先级队列
23 【负载分配】:针对于多处理器调度
24 【非对称多处理】:CPU调度的一种方法是让一个处理器(主服务器)处理所有的调度决定、IO处理以及其他系统活动,其他的处理器只执行用户代码; 方法简单,因为只有一个处理器访问系统数据结构,减少数据共享的需要
25 【对称多处理】:每个处理器自我调度
26 【处理器亲和性】:系统避免将进程从一个处理器上移至另一个处理器运行
27 【软亲和性】:虽然系统有设计让一个进程保持在同一个处理器上运行的策略,但是不能保证
28 【硬亲和性】:肯定不会被移到另外的处理器上
29 【负载平衡】:设法将工作负载平均分配到SMP系统中的所有处理器上
30 【对称多线程SMT】:在同一个物理处理器上生成多个逻辑处理器,向操作系统呈现一个多逻辑处理器的试图; 进一步讲,每个逻辑处理器负责自己的中断处理; (这样允许同时运行几个线程)、(是由硬件提供的)
31 系统调度的是内核线程,而不是进程; 用户线程由线程库管理,内核并不了解他们; 为了能在CPU上运行,用户线程最终必须映射到相应的内核级线程
32 【进程竞争范围PCS】:线程库调度用户线程到一个有效的LWP上运行,CPU竞争发生在属于相同进程的线程之间
33 【系统竞争范围SCS】:操作系统决定调度哪个内核线程到CPU
34 【分析评估法】:使用给定算法和系统负荷,产生一个公式或数字,以评估对于该负荷算法的性能
35 【Little公式】:n = λ x W(n 为平均队列长度(不包括正在服务的进程),W为队列的平均等待时间)
网友评论