• 【编译原理+句柄+入栈顺序从右至左+系统调用+win api+程序安排+acm ieee usenix信息】答疑


    编译原理

    编译原理–总结

    句柄

    句柄(handle),有两种解释

    第一种解释:句柄是一种特殊的智能指针 。当一个应用程序要引用其他系统(如数据库、操作系统)所管理的内存块或对象时,就要使用句柄。

    第二种解释:整个Windows编程的基础。

    句柄是Windows用来标识被应用程序所建立或使用的对象的唯一整数,WINDOWS使用各种各样的句柄标识诸如应用程序实例,窗口,控制,位图,GDI对象等等。

    一个句柄是指使用的一个唯一的整数值,即一个4字节(64位程序中为8字节)长的数值,来标识应用程序中的不同对象和同类中的不同的实例,诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。应用程序能够通过句柄访问相应的对象的信息,但是句柄不是指针,程序不能利用句柄来直接阅读文件中的信息。如果句柄不在I/O文件中,它是毫无用处的。 句柄是Windows用来标志应用程序中建立的或是使用的唯一整数,Windows大量使用了句柄来标识对象。

    Windows之所以要设立句柄,根本上源于内存管理机制的问题,即虚拟地址。简而言之数据的地址需要变动,变动以后就需要有人来记录、管理变动,因此系统用句柄来记载数据地址的变更。在程序设计中,句柄是一种特殊的智能指针,当一个应用程序要引用其他系统(如数据库、操作系统)所管理的内存块或对象时,就要使用句柄。

    说明:

    句柄在 Windows编程中是一个很重要的概念,在 Windows程序中并不是用物理地址来标识一个内存块、文件、任务或动态装入模块的。相反地,Windows API给这些项目分配确定的句柄,并将句柄返回给应用程序,然后通过句柄来进行操作。

    应该明白的是,句柄是一个标识符,是用来标识对象或者项目的。从数据类型上来看它只是一个16位的无符号整数。应用程序几乎总是通过调用一个Windows函数来获得一个句柄,之后其他的Windows函数就可以使用该句柄,以引用相应的对象。在 Windows编程中会用到大量的句柄。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    系统给每个进程UID

    子进程和父进程UID一样。
    用户也可以是某个组的成员 有GID

    C的参数入栈顺序从右至左--------历史原因

    在这里插入图片描述

    进程管理-系统调用

    fork()函数 ----父子进程返回PID不同,子进程为0,父进程返回子进程的PID

    cp file1 file2
    cp主程序都有声明 main(argc,argv,argp)
    argc是该命令行内有关参数数目的计数器 包括程序名称
    v 数组指针
    p指向环境的指针

    win api

    在这里插入图片描述

    win api

    微内核—策略与机制分离

    JVM----SUN公司发明—java基于c

    程序安排

    文本段接近内存底部 然后数据段 然后堆向上增长 栈在最上向下增长 ,

    现状

    目前操作系统是一个不灵活 不可靠 不安全 巨大错误的 粪坑大系统

    acm ieee usenix

  • 相关阅读:
    数据库基础——4.select语句
    C#中.NET 7.0 Windows窗体应用通过EF访问新建数据库
    Es5 apply详解
    人力资源数字化转型,是企业高质量发展的关键
    网工老大难经典提问之“IE要到期如何续证?”关于思科CCIE【重认证】常用方式,这次请务必保留好!
    【JavaEE---作业】对外提供密码学算法服务器软件系统
    10个PyCharm常用的免费插件,让开发迅速飙升
    【代码随想录Day54】图论Part06
    蓝牙核心规范(V5.4)10.4-BLE 入门笔记之ISOAL
    桌面级群控机器人平台设计与开发(Cocube单机器人)部分节选
  • 原文地址:https://blog.csdn.net/weixin_43796670/article/details/126652586