首页 > 其他 > 详细

操作系统-1-5章

时间:2020-05-06 10:52:50      阅读:55      评论:0      收藏:0      [点我收藏+]
  1 我们编写的高级语言程序其实是运行在OS上的)
  2   3 
  4   5 
  6 
  7 
  8 多线程程序怎么加锁??
  9 
 10 操作系统及其系统调度给程序员的编程提供了简化,使其不必直接用机器指令操作硬件。
 11 而是用扩展的机器指令。
 12 
 13 语言处理系统:可以使用高级语言进行面向问题的解决方案。
 14 
 15 从资源管理的角度理解操作系统:
 16 程序如何 
 17 1.控制占用CPU?
 18 2.控制主存?
 19 3.控制IO设备?
 20 4.如何与其他进程通讯?
 21 
 22 资源共享:
 23 1.独占式
 24 2.并发使用
 25 资源分配策略:
 26 1.静态分配
 27 2.动态分配
 28 3.资源抢占  如何回滚??
 29 
 30 多道程序设计:
 31 多程序一起进入优点:
 32 缓解了cpu和IO速度的严重不匹配的矛盾,提高了cpu利用率
 33 
 34 如何实现?
 35 为进入内存执行的程序建立管理实体:进程!
 36 
 37 操作系统应该能够管理进程的执行,以及系统(包括内存,cpu,IO等)调度
 38 
 39 
 40 人机交互的发展:
 41 VR:显然需要硬件支撑,什么硬件?
 42 其次,需要一个虚拟系统
 43 多通道交互整合
 44 支持主动参与的三维HCI
 45 
 46 所有应用程序访问操作系统的接口叫:系统调用
 47 计算机控制和实现系统调用的指令:陷入指令(硬件来做,陷入了内核)----计算机为实现系统调用而引起处理器中断的指令。
 48 过程:用户程序通过陷入指令中断CPU,保护cpu现场,取系统功能号 查入口地址标表获得入口地址(指向一个系统调用的处理程序)。
 49 运行,然后恢复CPU现场。
 50 
 51 软件功能的研究与发展实际就是由操作系统先带来的,OS是第一个大规模的软件系统。后面又有了数据库系统DB。
 52 
 53 操作系统内核:
 54 单内核:内核中各部件杂然混居
 55 UNIX/LINUX/WINDOWS都是如此
 56 
 57 cpu和内存都挂在系统总线上的。
 58 
 59 机器指令:中央处理器执行的基本单位。
 60 程序计数器PC:指向当前待执行的指令(取指)。
 61 CPU根据PC取指,然后放入指令暂存器IR,并对指令译码(解码)。
 62 然后发出控制命令,执行运算,产生结果并写回,完成一条指令的执行。
 63 调整PC计数器到下一条指令地址。
 64 
 65 指令执行周期:
 66 取指解码执行
 67 
 68 但是实际是按指令流水线执行的,为提高CPU利用率。
 69 取指解码执行
 70     取指解码执行
 71         取指解码执行
 72         
 73         
 74 处理器模式:设置处理器模式实现特权指令管理。
 75 0:操作系统内核        --内核模式
 76 1:系统调用
 77 2:共享库程序
 78 3:用户程序等   -----用户模式 
 79 
 80 中断驱动---中断驱动:用户程序间的切换是通过中断来完成的。必须先中断,控制权移交内核,然后内核再转交控制权到另一个用户程序。
 81 
 82 
 83 进程的三大状态:
 84 1.等待态
 85 2.就绪态
 86 3.进行态
 87 
 88 进程挂起:操作系统无法预料进程数目及资源需求,运行时可能出现运行资源不足情况,如 性能低 和 死锁。
 89 OS会剥夺某些进程的内存送至OS的对换区(磁盘缓冲区)。
 90 挂起的进程不占用内存,而就绪的进程是占有内存的。
 91 
 92 进程上下文:OS中进程的物理实体和 支持进程运行的环境共同形成(CPU现场,cache信息。寄存器上细纹,用户上下文(用户程序,数据等))
 93 进程控制块:进程切换。保存现场-->系统调度--->加载现场等
 94 
 95 进程:
 96 单线程结构:内部只有一个执行序列
 97 多线程结构:可以有多个执行序列
 98 多线程的进程相比单线程的进程好处:单线程的进程完成(伪)并行,需要操作系统保护及通信和切换代价。
 99 多线程环境优势:减少通信和切换代价
100 
101 多线程的进程:进程是系统进行保护和资源分配的基本单位。
102 线程:进程的一条执行路径,是调度的基本单位。同一进程中的线程共享主存空间和资源。
103 最简单的应用:word里打字,有个错误检查提示,一边输入一边检查,这实际是多线程完成的。
104 
105 
106 多线程实现机制:
107 KLT:内核级多线程技术
108         线程阻塞后内核可调用同进程下的其他线程占用处理器
109         如果是多核处理器环境,内核能同时调度同一进程中的多个线程来真正并行。
110         应用程序在用户态运行,而线程调度和管理在内核实现。因此同一进程中,控制权从一个线程到另一线程的移交需要模式切换,系统开销较大。
111         
112 ULT:用户级多线程技术
113         所有线程管理资源都在用户态,线程切换不需内核模式,节省切换开销。
114         操作系统调度的依然是进程,因此它的物理并行性不好。
115         缺点:如果线程阻塞就是进程阻塞,如何解决阻塞问题?
116         Jacketing技术:线程阻塞----执行jacketing程序-----检查资源使用情况,决定进程切换或移交控制权到另一个线程。
117         
118 比较:
119 相同点:资源保护的单位都是进程为单位。
120 不同点:
121     KLT:线程调度完全由操作系统做。物理并行性好,适合解决物理并行性问题,如真多核处理器。
122     ULT:调度分两部分,OS调度处理器,用户来完成线程调度。物理并行性不好,用来逻辑并行问题
123     
124     
125     
126 多线程的编程实现:高级语言编程,然后和专用的线程库进行链接,实现。
127 
128 混合策略多线程编程:
129 结合二者优点:
130 线程创建完全在用户空间做,将ULT线程映射(绑定)到内核级的线程,通过调整KLT数目就可达到很好的并行效果。
131 
132 处理器的调度层次:
133 高级调度:又称作业调度,是不是将进程加入可执行进程池
134 中级调度:又称平衡负载,可以进程挂起,调节决定主存中的可用进程集合。
135 低级调度:又称进程调度,决定哪个可用进程占用处理器执行。是操作系统中最核心的部分。可以把处理器分配给进程或内核级线程,决定分配时间等。
136 
137 
138 选择处理器调度算法的原则:
139     资源利用率:
140     响应时间:
141     周转时间
142     吞吐量:单位时间处理的进程数尽可能多。
143 
144 时间片轮转调度:时间片太大相当于根据进入次序执行,太小则OS频繁的中断进行系统调度代价太大,一般定位200ms或500ms等
145 
146 现代操作系统的调度算法一般是:优先数与分级结合的调度方法。
147 彩票调度算法:概率调度,为客户进程发放根据系统资源占用的彩票。
148 
149 
150 存储管理:
151 
152 编程时是逻辑地址,而cpu实际运行处理的是物理地址。中间有逻辑地址到物理地址的映射--------重定位。
153 存储保护:为避免内存中多个进程互相干扰,必须进行程序和数据保护。
154     分为:
155         私有的主存占用:可读可写
156         非本进程的内存信息:不可读写
157         
158 CPU要执行的当前程序:需要在内存当中。
159 地址转换:逻辑地址进来首先进行限长器比较,越界引发中断。否则就与基础地址相加,得到物理地址。
160 
161 虚拟存储管理:
162     页式存储管理:像书一样,程序必定在某些页上,虽然可能有不满的页。
163     段式存储管理
164     都是讲内存地址编码成两维的:先分段编号,再给段内编号。
165     
166     
167 页面调度:
168     主存满了但是需要装入新的页,此时要决定哪些页从主存调出去--------------页面调度(选择调出页)。
169     
170     
171     
172 第四章 IO设备:
173     信息传输视角:
174                     1输入:键盘 鼠标 
175                     2输出:显示器 打印机
176                     3输入输出:磁盘驱动器 网卡
177     交互功能视角:
178                     1人机交互:鼠标 键盘 显示器
179                     2存储设备:磁盘驱动器 光盘驱动器
180                     3机机通信:网卡  调制解调器
181 设备控制器:I/O设备本身由机械设备和电子设备共同完成,电子的部分称为设备控制器或I/O接口
182 
183 I/O控制方式总结:
184                     1、轮询方式:CPU等待,且cpu参与内存数据交换
185                     2、中断方式;CPU无需等待就绪,响应中断后参与内存数据交换
186                     3、DMA方式:CPU只在I/O开始和结束时参与,其他过程完全由DMA控制,cpu不参与内存数据交换。
187                     1-->2--->3 cpu与I/O设备的并行度越来越高,物理并行。
188                     
189                     I/O通道:通道控制器 或者 I/O处理器,逻辑并行
190                             CPU不再执行I/O指令,而是在内存中组织通道程序,由I/O通道执行。
191                             
192 
193 I/O控制的DMA方式:直接存储器访问方式
194 
195 设置总线的目的:
196                 解决cpu和I/O设备的速度不匹配以及I/O设备之间的速度不匹配问题(I/O设备之间也有很大的差别)
197                 如果不用总线,那么,低速I/O占用时间过长,使得高速设备访问时间受限。
198                 
199 经典的总线布置方式:南桥北桥
200                     cpu <------处理总线-------->北桥(主存控制器)<--------存储总线-------->主存
201                                                 南桥(I/O控制器)
202                                   SCSI----------LAN------------GPU等图形设备       PCI总线(高速电子IO设备)
203                                            鼠标-------键盘等                     E(ISA)总线(低速机械IO设备)
204 
205                 
206 I/O软件的设计目标:
207                     1.高效性
208                     2.通用性
209                     
210 I/O驱动:初始化i/o设备,查看状态等。
211 
212 I/O缓冲区:OS在内存中开辟的存储区,专门用来临时存放I/O操作的数据。
213         OS为解决CPU与i/o设备速度不匹配,以及物理记录(硬盘)与逻辑记录大小不一致,提高并行,减少I/O对CPU的中断次数。
214         比如:磁盘一个扇区一般是512Byte,如果我们要从磁盘读30Byte,依然需要从磁盘先读取完整的页到I/O缓冲,然后再从其中提取所需内容。
215         
216         
217         设备分配方式:
218                     独占型外围设备----一次只能由一个进程独占使用
219                         分配方式:
220                                 静态分配:进程运行前申请;简单,能防止系统发生死锁,但是利用率低
221                                 动态分配:随用随申请;利用率高,可能发生死锁(如系统外设有一个打印机和一个磁带机,如果一个进程占有了打印机,另一个进程占有了磁带机。那么互相等待申请对方占用的I/O,系统就会发生死锁)
222 
223 设备表等:程序并不会直接访问I/O硬件,而是访问I/O设备的逻辑抽象--逻辑设备名。
224 
225 
226 磁盘存取时间:
227 
228             磁盘结构:不同同心圆属于不同的磁道,首先要用磁盘臂放到所需磁道(柱面)上,每个磁道(圆又可细分为不同的扇区,扇区的组合称为簇。不同大小的同心圆含有相同扇区数--便于控制)然后磁盘旋转对应扇区至磁头下,然后开始传输。
229                         
230             磁盘存取数据时间包括: (磁盘臂)寻道时间----(盘片)旋转时间-----传送时间
231             
232             磁盘算是系统可以直接访问的高速外围存储设备
233 
234 spooling系统:有点类似输入输出重定向,在磁盘中设置输入输出缓冲区(井),进程只与输入输出井关联,缩短每个进程的周转时间,提高OS的吞吐量
235 
236 
237 
238 第五章 文件管理
239 
240 子目录名之间用斜线分隔:windows用\,而unix用/表示.
241 树形目录:根目录/或~,内部节点是子目录,叶节点是文件。
242 文件查找:
243         1.从“当前目录”查起--相对目录,用.表示当前目录,用..表示父目录。
244         2.现代操作系统都有改变工作目录命令:如cd dir,
245         3.活动文件表:对于文件的使用不会每次都去查询相关的文件,而是打开文件时一次性查找加入到活动文件表中,是一种映射关系,使用完毕后才会删除此活动文件表。
246         
247 文件使用:
248         unix中:
249                 cat 查看
250                 cd 改变目录
251                 find 查找
252                 mv 移动文件
253                 rm删除文件
254                 mkdir 创建目录(用来装文件)
255                 rmdir 删除目录
256         创建文件:
257                 入参:文件名 设备类  文件属性及相应存取控制信息
258                 过程:
259                     1.在相应设备建立一个文件目录项,为文件分配一个物理块
260                     2.在活动文件表中申请一个项,登记有关目录信息。
261                     3.返回一个文件句柄(类似指针,存储了这个活动文件表中该文件的目录项相关信息)
262         删除文件:
263                 1.先判断是否打开,
264                 2.否---->删除,是----->先关闭----->删除

 

操作系统-1-5章

原文:https://www.cnblogs.com/Henry-ZHAO/p/12834354.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!