
出版社: 清华大学
原售价: 89.00
折扣价: 67.93
折扣购买: openEuler操作系统/华为智能计算技术丛书
ISBN: 9787302563280
张尧学 中国工程院院士,清华大学计算机系教授,湖南省科协,软件工程专业教学指导委员会主任委员。长期从事操作系统、新型网络计算模式、计算机网络等领域研究。以第一完成人获得国家自然科学一等奖1项(2014年),国家技术发明二等奖1项(2004年),国家科学技术进步二等奖2项(2001年和1998年),省部级奖励5项,何梁何利科学与技术进步奖(2005年)。曾任中南大学校长(2011—2017年)。现担任Chinese Journal of Electronics主编,曾主编《计算机操作系统》等多本畅销教材。任炬 中南大学计算机学院教授,湖南省杰出青年基金获得者,中国科协青年托举人才,湖南省湖湘青年英才。研究方向包括物联网、操作系统、网络计算、网络大数据等。在国际著名期刊和会议上发表80多篇论文,曾获2019年IEEE TCSC早期职业成就奖以及多个国际会议最佳论文奖。
第3章
进程与线程
在早期的单道批处理系统中,计算机一次只能执行
一个程序。该程序完全控制机器,并访问所有的系统资
源。这种控制方式存在资源浪费、系统运行效率低等问
题。为了提高资源利用率和系统的吞吐量,现代计算机
系统采用多道程序技术,允许多个程序并发执行,共享
系统资源。在多道程序环境下,由于CPU需要在各程序
之间来回切换,程序的执行具有间断性。此外,由于并
发执行的程序共享系统中的资源,任一程序对这些资源
状态的改变都会影响其他程序的运行环境,即程序之间
存在制约关系。然而,程序只是对计算任务和数据的静
态描述,无法刻画并发执行过程带来的这些新特征。因
此,计算机系统使用进程作为描述程序执行过程且能用
来共享资源的基本单位。另外,由于进程的创建和切换
开销较大,为了进一步提高执行效率,操作系统引入了
“线程”的概念。本章先通过程序的并发执行过程引出
进程这一抽象,并介绍系统对进程的描述和控制; 随
后介绍进程是如何通过系统调用在CPU上来回切换,从
而实现并发执行的; 最后对线程进行了详细阐述。
3.1进程的概念
为了让程序源代码从人类易于理解的高级语言转换
成计算机能够执行的机器语言,所有程序都将经过编译
、链接、加载和执行4个阶段。一段时间内,机器通常
并不只执行一个程序,而是并发地执行多个程序。为了
对并发执行的程序加以描述和控制,操作系统引入了“
进程”这一抽象。
3.1.1程序: 从源代码到执行
图31展示了一份C语言源代码(符合C99标准),
它的功能是判断一个年份是否是闰年。下面以该程序为
例,介绍一个程序从编写源代码到执行的过程。其中,
链接用于将多个可重定位目标文件(由程序编译而成或
是来自静态库)合并成一个可执行文件。由于链接过程
与本章相关性不强,此处省略,感兴趣的读者可查阅编
译原理相关书籍进行了解。
1.#include