openEuler操作系统(第2版)

openEuler操作系统(第2版)
作者: 编者:任炬//张尧学|责编:盛东亮//钟志芳
出版社: 清华大学
原售价: 109.00
折扣价: 82.84
折扣购买: openEuler操作系统(第2版)
ISBN: 9787302602941

作者简介

"张尧学 中国工程院院士,清华大学计算机系教授,教育部软件工程专业教指委主任委员,国务院学位委员会计算机学科评议组召集人。长期从事操作系统、新型网络计算模式、计算机网络等领域的研究。以第一完成人获得国家自然科学奖一等奖1项(2014年),国家技术发明奖二等奖1项(2004年),国家科技进步奖二等奖2项(2001年和1998年),省部级奖励5项,何梁何利基金科学与技术进步奖(2005年)。曾任中南大学校长(2011—2017年)。现担任《电子学报》(英文版)主编。 任炬 清华大学计算机系副教授,博士生导师,国家优秀青年基金获得者,湖南省杰出青年基金获得者。研究方向包括物联网、操作系统、边缘计算等。在国际著名期刊及会议上发表论文100余篇。曾获IEEE通信学会亚太区最佳青年学者奖、IEEE可拓展计算专委会早期职业成就奖等荣誉。担任《电子学报》(中文版和英文版)、IEEE Transactions on Vehicular Technology等多个国内外重要期刊编委,曾任多个国际会议主席、程序委员会主席、领域主席等职务。"

内容简介

第3章 进程与线程 在早期的单道批处理系统中,计算机一次只能执行 一个程序。该程序完全控制机器,并访问所有的系统资 源。这种控制方式存在资源浪费、系统运行效率低等问 题。为了提高资源利用率和系统的吞吐量,现代计算机 系统采用多道程序技术,允许多个程序并发执行,共享 系统资源。在多道程序环境下,由于CPU需要在各程序 之间来回切换,程序的执行具有间断性。此外,由于并 发执行的程序共享系统中的资源,任一程序对这些资源 状态的改变都会影响其他程序的运行环境,即程序之间 存在制约关系。然而,程序只是对计算任务和数据的静 态描述,无法刻画并发执行过程带来的这些新特征。因 此,计算机系统使用进程作为描述程序执行过程且能用 来共享资源的基本单位。另外,由于进程的创建和切换 开销较大,为了进一步提高执行效率,操作系统引入了 “线程”的概念。本章先通过程序的并发执行过程引出 进程这一抽象,并介绍系统对进程的描述和控制; 随 后介绍进程是如何通过系统调用在CPU上来回切换,从 而实现并发执行的; 最后对线程进行了详细阐述。 3.1进程的概念 为了让程序源代码从人类易于理解的高级语言转换 成计算机能够执行的机器语言,所有程序都将经过编译 、链接、加载和执行4个阶段。一段时间内,机器通常 并不只执行一个程序,而是并发地执行多个程序。为了 对并发执行的程序加以描述和控制,操作系统引入了“ 进程”这一抽象。 3.1.1程序: 从源代码到执行 图31展示了一份C语言源代码(符合C99标准), 它的功能是判断一个年份是否是闰年。下面以该程序为 例,介绍一个程序从编写源代码到执行的过程。其中, 链接用于将多个可重定位目标文件(由程序编译而成或 是来自静态库)合并成一个可执行文件。由于链接过程 与本章相关性不强,此处省略,感兴趣的读者可查阅编 译原理相关书籍进行了解。 1. 编译阶段 编译的目的是将基于高级语言编写的源代码转换成 计算机硬件能够执行的机器语言。假设图31的C程序 保存在文件example.c中,那么可以使用图32中的交 叉编译命令将example.c编译成ARMv8架构下可执行的二 进制文件。 1.#include 2.#include 3.#include 4.int global_var = 1; 5.char *warning = "Wrong Input!\n"; 6.bool leap_year(int year) { 7.bool result; 8.if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) 9.result = true; //判断闰年 华为公司官方出品!著名计算机科学家张尧学院士团队编著!深入解析华为自研操作系统原理核心技术!