为了运行一个计算机程序,计算机需要同时加载代码和数据,然后处理器执行指令。整个过程可以概括为编译、链接、加载和执行。
1.准备
编译过程可以分为两个阶段:编译和汇编。
编译是指编译器读取字符流的源程序,分析其词法和语法,将高级语言指令转换成功能等价的汇编代码。
汇编程序将汇编代码转换成机器可以执行的命令,几乎每一条汇编语句都对应一条机器指令。汇编相对于编译过程来说比较简单,根据汇编指令和机器指令对照表就可以一条一条翻译出来。
链接
链接的主要内容是处理各个模块引用的部分,使各个模块正确连接。链接分为静态链接和动态链接:
静态链接是指在编译阶段将静态库直接添加到可执行文件中,这样可执行文件会更大;
动态链接是指在链接阶段只添加描述性信息,在程序执行时从系统将相应的动态库加载到内存中。
装载货物
程序链接后,获得可执行文件,下一步就是将可执行程序加载到内存中。
因为现代操作系统都是通过分页的方式来管理内存,所以操作系统只需要读取可执行文件的头文件,然后建立可执行文件和虚拟内存的映射关系,而不需要实际将程序加载到内存中。
操作
加载程序将可执行目标文件中的代码和数据从磁盘复制到内存,然后通过跳转到程序的第一条指令或入口点来运行程序。
程序运行过程中,CPU发现物理内存中不存在一些内存页,触发了缺页异常。此时CPU将控制权转移给操作系统的异常处理函数,操作系统负责将这个内存页的数据从磁盘读取到物理内存。
读取数据后,操作系统要求CPU jmp在触发缺页异常的指令处继续执行,指令执行时不会出现缺页异常。
什么是指令
适应症包括点击、告知、呼叫等。
指令字是一种命令语言,也是操作系统使用的语言。用于作业序列的自动化操作。用户与系统的交互是通过命令来实现的。命令是命令语言指定格式的字符串。命令相当于一条语句。用户有不同的方式来控制作业和与系统交互。命令语言告诉系统关于每个作业的信息,以便系统可以自动控制作业顺序。
命令语言由一组命令组成,每个命令由一个命令名和命令参数按照一定的语法规则组成。对于操作计算机的用户来说,命令语言是软件系统的功能分解,系统命令由代表这些功能的关键字组成;对于计算机系统来说,命令语言经过解析器处理后可以执行相应的系统功能。
以上内容就是为大家分享的运行命令大全(运行命令大全(完整版))相关知识,希望对您有所帮助,如果还想搜索其他问题,请收藏本网站或点击搜索更多问题。本文地址:[https://chuanchengzhongyi.com/kepu/53e75e789f22391f.html]