上下文是与程序运行相对应的概念

是程序运行的所需要的各类资源的综合;是程序作为一个生命的生存环境。

是程序为完成功能需要的各类资源的集合。

程序运行的级别:

1)指令级:涉及到的资源:程序计数器、各类寄存器。

2)函数级:外部输入参数、引用的软硬件资源、内部变量、面向对象的环境支持(可以直接访问对象的成员变量和函数);

3)线程级:线程的栈帧、同步变量、使用的进程的各类资源。

4)进程级别:xx。

补充:

闭包和block的环境变量包含可见的所有变量,包含全局和局部变量、输入的参量等。

时间: 2024-12-09 03:34:44

上下文是与程序运行相对应的概念的相关文章

第二章--Win32程序运行原理 (部分概念及代码讲解)

学习<Windows程序设计>记录 概念贴士: 1. 每个进程都有赋予它自己的私有地址空间.当进程内的线程运行时,该线程仅仅能够访问属于它的进程的内存,而属于其他进程的内存被屏蔽了起来,不能被该线程访问. PS:进程A在其地址空间的0x12345678地址处能够有一个数据结构,而进程B能够在其地址空间的0x12345678处存储一个完全不同的数据.彼此不能访问. 2. 在大多数系统中,Windows将地址空间的一半(4GB的前一半,0x00000000-0x7FFFFFFF)留给进程作为私有存

杂谈——Android从启动到程序运行发生的事情

转载请注明出处 博客地址:http://blog.csdn.net/JonsTank2013/article/details/51118563 作者:李中权 前言 好久没有写博客了,瞬间感觉好多学了的东西不进行一个自我的总结与消化总归变不成自己的.通过博客可能还可以找到一些当初在学习的时候没有想到的问题.想了半天,从大二上学期自学Android以来还没有对Android从启动到程序运行期间进行一个完整的归纳,刚好最近又学到了一些新东西,那就以这篇博客为媒介,总结一下从Android启动到程序运行

Android从启动到程序运行整个过程的整理

1Android是基于Linux的一个操作系统,它可以分为五层,下面是它的层次架构图,可以记一下,因为后面应该会总结到SystemServer这些Application Framework层的东西 Android的五层架构从上到下依次是:应用层,应用框架层,库层,运行时层,Linux内核层. 而在Linux中,它的启动可以归为一下几个流程: Boot Loader——>初始化内核——>...... 当初始化内核之后,就会启动一个相当重要的祖先进程,也就是init进程,在Linux中所有的进程都

python入门学习--程序运行、注释

1.程序运行 1.1 python解释器运行 File-new File创建一个新的编辑窗口,输入下图中的内容 选择File-save保存程序(为纯文本文件).建立一个专门存放python项目的目录.然后为程序起一个有意义的名字,比如name.py.文件名以.py结尾非常重要. 现在可以用Edit-Run或者按下Crtl+F5键来运行程序了 输入名字(比如Frank),然后按回车键.会看到 1.2 命令提示符运行  2.注释 上图第一行称为注释.注释既为了让别人能够容易理解程序,也为自已回头再看

C程序运行的背后(2)

话说上回说到,C程序运行之前,必须要加载到其进程地址空间中.今儿咱就扯扯这个加载到底是怎么加载的. 一图胜前言,这个图简单说明了可执行文件加载过程的逻辑流,在此只做粗粒度概要说明.需要准确描述的,请出门左转,看源码去吧. 1.  程序总是运行在进程上下文(context)中的,当输入./memlayout时,shell会创建一个子进程.除每个进程独有的专属信息外,子进程会继承父进程的大部分资源,如环境变量.进程空间映像等.也就是说,如果不重置子进程的内容,子进程会运行与父进程一样的程序.为了让子

进程上下文、中断上下文以及中断程序的特点

进程上下文VS中断上下文 内核空间和用户空间是现代操作系统的两种工作模式,内核模块运行在内核空间,而用户态应用程序运行在用户空间.它们代表不同的级别,而对系统资源具有不同的访问权限.内核模块运行在最高级别(内核态),这个级下所有的操作都受系统信任,而应用程序运行在较低级别(用户态).在这个级别,处理器控制着对硬件的直接访问以及对内存的非授权访问.内核态和用户态有自己的内存映射,即自己的地址空间. www.2cto.com 处理器总处于以下状态中的一种: 1.内核态,运行于进程上下文,内核代表进程

程序运行时三种内存分配策略

按照编译原理的观点,程序运行时的内存分配有三种策略,分别是静态的,栈式的,和堆式的. 静态存储分配是指在编译时就能确定每个数据目标在运行时刻的存储空间需求,因而在编译时就可以给他们分配固定的内存空间.这种分配策略要求程序代码中不允许有可变数据结构(比如可变数组)的存在,也不允许有嵌套或者递归的结构出现,因为它们都会导致编译程序无法计算准确的存储空间需求. 栈式存储分配也可称为动态存储分配,是由一个类似于堆栈的运行栈来实现的.和静态存储分配相反,在栈式存储方案中,程序对数据区的需求在编译时是完全未

java入门(1) 程序运行机制及运行过程

首先我们来看一下java程序在底层是怎么工作的: JAVA有两种核心机制: Java虚拟机(Java Virtual Machine): 1.java虚拟机可以理解成一个以字节码为机器指令的CPU. 2.对于不同的平台,有不同的虚拟机. 3.java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,随处运行”. 垃圾收集机制(Garbage collection) 1.不再使用的内存空间应回收——垃圾收集 2.Java语言相对于C/C++而言消除了程序员回收无用内存空间的责任:提供了一种系统

C# 获取程序运行时路径

?  前言 开发中,很多时候都需要获取程序运行时路径,比如:反射.文件操作等..NET Framework 已经封装了这些功能,可以很方便的使用. 1.   可使用类 1.   System.AppDomain,程序集:mscorlib.dll. 2.   System.Environment,程序集:mscorlib.dll. 3.   System.IO.Directory,程序集:mscorlib.dll. 4.   System.Reflection.Assembly,程序集:mscor