哈工大计算机系统期末大论文

本文以hello.c为例,详细探讨了在Linux系统x86-64平台下,程序从预处理到运行的全过程。阐述了预处理的概念、作用,以及在Ubuntu环境下预处理的命令,分析了预处理后的中间结果,揭示了预处理器如何处理宏定义、头文件引入等,为理解计算机系统进程管理和内存管理提供了基础。
摘要由CSDN通过智能技术生成

摘  要

当下多数开发平台以hello或其变种作为入门程序,且多数情况下只追求掌握运行结果不要求研究其运行过程。然而近年来,随着对软件、机器学习模型开发等计算机类工程需求的增大以及对高性能的要求,对计算机系统认识的深入提上了进程。此时针对简单程序运行机制的研究将具有极大价值。本文以hello.c为例,讨论了其在Linux系统x86-64平台下P2P、020等过程,深入研究了其编译、链接、计算机系统进程管理、虚拟内存管理等方面,充分概述了其生命周期。较c语言程序设计等课程相比,提升了对计算机系统的认识。

关键词:程序的预处理,编译,汇编,链接,进程管理,内存管理                           

第1章 概述

1.1 Hello简介

Hello程序是现阶段python、c、java等多数开发平带的首个入门级程序,其中又以c语言的hello.c最为经典。虽如今hello程序多作为入门程序存在,很少有人研究,但其作为首个完成P2P、020的程序,仍有较大研究价值。

      1. P2P

P2P(From Program to Process)表示在Linux系统下一类从程序变成进程的过程。在此过程中,属于文本文件的hello.c需经过cpp的预处理、ccl的编译、as的汇编、ld的链接,才可成为可执行的二进制文件。此时,Linux可以通过进程管理运行Hello程序。

      1. 020

020(From zero to zero)代表一类在Linux系统中从不存在,到运行中的进程,再到运行结束被系统回收重归于零的过程。Linux的Shell首先创建一个子进程,在该进程中运行hello程序,映射虚拟内存,载入物理内存,CPU分配时间片,通过微程序指令在硬件上运行程序。在运行结束后,shell接收到进程终止信号,回收hello进程,删除其上下文。

1.2 环境与工具

为证实本文内容有效,现公布本文研究环境及开发工具。

      1. 硬件环境

Intel CORE-i9 CPU;2.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值