- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统中线程概念的教学方法研究
引言
在《操作系统》课程中,线程是非常重要的概念之一, 但由于其抽象性,学生在掌握理解时有一定难度,历来都是 教学难点。我在参加全国高校操作系统课程培训交流时,发 现很多授课老师对线程的概念很含糊,解释不清为何线程切 换付出的时空代价比进程切换小,学生更是一头雾水。本文 有针对性地采用实例教学和原理比较教学,注重对学生兴趣 的培养,采用将理论与实践相结合的教学方法,打开学生的 谜团,彻底理解线程的概念。授课中先以生活中生动的实例 解释概念,使学生产生最直观的认识和理解,然后从原理出 发,揭开线程的面纱。
理解线程,必须首先掌握程序、进程的概念,本文首 先介绍程序、进程和线程的关系与区别,其次进一步从原理 出发解释进程和线程切换过程及切换中系统付出的代价,最 后提出通过线程仿真编程使学生彻底掌握线程的概念。
程序、进程和线程的关系与区别
程序和进程
程序是为实现特定目标或解决特定问题而用计算机语 言编写的命令序列的集合,是存储在外存储器的,是静态的。 而进程则是程序的一次执行过程,是动态的。对此概念的理 解可以使用例子:可以把一首歌曲的曲谱看成是程序,根据 曲谱演奏音乐就是进程,曲谱可以长期保存,而演奏是个动 态的过程,同一个曲谱可以多次演奏,一次演奏也可以综合 多个曲谱。
关于进程的进一步讲解如下。
程序在运行过程中需要占有计算机的各种资源才能运 行。如果任一时刻,系统中只有一道程序,即单道程序系统, 程序则在整个运行过程中独占计算机全部资源,整个程序运 行的过程就非常简单,管理起来也非常容易。比方说当今的 房价和租金都非常高,如果一个职员A独自租了一套房子, 他想看电视就看电视,想去卫生间就去卫生间,就没人和他 抢占资源。但为了提高资源利用率和系统处理能力,现代计 算机系统都是多道程序系统,即多道程序并发执行。程序的 并发执行带来了一些新的问题,如资源的共享与竞争,它会 改变程序的执行速度。好比上例中由于租金过高,A经济压 力过大,只好和B合租一套,当A想去卫生间的时候,如果 此时B在使用卫生间,则A只得等待,影响了 A的节奏。 如果程序执行速度不当,就会导致程序的执行结果失去封闭 性和可再现性,这是我们不希望看到的。因此应该采取措施 制约、控制各并发程序段的执行速度。由于程序是静态的, 我们看到的程序是存储在存储介质上的,它无法反映出程序 执行过程中的动态特性,而且程序在执行过程中不断申请资 源,程序作为共享资源的基本单位是不合适的,需要引入一 个概念,它能描述程序的执行过程而且可以作为共享资源的 基本单位,这个概念就是进程。
进程和线程
在操作系统中引入进程的目的是使多个程序并发执 行,改善资源利用率及提高系统的吞吐量;再引入线程则是 为了减少程序并发执行时付出的时空开销,使操作系统具有 更好的并发性。
“线程”其实并不是一个新的概念,实际上它是进程概 念的延伸。如果一个程序只有一个进程就可以处理所有的任 务,它就是单一线程的。如果一个程序可以被分解为多个进 程共同完成程序的任务,这个程序被分解的不同进程就叫做 线程,也叫轻量级进程。线程有几种模式,如单线程、单元 线程模式和自由线程模式。
为了使学生理解线程概念,可以将程序比喻成一个搬 家的过程:将所有物品从一所房子搬到另外一所房子。如果 采用单线程方法,就需要你自己完成从打包到扛箱子、运输 再到拆包的所有工作。如果使用多线程的单元模式,表示邀 请了几位朋友来帮忙,每个朋友都负责一个单独的工作,并 且不能帮助其他人,他们各自负责自己空间内的物品搬运。 如果采用自由线程模式,邀请来的所有朋友就可以随时在任 何一个房间工作,共同打包物品。例子中搬家就是运行所有 线程的进程,参与搬家的每个朋友所承担的工作都是一个线 程。显然使用线程能够更有效、更迅速地执行程序。
对线程的进一步理解
线程为轻量级进程,也是CPU调度和分派的基本单 元,线程不能够独立执行,必须依存在某个进程中;进程则 被称为重量级进程,它是系统分配资源的单位,可拥有多个 线程,能同时执行多个任务,他们之间的关系可以简单地由 图2表示。
线程和进程的关系如下:线程是属于进程的,线程运 行在进程空间内,同一进程产生的线程共享同一内存空间, 当进程退出时该进程产生的线程都会被强制退出并清除。线 程可与属于同一进程的其他线程共享进程拥有的全部资源, 但是其本身基本上不拥有系统资源,只拥有一些在运行中必 不可少的信息。此外,由于一个进程中的多个线程具有相同 的地址空间,在同步和通信的实现方面线程也比进程容易。 在一些操作系统中,线程的切换、同步和通信都无须操作系 统内核的干预。
由于进程是一个资源的拥有者,因而在创建、撤销和 切换中,系统必须为之付出较大的时空开销。在系统中设置 的进程
原创力文档


文档评论(0)