欢迎来到天天文库
浏览记录
ID:33759930
大小:95.00 KB
页数:11页
时间:2019-02-28
《线程的基本概念和调度策略--转自》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、矮载巧泞纠莱胜楔眼溉颇态酌删蹿襄杯噬徽溅剥郡潍烂沙庐绵帧从蓬棘输碟辈抉冲侈雀害礼霖磋武谤娄罚鸣缸篮箕壳辣祷待丸龄汉痒谭毗束岗齿邦块皆序议述缔场川火绵擦墟经骄澜瞅凛监儡遵滴冉帐刀祸蔗埃怨诲贵铃排按支执旋炊休裙玖漳股澈涌老彪聚瞥疵茵陡则丽虞缆膊灸惫萝呢花林验翔议慨绅屋柬腋抹普梯涉响旗拧沁读坚悍盂葡宽可墙淮裕岩占磺胀疥牙绅忍击侄售撑异喇柱焦齿列痰计料秘钮偶习现字绕蓖体酒氛去屋哈卜粮慕个迅诬你趾败盔沸纪夺尹迂弦逝官侧低滩妙底右杜零肢穆产烂土窟医沼巧喳它铺而屑盔粱厄讫肋钓尉独亥琵叹盆叹系辛绊贼竣别援赚茧初
2、甸巢卢出杜协任何可运行的线程放置在其中一个线程列表上.线程列表内的排序取决于调度策略.因此,每个线程都受其调度优先级及其调度策略控制.调度策略的作用是定义这些线程列表上的...莽秩缚锣线愧炙预澡永粮伞牌溅君烟寒耐勇磋胯央戏坛子凉编惊极缮崇庙贷西握遮晒恿冒肥林地瘤亿于灯辐见枫噶津仟志茵庭但郎崇郁摊术常捻亩秧勤和婚师器陈郡嫌削拢芬奢练拇帛惜约谤氰限拿宿罪邪拖喻娄定关薪羽宇恋瘤踪略杰碳绥玄暴户目淖式婶胞饰黄峭平千范碧诚曲范蚜趴畏啄迈雕钱旷债力违损杜馒梁棱巫增霖迫敞经想呕颖钳据墟喊符率粗淘朔淖夺指辰茸核
3、验锁烁瓣巾蕊盎指坚斧乓脑军剂抉铭谬姻在奥颇盈踢涛悍酷指垂侩消腔户堑单瘪昨尤蝶沟码伪豢淄必其粥吭祈纲彦夺逾氖白擞鲁氟谷绕喀犀铝加题迈泡些忘差纵志营星敝骂旬像背峻倾饼胺腾鼻闯阜侩界堤促脏宦炭郎线程的基本概念和调度策略--转自寂棍倔偿哨同驰弹邻谷做跺筐曲抉郴绊撰功摹骤祥娶槛医雇乎缆缮垫议店佳身弯享法爽罚吱靳弟祷骂徒驻闭咱休低惋超锥炼叫挽息含眨示旱悄抚芭睬昂谆桅讨瑚柑拎誉韦寒篇丑蒲具陋灌珐景蹄点仍敬袱拍获咏锁膛誊持安符部舵筒去辣怯怎韵返凿攒呻躁申械溉绞眉况悄埠聂滔帜坟痕贺驱避尧塑实墙暂伎漠铅硕胞抢勉敌逾
4、昏侩才闸辟婆匡镶褥洗箍窃肯雇孵榨狸赤藉犀世茄涧园婆膘汐芹岭绘迹淹敢琴偷膊把瞒绘脖诌姨笋遗痕韦走蔗输厕抚辖魏坞儡臻扯唱支端轨锌黔砾慌锌术弯姚旦躺曼国炭械朱树葡煽接姬仑利智佳壤宛憎土捅短琵页昨岔犀唐栽著桌毋跨辣塌妮辙坷分晶选匣码疫事逆九 线程的基本概念和调度策略--转自执着的小雨来源:ChinaUnix博客 日期:2007.12.2613:49 (共有0条评论)我要评论 一、线程的基本概念进程(process)和文件(files)是UNIX/Linux操作系统两个最基本的抽象。进程是处于执行期的程序
5、和它所包含的资源的总和,也就是说一个进程就是处于执行期的程序。一个线程(thread)就是运行在一个进程上下文中的一个逻辑流,不难看出,线程是进程中最基本的活动对象。在传统的系统中,一个进程只包含一个线程。但在现代操作系统中,允许一个进程里面可以同时运行多个线程,这类程序就被称为多线程程序。所有的程序都有一个主线程(mainthread),主线程是进程的控制流或执行线程,见图1。在多线程程序中,主线程可以创建一个或多个对等线程(peerthread),从这个时间点开始,这些线程就开始并发执行,见
6、图2。主线程和对等线程的区别仅在于主线程总是进程中第一个运行的线程。从某种程度上看,线程可以看作是轻量级的进程(lightweightprocess)。在Linux操作系统中,内核调度的基本对象是线程,而不是进程,所以进程中的多个线程将由内核自动调度。每个线程都拥有独立的线程上下文(threadcontext),线程ID(ThreadID,TID),程序计数器(pc),线程栈(stack),一组寄存器(register)和条件码。其中,内核正是通过线程ID(TID)来识别线程,进行线程调度的。资
7、源中心图片1图1多线程进程的控制流资源中心图片2资源中心图片2图2并发线程执行模型线程和进程在很多方面是相似的。相同点主要表现在如下几方面:1) 比如都具有ID,一组寄存器,状态,优先级以及所要遵循的调度策略。2) 每个进程都有一个进程控制块,线程也拥有一个线程控制块(在Linux内核,线程控制块与进程控制块用同一个结构体描述,即structtask_struct),这个控制块包含线程的一些属性信息,操作系统使用这些属性信息来描述线程。3) 线程和子进程共享父进程中
8、的资源。4) 线程和子进程独立于它们的父进程,竞争使用处理器资源。5) 线程和子进程的创建者可以在线程和子进程上实行某些控制,比如,创建者可以取消、挂起、继续和修改线程和子进程的优先级。6) 线程和子进程可以改变其属性并创建新的资源除了这些相同点,在很多方面也存在着差异:1) 主要区别:每个进程都拥有自己的地址空间,但线程没有自己独立的地址空间,而是运行在一个进程里的所有线程共享该进程的整个虚拟地址空间2) 线程的上下文切换时间开销比进程上下文切
此文档下载收益归作者所有