2012os第的2章操作系统.ppt

  1. 1、本文档共132页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2012os第的2章操作系统

1979年美国加州大学伯克利分校提出了RISC(Reduced Instruction Set Computer,精简指令集计算机)的概念,RISC并非只是简单地去减少指令,而是把着眼点放在了如何使极端机的结构更加简单合理地提高运算速度上。RISC结构优先选取使用频率最高的简单指令,避免复杂指令;将指令长度固定,指令格式和寻址方式种类减少;以控制逻辑为主,不用或者少用微码控制等措施来达到以上目的。 4)进程异常被终结(处决) 在进程运行期间,由于出现某些错误和故障而迫使进程终止。这类异常事件很多,常见的有:① 越界错误。这是指程序所访问的存储区,已越出该进程的区域; ② 保护错。进程试图去访问一个不允许访问的资源或文件,或者以不适当的方式进行访问,例如,进程试图去写一个只读文件; ③ 非法指令。程序试图去执行一条不存在的指令。出现该错误的原因,可能是程序错误地转移到数据区,把数据当成了指令;④ 特权指令错。用户进程试图去执行一条只允许OS执行的指令; ⑤ 运行超时。进程的执行时间超过了指定的最大值; ⑥ 等待超时。进程等待某事件的时间, 超过了规定的最大值;⑦ 算术运算错。进程试图去执行一个被禁止的运算,例如,被0除;⑧ I/O故障。这是指在I/O过程中发生了错误等。 6.两种类型的线程和线程控制    1)内核支持线程   内核:现代OS分为若干层次,紧靠计算机硬件的一层称为内核.它包括中断处理、时钟管理、原语操作、进程管理、线程管理、存储器管理、设备管理等。   各种线程的创建、撤消和切换都由内核实现。 2)用户线程 运行时系统:用于管理和控制线程的函数的集合, 包括创建和撤消进程的函数、线程同步和通信的函数、 线程调度的函数等。 内核控制线程(轻型线程)(Light Weight Process) 2.7.4 线程控制 1. 内核支持线程的实现 图 2 - 13 任务数据区空间 PTDA 进程资源 TCB # 1 TCB # 2 TCB # 3 2. 用户级线程的实现 1) 运行时系统(Runtime System) 所谓“运行时系统”,实质上是用于管理和控制线程的函数(过程)的集合, 其中包括用于创建和撤消线程的函数、 线程同步和通信的函数以及实现线程调度的函数等。正因为有这些函数,才能使用户级线程与内核无关。运行时系统中的所有函数都驻留在用户空间,并作为用户级线程与内核之间的接口。 2) 内核控制线程 这种线程又称为轻型进程LWP(Light Weight Process)。 每一个进程都可拥有多个LWP, 同用户级线程一样, 每个LWP都有自己的数据结构(如TCB),其中包括线程标识符、优先级、 状态, 另外还有栈和局部存储区等。 它们也可以共享进程所拥有的资源。LWP可通过系统调用来获得内核提供的服务,这样,当一个用户级线程运行时,只要将它连接到一个LWP上,此时它便具有了内核支持线程的所有属性。 图 2 - 14 利用轻型进程作为中间系统 比喻 进程相对于一个小城镇,线程相当于这个城镇里的居民,STA(单线程套间)相当于居民房,是私有的,MTA(多线程套间)相当于旅馆,是公用的,Com对象相当于居民房或旅馆里的物品.接下去就好理解了, 一个小城镇(进程)里可以有很多很多的(居民)线程,这个城镇(进程)只有一间旅馆(MTA),但可以有很多很多的居民房(STA).只有居民(线程)进入了房间(居民房或旅馆,STA或MTA)以后才能使用该房间里的物品(COM对象),居民房(STA)里的物品(COM对象)只能供这间房子的主人(创建该STA的线程)使用,其它居民(线程)不能访问.同样,只有入住到旅馆(MTA)里的居民(线程,可以有多个)才可以访问到旅馆(MTA)里的物品(com对象),但因为是公用的,所以要合理的分配(同步)才能不会产生 混乱. ⑴管程的定义:将共享变量以及对共享变量能够进行的所有 操作集中在一个模块中.一个操作系统或并发程序由若干这样 的模块所构成,由于一个模块通常较短,模块之间关系清晰,提高 了可读性,便于修改和维护,正确性易于保证. (2)管程的组成: 1) 局部于管程的共享变量说明; 2) 对该数据结构进行操作的一组过程; 3) 对局部于管程的数据设置初始值的语句; 4)为管程赋予一个名字. type monitor-name=monitor {管程名} variable declarations

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档