程序员视角解析:深入理解计算机系统运作原理

5星 · 超过95%的资源 需积分: 9 2 下载量 79 浏览量 更新于2024-08-02 收藏 4.7MB PDF 举报
"《计算机系统:程序员视角》(Computer Systems: A Programmer's Perspective, Beta Draft)是一本深入解析计算机系统工作原理的书籍,作者是Randal E. Bryant和David R. O'Hallaron,出版日期为2001年11月16日。本书从程序员的角度出发,详细讲解了计算机如何运行和执行程序,帮助读者建立起对底层系统运作的全面理解。 首先,章节1介绍了计算机系统的基础概念。信息在计算机中是以二进制位的形式存在,并且以上下文的方式进行处理(1.1)。程序则是通过其他程序的编译或解释转换成不同的形式,这对于理解编译系统的工作至关重要(1.2)。处理器的核心职责是读取内存中的指令并执行它们,硬件组织(如CPU、内存、I/O设备等)直接影响到程序的运行效率(1.4)。 书中强调了缓存(1.5)的作用,缓存能够加快数据访问速度,提高性能。存储设备被组织成一个层次结构,从高速的寄存器到较慢的硬盘,每个层次都有其特定的用途(1.6)。操作系统作为硬件管理的关键组件,负责进程的调度、线程的管理、虚拟内存的分配以及文件系统操作(1.7)。 网络通信也是计算机系统的重要组成部分,系统之间通过网络进行数据交换和通信(1.8)。接下来,第二部分着重于程序的结构和执行过程,探讨了信息的表示与操作方式,包括数据存储的不同形式、十六进制表示、字节序、字符串的表示等(2.1至2.1.6)。 这本书不仅提供了理论知识,而且通过实例,如运行'hello'程序来直观展示这些概念在实际操作中的应用。对于想要深入理解计算机系统的程序员来说,这是一本不可或缺的参考书,它帮助读者建立起扎实的理论基础,提升编程技能和问题解决能力。"

SELECT DISTINCT c.ID AS id, c.NAME AS contName, c.CONTRACT_NO AS contractNo, c.INSTANCE_ID AS instanceId, c.UNDERTAKE_DEPT_ID AS remindDeptId, c.UNDERTAKE_DEPT_NAME AS sendDeptName, c.CREATE_USER_ID, c.CREATE_USER_NAME AS contractOpteraterName, c.PLAN_STATE AS planState, c.PLAN_STATE_NAME AS planStateName, aw.INSTANCE_ID AS inId, aw.CREATE_TIME AS sendTime FROM ( SELECT c.* FROM ( SELECT c.* FROM ( SELECT c.ORIGINAL_CONTRACT_ID, MAX(CREATE_TIME) CREATE_TIME FROM CONTRACT_DRAFT.C_CONTRACT_INFO c WHERE c.ORIGINAL_CONTRACT_ID IS NOT NULL AND c.ORIGINAL_CONTRACT_ID != '' GROUP BY c.ORIGINAL_CONTRACT_ID ) t LEFT JOIN CONTRACT_DRAFT.C_CONTRACT_INFO c ON t.ORIGINAL_CONTRACT_ID = c.ORIGINAL_CONTRACT_ID AND t.CREATE_TIME = c.CREATE_TIME UNION ALL SELECT c.* FROM CONTRACT_DRAFT.C_CONTRACT_INFO c WHERE ( c.ORIGINAL_CONTRACT_ID IS NULL OR c.ORIGINAL_CONTRACT_ID = '' ) AND c.ID NOT IN ( SELECT c.ORIGINAL_CONTRACT_ID FROM CONTRACT_DRAFT.C_CONTRACT_INFO c WHERE c.ORIGINAL_CONTRACT_ID IS NOT NULL AND c.ORIGINAL_CONTRACT_ID != '')) c WHERE c.deleted_flag = 0 AND c.BELONG = 1 AND sysdate > c.end_date AND c.plan_state IN (4100, 4110, 4120, 4200, 4210, 4220, 5100, 5110, 5120) ) c INNER JOIN (SELECT INSTANCE_ID,create_time,state FROM CONTRACT_DRAFT.C_ACTIVITY_WORKITEMS WHERE state = 'Waiting') aw ON c.INSTANCE_ID = aw.INSTANCE_ID LEFT JOIN (SELECT deleted_flag,CONT_ID FROM CONTRACT_DRAFT.C_GET_PAY_PLAN WHERE deleted_flag = 0 ) g ON c.ID = g.CONT_ID LEFT JOIN CONTRACT_DRAFT.C_OUR_ENTITY_INFO oe ON c.OUR_ENTITY_ID = oe.ID AND oe.DELETED_FLAG = 0 ORDER BY aw.CREATE_TIME DESC 优化

2023-07-08 上传